Апликация .NET Core работающая с сенсорами - правильный метод?

Как правильно имплементировать следующую архитектуру:

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

Пример архитектуры смотрим на рисунке: введите сюда описание изображения

Как правильно это все организовать?

Моя версия - это запустить таймер при загрузке аппликации и в колбеке всю эту работу с железяками и делать.


Ответы (1 шт):

Автор решения: MSDN.WhiteKnight

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, или библиотеку от конкретного производителя устройств, если она предоставляется.

→ Ссылка