AlexG (10.07.2019 05:28, просмотров: 236) ответил Constantin24 на Перехожу с си на си++ и сразу споткнулся: есть класс Usart, реализующий прием/передачу. По нему создаем usart1 и usart2 для соответствующей периферии. Есть 2 протокола proto1 и proto2. На каждой периферии эти протоколы. Вот как правильно на плюсах
Я делал подобное, но, наверняка, мой вариант очень далек от того, как надо делать правильно. Есть класс USARTа, он умеет передавать данные из массива, который ему дают, и умеет дергать callback класса протокола при приеме байта. Есть классы, реализующие различные протоколы. Экземпляры классов протоколов создаются динамически в зависисмости от настроек и привязываются к нужным USARTам. Собственно, все затевалось не ради C++, а для того, чтобы можно было легко переключать используемые протоколы. Сейчас из протоколов есть Modbus-RTU Master в двух вариантах, Modbus-RTU Slave, Modbus-ASCII Slave, передатчик копии изображения с экрана устройства и вроде-бы был протокол PLC-модемов Yitran