Я пишу инструмент на основе Winforms и могу использовать некоторые рекомендации по структуре. Программа обменивается данными с оборудованием через последовательный порт и отображает GUI для отображения значений. Большинство значений либо устанавливаются с p c, либо считываются с устройства. Некоторые из них устанавливаются из p c, а затем подтверждаются устройством.
В настоящее время у меня есть объект Model со всеми значениями устройство может отправлять или получать. Он использует PropertyChangedEvent с привязкой данных для отображения значений в форме. Кроме того, существует кодировщик / декодер, который прослушивает событие, кодирует изменения и отправляет их на последовательный порт.
В функции приема последовательного порта сообщение декодируется, и обновляется правильное значение в модели. Проблема, с которой я столкнулся, заключается в том, что это вызовет другое событие PropertyChangedEvent, которое отправит другое последовательное сообщение. Я ищу хороший способ заменить этого слушателя чем-то другим? Я хотел бы сохранить привязку данных к форме, чтобы каждый элемент формы не нуждался в событии.
Большинство значений объявляются следующим образом:
private bool _voltageVBatToggle;
public bool voltageVBatToggle
{
get => _voltageVBatToggle;
set
{
if (_voltageVBatToggle != value)
{
_voltageVBatToggle = value;
OnPropertyChanged();
}
}
}