Форум сайта python.su
Прошу совета уважаемых гуру.
Протокол s.bus, используемый в системах дистанционного управления, является инвертированным UART, но 11 битным. Библиотека pySerial поддерживает максимум до восьми бит.
Задача проста: имеются два USB-UART конвертора. Необходимо взять данные с одного и переписать на другой в режиме реального времени.
Вроде бы, логичны два подхода: переделать как-то библиотеку, или скопировать побитово данные из одного устройства в другое без их чтения устройством.
Подскажите, хотя бы, что наиболее подходит к ситуации и куда рыть?
Офлайн
poruchikВезде пересылаются байты. Тебе просто надо 11 бит упаковать в два байта. Модуль struct можно использовать для упаковки чисел в байты.
Библиотека pySerial поддерживает максимум до восьми бит.
Офлайн
py.user.nextПрошу прощения, но в данном случае не очень понятно, как его использовать для этой задачи.
Модуль struct можно использовать для упаковки чисел в байты.
Офлайн
мда… самая маленькая неделимая единица передачи данных не бит, а байт. Ну нельзя взять и передать просто 1 бит, 8 можно - потому что они оставляют 1 байт, 11 можно только представив их как совокупность 2 байт. Вам все правильно выше сказали.
Офлайн
poruchikОни в следующем байте. А struct используется для того, чтобы число 12345 превратить в байты и наоборот.
Остальные, получаются, обрезаются?
Отредактировано py.user.next (Март 5, 2018 00:25:58)
Офлайн