Уведомления

Группа в Telegram: @pythonsu

#1 Март 2, 2018 23:04:32

poruchik
Зарегистрирован: 2018-01-05
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

s.bus в linux

Прошу совета уважаемых гуру.
Протокол s.bus, используемый в системах дистанционного управления, является инвертированным UART, но 11 битным. Библиотека pySerial поддерживает максимум до восьми бит.
Задача проста: имеются два USB-UART конвертора. Необходимо взять данные с одного и переписать на другой в режиме реального времени.
Вроде бы, логичны два подхода: переделать как-то библиотеку, или скопировать побитово данные из одного устройства в другое без их чтения устройством.
Подскажите, хотя бы, что наиболее подходит к ситуации и куда рыть?

Офлайн

#2 Март 3, 2018 01:59:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

s.bus в linux

poruchik
Библиотека pySerial поддерживает максимум до восьми бит.
Везде пересылаются байты. Тебе просто надо 11 бит упаковать в два байта. Модуль struct можно использовать для упаковки чисел в байты.



Офлайн

#3 Март 4, 2018 19:58:36

poruchik
Зарегистрирован: 2018-01-05
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

s.bus в linux

py.user.next
Модуль struct можно использовать для упаковки чисел в байты.
Прошу прощения, но в данном случае не очень понятно, как его использовать для этой задачи.
Ведь считываются из порта они именно в восьмибитном формате. Остальные, получаются, обрезаются?

Офлайн

#4 Март 4, 2018 22:01:52

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

s.bus в linux

мда… самая маленькая неделимая единица передачи данных не бит, а байт. Ну нельзя взять и передать просто 1 бит, 8 можно - потому что они оставляют 1 байт, 11 можно только представив их как совокупность 2 байт. Вам все правильно выше сказали.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Март 5, 2018 00:24:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

s.bus в linux

poruchik
Остальные, получаются, обрезаются?
Они в следующем байте. А struct используется для того, чтобы число 12345 превратить в байты и наоборот.



Отредактировано py.user.next (Март 5, 2018 00:25:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version