Включение и проверка битовой четности между C++ и Python ⇐ Python
Включение и проверка битовой четности между C++ и Python
tl;dr — когда четность включена на обеих сторонах контроллера C++ и клиента Python, сообщения, похоже, на самом деле не требуют проверки и задаются вопросом, не упускаю ли я что-то для настройки или мне нужно вручную проверять каждое сообщение.
Я пытался использовать битовую четность для проверки сообщений на поверхностном уровне между платой Microsemi Smartfusion 2 с использованием контроллера C++ с MSS Uart и клиентом Python с использованием Pyserial, который, похоже, только что стал Win32Serial.
Когда и контроллер, и клиент настроены на «Нет четности», они работают нормально, как и ожидалось. Если оба настроены на «Нечетное/Нечетное» или «Четное/Четное», они работают должным образом.
Проблема, с которой мы сталкиваемся, заключается в том, что когда Клиент и Контроллер настроены на Четное/Нечетное или Нечетное/Четное, они работают, что противоречит нашим ожиданиям. Мы ожидаем, что он выдаст ошибку или где-то зависнет, но вместо этого он работает так, как ожидалось.
Подключение Python и установка битовой четности
попробуйте: self.port = серийный.Serial( порт = self.имя_порта, скорость передачи данных = SERIAL_CONSTS.BAUDRATE, четность = серийный.PARITY_ODD, стопбиты = серийный.STOPBITS_ONE, bytesize=serial.EIGHTBITS, тайм-аут = SERIAL_CONSTS.DEFAULT_TIMEOUT ) Подключение C++ и установка битовой четности
MSS_UART_init( &g_mss_uart0, UARTParameters::SerialBaudRate_BPS, UARTParameters::SerialIFConfig); Переменные для контроллера C++
const uint32_t SerialBaudRate_BPS = 4000000U; const uint8_t SerialIFConfig = MSS_UART_DATA_8_BITS | MSS_UART_ODD_PARITY | MSS_UART_ONE_STOP_BIT; Мы проверили входящие и исходящие двоичные сообщения на четность и видим, что, если установлены четные и нечетные, бит четности правильный при отправке и получении, и сообщение выполняется независимо от того, какую четность установил получатель.< /п> Мы обнаружили, что если на клиенте или контроллере для бита четности установлено значение «нет», мы получим ошибку подтверждения, которую мы ожидаем, поскольку сообщения имеют разный размер (похоже, бит четности просто отбрасывается).
р>
tl;dr — когда четность включена на обеих сторонах контроллера C++ и клиента Python, сообщения, похоже, на самом деле не требуют проверки и задаются вопросом, не упускаю ли я что-то для настройки или мне нужно вручную проверять каждое сообщение.
Я пытался использовать битовую четность для проверки сообщений на поверхностном уровне между платой Microsemi Smartfusion 2 с использованием контроллера C++ с MSS Uart и клиентом Python с использованием Pyserial, который, похоже, только что стал Win32Serial.
Когда и контроллер, и клиент настроены на «Нет четности», они работают нормально, как и ожидалось. Если оба настроены на «Нечетное/Нечетное» или «Четное/Четное», они работают должным образом.
Проблема, с которой мы сталкиваемся, заключается в том, что когда Клиент и Контроллер настроены на Четное/Нечетное или Нечетное/Четное, они работают, что противоречит нашим ожиданиям. Мы ожидаем, что он выдаст ошибку или где-то зависнет, но вместо этого он работает так, как ожидалось.
Подключение Python и установка битовой четности
попробуйте: self.port = серийный.Serial( порт = self.имя_порта, скорость передачи данных = SERIAL_CONSTS.BAUDRATE, четность = серийный.PARITY_ODD, стопбиты = серийный.STOPBITS_ONE, bytesize=serial.EIGHTBITS, тайм-аут = SERIAL_CONSTS.DEFAULT_TIMEOUT ) Подключение C++ и установка битовой четности
MSS_UART_init( &g_mss_uart0, UARTParameters::SerialBaudRate_BPS, UARTParameters::SerialIFConfig); Переменные для контроллера C++
const uint32_t SerialBaudRate_BPS = 4000000U; const uint8_t SerialIFConfig = MSS_UART_DATA_8_BITS | MSS_UART_ODD_PARITY | MSS_UART_ONE_STOP_BIT; Мы проверили входящие и исходящие двоичные сообщения на четность и видим, что, если установлены четные и нечетные, бит четности правильный при отправке и получении, и сообщение выполняется независимо от того, какую четность установил получатель.< /п> Мы обнаружили, что если на клиенте или контроллере для бита четности установлено значение «нет», мы получим ошибку подтверждения, которую мы ожидаем, поскольку сообщения имеют разный размер (похоже, бит четности просто отбрасывается).
р>
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Изменение четности последовательного порта во время выполнения Python Serial
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-