Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Верификация данных в сетевом сообщении


Автор: mathemat 12.8.2011, 21:47
В программу поступает сообщение, описывающее тактовое расписание работы устройства. Сообщение содержит поля, определяющие режимы работы устройства, и необходимые вспомогательные данные. Режимы по-крупному определяются несколькими полями. Причем значения полей могут быть несовместимы друг с другом. Например, за включение передатчика отвечает одно поле, а за включение приемника - другое. Неправильные значения могут привести к одновременному включению и того и другого - следствие - вероятное повреждение аппаратуры.

Необходим механизм контроля совместимости данных структуры между собой. А именно:
  •  Контроль совместимости режимов, подрежимов и т.п.
  •  Контроль полноты вспомогательных данных для выбранных режимов.
  •  Контроль допустимых диапазонов вспомогательных данных.

Одно решение - написать соответствующий код, который будет проверять входящие сообщения по заранее определенному набору правил. Но сообщения могут меняться в процессе разработки устройства (и меняются). Каждый раз перекомпилировать код проблематично, т.к. он исполняется минимум на 4 типах процессоров и на нескольких различных платформах.

Хотелось бы написать программу-верификатор, которая проверяла бы сообщения на основе правил, описанных в отдельном файле (едином для всех платформ). Соответственно, при изменении состава сообщения файл будет редактироваться.

Вопрос: есть ли готовые средства, технологии или алгоритмы контроля совместимости данных.

Речь не идет о повреждении в процессе передачи по сети. Контроль целостности и так присутствует. Речь идет об ошибках программистов, формирующих расписание. Они далеко не всегда знают об ограничениях.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)