Если бы вы разобрали 300 байтов необработанных данных 20 раз в секунду в кучу свойств управления WPF, каково было бы ваше решение?Каков наилучший способ перехода от опроса к событиям?
В частности, у меня есть ПЛК с поддержкой Modbus, и мне нужно создать интерфейс управления WPF для управления им. Modbus - это протокол связи, который требует опроса для изменения данных. Напротив, WPF и .NET Framework в целом продвигают модель, управляемую событиями, поэтому перенаправление данных 20 раз в секунду непосредственно в элементы управления кажется мне неестественным. Мало того, что Modbus не имеет средств для представления данных об изменениях данных, но также не обеспечивает представления на высоком уровне байтов, и разработчик должен правильно анализировать массив беззнаковых шорт во что-то значимое.
Хотя анализ таких данных для меня не имеет большого значения, придумывая правильное преобразование в кучу зависимых от события DependencyProperties (привязка данных), является сложной задачей. Я бы не хотел иметь много кода инициализации или временного хранилища для отслеживания изменений.
Использование INotifyPropertyChanged является хорошей отправной точкой, ТНХ (нужен метод для получения обновленного свойства, хотя). Но предварительная сбор данных или ограничение частоты обновления приведут к значительному отставанию в пользовательском интерфейсе, то есть когда пользователь нажимает на клапан, чтобы его открыть, его изменения состояния должны быть как можно быстрее отражены для целей ведения журнала и реакции пользовательского интерфейса. – Yegor
Подробнее о получении ... Я бы не хотел создавать отдельные свойства для всех точек данных (после разбора их несколько десятков). – Yegor
Для первого момента, не должно быть никаких проблем, чтобы обновить интерфейс 20 раз в секунду. Во-вторых, вы можете продолжить класс данных со всеми точками данных в качестве членов и использовать это как тип свойства данных. – Clemens