Найти - Пользователи
Полная версия: s.bus в linux
Начало » Python для новичков » s.bus в linux
1
poruchik
Прошу совета уважаемых гуру.
Протокол s.bus, используемый в системах дистанционного управления, является инвертированным UART, но 11 битным. Библиотека pySerial поддерживает максимум до восьми бит.
Задача проста: имеются два USB-UART конвертора. Необходимо взять данные с одного и переписать на другой в режиме реального времени.
Вроде бы, логичны два подхода: переделать как-то библиотеку, или скопировать побитово данные из одного устройства в другое без их чтения устройством.
Подскажите, хотя бы, что наиболее подходит к ситуации и куда рыть?
py.user.next
poruchik
Библиотека pySerial поддерживает максимум до восьми бит.
Везде пересылаются байты. Тебе просто надо 11 бит упаковать в два байта. Модуль struct можно использовать для упаковки чисел в байты.
poruchik
py.user.next
Модуль struct можно использовать для упаковки чисел в байты.
Прошу прощения, но в данном случае не очень понятно, как его использовать для этой задачи.
Ведь считываются из порта они именно в восьмибитном формате. Остальные, получаются, обрезаются?
JOHN_16
мда… самая маленькая неделимая единица передачи данных не бит, а байт. Ну нельзя взять и передать просто 1 бит, 8 можно - потому что они оставляют 1 байт, 11 можно только представив их как совокупность 2 байт. Вам все правильно выше сказали.
py.user.next
poruchik
Остальные, получаются, обрезаются?
Они в следующем байте. А struct используется для того, чтобы число 12345 превратить в байты и наоборот.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB