BG Development


  Reply to this topicStart new topicStart Poll

> Python скрипт имитиращ FMPXXX устройство, Изпращане на сурови данни по сокет
GigaByte
Публикувано на: 25-02-2024, 05:56
Quote Post



Име: ГБ
Група: Потребител
Ранг: Редовен член

Мнения: 543
Регистриран на: 19.08.09



Здравейте,

Трябва да напиша скрипт на Python, който да имитира FMPXXX устройство и да праща сурови данни към един сървър.

Протоколът е описан тук - https://wiki.teltonika-gps.com/view/Codec#Codec_8_Extended
но въпросът е кой е най лесния начин да изчислявам и записвам байтове с python ?

Или най-добра, препоръчителна практика

Това мнение е било редактирано от GigaByte на 25-02-2024, 05:59
PMEmail PosterUsers Website
Top
thrawn
Публикувано на: 25-02-2024, 07:22
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 3642
Регистриран на: 17.01.17



За CRC то ли питаш?
Можеш да си реализираш стрим от битове и да го смяташ или да използваш lookup таблица генерирана за съответния полином (май, това е предпочитания вариант).

Между другото, гледам че за питон си има готова библиотека https://pypi.org/project/crcmod/

Това мнение е било редактирано от thrawn на 25-02-2024, 07:52
PMEmail Poster
Top
GigaByte
Публикувано на: 25-02-2024, 08:04
Quote Post



Име: ГБ
Група: Потребител
Ранг: Редовен член

Мнения: 543
Регистриран на: 19.08.09



QUOTE (thrawn @ 25-02-2024, 07:22)
За CRC то ли питаш?
Можеш да си реализираш стрим от битове и да го смяташ или да използваш lookup таблица генерирана за съответния полином (май, това е предпочитания вариант).

Между другото, гледам че за питон си има готова библиотека https://pypi.org/project/crcmod/

Мерси много това ще ми е от полза !
PMEmail PosterUsers Website
Top
ici
Публикувано на: 25-02-2024, 12:27
Quote Post


Group Icon
Име: Ивайло Илчев
Група: VIP
Ранг: Почетен член

Мнения: 18582
Регистриран на: 06.06.04



QUOTE
въпросът е кой е най лесния начин да изчислявам и записвам байтове с python ?

За тази цел има тип bytes
CODE
>>> b = b'O my'
>>> type(b)
<class 'bytes'>
>>> list(map(hex, b))
['0x4f', '0x20', '0x6d', '0x79']
>>> b.decode()
'O my'
>>>


CODE
import libscrc

print(hex(libscrc.ibm(b'1234')))


Това мнение е било редактирано от ici на 25-02-2024, 12:37


--------------------
Ние не сме в една лодка, ние сме в една буря. Лодките са различни.

Следващият път когато се почувстваш ненужен, грозен и недооценен, помни че освен това си и тъп.
PMEmail PosterUsers Website
Top
GigaByte
Публикувано на: 25-02-2024, 22:45
Quote Post



Име: ГБ
Група: Потребител
Ранг: Редовен член

Мнения: 543
Регистриран на: 19.08.09



QUOTE (ici @ 25-02-2024, 12:27)
QUOTE
въпросът е кой е най лесния начин да изчислявам и записвам байтове с python ?

За тази цел има тип bytes
CODE
>>> b = b'O my'
>>> type(b)
<class 'bytes'>
>>> list(map(hex, b))
['0x4f', '0x20', '0x6d', '0x79']
>>> b.decode()
'O my'
>>>


CODE
import libscrc

print(hex(libscrc.ibm(b'1234')))

Мерси @ici
PMEmail PosterUsers Website
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0