У меня есть случай, когда я использую виртуальную машину под управлением Windows Server и имею несколько служб C#, которые взаимодействуют с аппаратными устройствами, например, с помощью Advantech, а затем подключаются к устройствам чтения. Кроме того, я также подключаюсь к устройствам встроенной системы (IoT) для управления считывателями и использую сервоприводы для имитации подъема/опускания барьера ворот.
Проблема, с которой я сталкиваюсь, иногда система работает безупречно, и иногда я замечаю, что система считывает данные со считывателей (индивидуальных) и/или считывателей с устройств IoT (а также функциональность барьера ворот) с задержкой. Итак, я хочу добавить еще одну службу C# (или, возможно, графический интерфейс), чтобы контролировать связь с оборудованием и видеть:
- Когда сервер отправляет сообщение на устройство (метка времени)
- Когда сервер получает сообщение от устройства (метка времени)
- Рассчитывать время ответа
- Рассчитывать среднюю скорость передачи сообщений на устройство (сообщений/сек)
- Сравнить текущую скорость со средним историческим значением (возможно, использовать SQLite для хранения некоторых из этих значений).
- Определить, когда связь становится медленнее, чем обычно.
- Непрерывно записывать эту информацию в файл.
- Возможно визуализировать ее в простом графическом интерфейсе (необязательно).
Есть ли какие-либо пакеты, которые мне следует рассмотреть для использования в сервисе/графическом интерфейсе (предпочтительно) Лицензия MIT), которая может помочь в мониторинге связи TCP/UDP между моими службами C# и оборудованием/устройствами IoT в закрытой локальной сети, уделяя особое внимание только временным меткам и частоте сообщений (не глубокая проверка пакетов - но было бы неплохо, если бы существовал способ просто просматривать только отправленные/полученные сообщения), а также помогать обнаруживать замедления или аномальные задержки связи в режиме реального времени.
Подробнее здесь:
https://stackoverflow.com/questions/799 ... munication