Апликация .NET Core работающая с сенсорами - правильный метод?
Как правильно имплементировать следующую архитектуру:
- Компьютер с Ubuntu Desktop 18.04 на борту
- Загружается .NET Web API application (.Net Core 2-3 не важно)
- Та же апликация считывает данные с разнообразных датчиков, управляет парой сервоприводов и т.д.
Пример архитектуры смотрим на рисунке:

Как правильно это все организовать?
Моя версия - это запустить таймер при загрузке аппликации и в колбеке всю эту работу с железяками и делать.
Ответы (1 шт):
UART device - это, насколько я понимаю, последовательный порт. Работа с ним в .NET Core поддерживается, но нужно подключить пакет System.IO.Ports (требуемая версия .NET Core - 2.1). Используется класс SerialPort, чтение можно реализовать либо как вы написали, периодическим опросом свойства BytesToRead и последующим вызовом Read, либо подпиской на событие DataReceived.
Ethernet device - если устройство работает по протоколу TCP, используется стандартный класс TcpClient, тут только периодическая отправка запроса. Если свой протокол, чуть сложнее, нужно использовать raw sockets и реализовать самому этот протокол.
USB Device - Если USB устройство работает в режиме эмуляции последовательного порта, все как в первом пункте. Если нет, нужно использовать стороннюю библиотеку, вроде LibUsbDotNet, или библиотеку от конкретного производителя устройств, если она предоставляется.