/*!\file * \brief \todo Описание файла. */ /* * Protocol.h * * Created on: 26 июн. 2019 г. * Author: titov */ #ifndef SOURCE_COMMUNICATION_SERVICE_PROTOCOL_H_ #define SOURCE_COMMUNICATION_SERVICE_PROTOCOL_H_ #include namespace communication { namespace service { inline namespace ver_1 { struct Protocol { static std::size_t getMessagesQuantity(); struct Messages { //!Перечисление типов сообщений enum Id : unsigned short { //Ping PingGetVersion = 0x0000, //!<Сообщение для проверки связи, версии ПО. PingVersion = 0x8000, //!<Версия ПО. //Settings SettingsWrite = 0x0001, //!<Сообщение c настраиваемыми параметрами. SettingsRead = 0x0002, //!<Запрос значений настраиваемых параметров. SettingLoadFromMemory = 0x0004, //!<Запрос на загрузку параметров из энергонезависимой памяти. SettingStoreToMemory = 0x0005, //!<Запрос на запись параметров в энергонезависимую память. SettingStorageState = 0x0006, //!<Запрос состояния хранилища параметров. SettingsValue = 0x8002, //!<Текущие значения параметров. SettingsState = 0x8006, //!<Текущие состояние хранилища. //Signals SignalsRequest = 0x0003, //!<Запрос значений измеряемых параметров (сигналы). SignalsValue = 0x8003, //!<Текущие значения сигналов (сигналы). //Signals StatusesRequest = 0x0007, //!<Запрос значений измеряемых параметров (статусы). StatusesValue = 0x8007, //!<Текущие значения статусов (статусы). //Failures FailureRequest = 0x0020, //!<Запрос отказов. FailureReset = 0x0030, //!<Сброс отказов. WarningsRequest = 0x0040, //!<Запрос предупреждений. //Oscilloscope OscilloscopeReauestParameters = 0x000B, //!<Запрос параметров осцилограффирования. OscilloscopeSettingParameters = 0x000A, //!<Сообщение с параметрами осцилограффирования. OscilloscopeRequestMeasurements = 0x000D, //!<Запрос результатов измерений. OscilloscopeParameters = 0x800B, //!<Текущие параметры осцилограффирования. OscilloscopeMeasurements = 0x800D, //!<Результаты измерений. //Service Control ServiceControlSource = 0x00D0, //!<Сообщение формирует состояние сервисного источника управления. CommandSet = 0x00D1, //!<Сообщение задает команду для выполнения. CommandReset = 0x00D2, //!<Сообщение сбрасывает команду для выполнения. CommandStatus = 0x00D3, //!<Запрос состояния выполнения команды. //TechFunction TechFunctionStart = 0x00A0, //!<Команда на запуск технологической функции. TechFunctionStop = 0x00C0, //!<Команда на останов всех технологических функций. TechFunctionGetState = 0x00B0, //!<Запрос состояния технологической функции. TechFunctionState = 0x80B0, //!