Всем привет!
Пишу клиент для связи с устройством по протоколу МЭК 60870-5-104. На самом деле что за протокол не суть важно.
В результате опроса сервера клиентом я получаю посылку, в которой есть адрес и есть значение. Есть таблица адресов, в которой адрес указывает на то, значение какого параметра(ток, напряжение, битовая индикация) скрывается под этим адресом.
Создаю класс, описывающий измерительное устройство. Полями являются измеряемые величины и битовые индикаторы. При получении посылки я извлекаю из нее адрес и по этому самому адресу могу, посмотрев в таблицу, определить что за величина получена.
Вопрос в следующем - как лучше заполнять поля класса при получении посылки? У меня не установлена связь между полем и адресом в программе, то есть я явно должен прописать на данный момент, если Package.Address == 1, то Device.Voltage = Package.Value, к примеру, а таких полей может быть много.
Самый прямолинейный вариант делать через switch-case указанным выше образом.
Думал создать перечисление, в котором указать переменные, имена которых идентичны именам полей класса и им присвоить адреса из таблицы. Таким образом, приходит посылка -> смотрим адрес в перечислении -> получаем из перечисления имя переменной -> по имени переменной определяем в какое поле пишем значение -> пишем значение в поле (по имени как-то???)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу парсер мероприятий в FacebookДело в том, что загружаются только 10 мероприятий, остальные подгружаются по мере скроллинга страницы
У меня по нажатию кнопки должно менять цвет каждой цифры в LabelДо этого делал 4 Label и по очереди менял их цвет но это очень крупно получается
После переноса с локалхост все мапршруты ведет на главную, даже не существующиеВ логах пусто