Запись в поля по имени

161
03 декабря 2018, 09:00

Всем привет!

Пишу клиент для связи с устройством по протоколу МЭК 60870-5-104. На самом деле что за протокол не суть важно.

В результате опроса сервера клиентом я получаю посылку, в которой есть адрес и есть значение. Есть таблица адресов, в которой адрес указывает на то, значение какого параметра(ток, напряжение, битовая индикация) скрывается под этим адресом.

Создаю класс, описывающий измерительное устройство. Полями являются измеряемые величины и битовые индикаторы. При получении посылки я извлекаю из нее адрес и по этому самому адресу могу, посмотрев в таблицу, определить что за величина получена.

Вопрос в следующем - как лучше заполнять поля класса при получении посылки? У меня не установлена связь между полем и адресом в программе, то есть я явно должен прописать на данный момент, если Package.Address == 1, то Device.Voltage = Package.Value, к примеру, а таких полей может быть много.

Самый прямолинейный вариант делать через switch-case указанным выше образом.

Думал создать перечисление, в котором указать переменные, имена которых идентичны именам полей класса и им присвоить адреса из таблицы. Таким образом, приходит посылка -> смотрим адрес в перечислении -> получаем из перечисления имя переменной -> по имени переменной определяем в какое поле пишем значение -> пишем значение в поле (по имени как-то???)

READ ALSO
Программный скроллинг страницы

Программный скроллинг страницы

Пишу парсер мероприятий в FacebookДело в том, что загружаются только 10 мероприятий, остальные подгружаются по мере скроллинга страницы

94
Углы Эйлера в юнити

Углы Эйлера в юнити

Что это за углы, для чего нужны в юнити? Кратко объясните пожалуйста

154
Поочередно менять цвет цифр

Поочередно менять цвет цифр

У меня по нажатию кнопки должно менять цвет каждой цифры в LabelДо этого делал 4 Label и по очереди менял их цвет но это очень крупно получается

204
Все маршруты ведут на главную

Все маршруты ведут на главную

После переноса с локалхост все мапршруты ведет на главную, даже не существующиеВ логах пусто

182