Мне нужно создать связь между узлами многоточечной шины и основным процессом, работающим в IoT в Windows через Raspberry Pi 3.
Я знаю, как обмениваться данными с 8-битным байтом.Это пример рабочего кода:
_serial_port = await SerialDevice.FromIdAsync(di.Id);
if (_serial_port == null) return false;
_serial_port.WriteTimeout = TimeSpan.FromMilliseconds(1000);
_serial_port.ReadTimeout = TimeSpan.FromMilliseconds(1000);
_serial_port.BaudRate = 9600;
_serial_port.Parity = SerialParity.None;
_serial_port.StopBits = SerialStopBitCount.One;
_serial_port.DataBits = 8;
dataWriteObject = new DataWriter(_serial_port.OutputStream);
dataReaderObject = new DataReader(_serial_port.InputStream);
dataWriteObject.WriteBytes(0xAA);
await dataWriteObject.StoreAsync();
await dataReaderObject.LoadAsync(1);
byte resp = dataReaderObject.ReadByte();
Здесь я передаю 1010 1010
и получаю xxxx xxxx
с удаленного узла.
Вопрос.
- Допустим, удаленный узел отправляет мне
1010 1010 1
- Допустим, мне нужно отправить
1010 1010 1
Как должен выглядеть код?
ОБНОВЛЕНИЕ
Я думаю об обходных решениях:
- Чтобы использовать бит четности UART.Но я на самом деле не понимаю, как.
- Использовать COM -> USB-конвертер, но на самом деле могут быть те же проблемы с 9-м битом.
- В середине используйте Adruino, который будет реализовывать 9-битный RxTxчерез GPIO и вывод данных в Raspberry в нашем внутреннем формате.