136 lines
8.4 KiB
C++
136 lines
8.4 KiB
C++
|
|
/*!\file
|
|||
|
|
* \brief \todo Описание файла.
|
|||
|
|
*/
|
|||
|
|
/*
|
|||
|
|
* Protocol.h
|
|||
|
|
*
|
|||
|
|
* Created on: 26 июн. 2019 г.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef SOURCE_COMMUNICATION_SERVICE_PROTOCOL_H_
|
|||
|
|
#define SOURCE_COMMUNICATION_SERVICE_PROTOCOL_H_
|
|||
|
|
|
|||
|
|
#include <cstddef>
|
|||
|
|
|
|||
|
|
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, //!<Cостояние технологической функции.
|
|||
|
|
TechFunctionGetData = 0x00E0, //!<Запрос данных технологической функции.
|
|||
|
|
TechFunctionData = 0x80E0, //!<Данные технологической функции.
|
|||
|
|
|
|||
|
|
//TechValue
|
|||
|
|
TechValueSet = 0x00A1, //!<Команда установить технологическое значение.
|
|||
|
|
TechValueGet = 0x00B1, //!<Запрос технологического значения.
|
|||
|
|
TechValue = 0x80B1, //!<Технологическое значение.
|
|||
|
|
|
|||
|
|
//Gpio Override
|
|||
|
|
GpioOverrideSetup = 0x0018, //!<Команда - перехватить пин(ы).
|
|||
|
|
GpioOverrideSetValue = 0x0028, //!<Команда - переписать захваченный пин(ы).
|
|||
|
|
GpioOverrideGetHiddenValue = 0x0038, //!<Запрос - получить состояние пина(ов).
|
|||
|
|
GpioOverrideHiddenValue = 0x8038, //!<Ответ - состояние пина(ов).
|
|||
|
|
GpioOverrideReset = 0x0048, //!<Команда - освободить пин(ы).
|
|||
|
|
GpioStateRequest = 0x0058, //!<Запрос - состояние пина(ов) по id.
|
|||
|
|
GpioState = 0x8058, //!<Ответ - состояние пина(ов) по id.
|
|||
|
|
|
|||
|
|
//Gpio State
|
|||
|
|
McuGpioStatusRequest = 0x0008, //!<Запрос состояния пина.
|
|||
|
|
McuGpioStatus = 0x8008, //!<Ответ на запрос состояния пина.
|
|||
|
|
|
|||
|
|
//Mcu
|
|||
|
|
McuResetCommand = 0x00AA, //!<Команда на перезагрузку МК.
|
|||
|
|
|
|||
|
|
//Scheduler
|
|||
|
|
ProcessRequest = 0x00AB, //!<Зппрос списка процессов.
|
|||
|
|
|
|||
|
|
//Wai
|
|||
|
|
WaitCodeCommand = 0x00AC, //!<Отправка ожидаемого кода.
|
|||
|
|
|
|||
|
|
//Logger operation set
|
|||
|
|
LoggerRequestBounds = 0x00BA, //!<Запрос на получение границ записей.
|
|||
|
|
LoggerBounds = 0x80BA, //!<Ответ на получение границ записей.
|
|||
|
|
LoggerBufferingSingleRecord = 0x00BB, //!<Запрос на буфферизацию сообщения.
|
|||
|
|
LoggerBufferedSingleRecord = 0x80BB, //!<Ответ на буфферизацию сообщения.
|
|||
|
|
LoggerGetSingleRecord = 0x00BC, //!<Запрос на получение буфферизированного сообщения.
|
|||
|
|
LoggerSingleRecord = 0x80BC, //!<Ответ на получение буфферизированного сообщения.
|
|||
|
|
LoggerRequestRecordIndex = 0x00BD, //!<Запрос текущего индекса записанного сообщения.
|
|||
|
|
LoggerRecordIndex = 0x80BD, //!<Ответ текущий индекс записанного сообщения.
|
|||
|
|
|
|||
|
|
// FlashApi
|
|||
|
|
FlashApiCommand = 0x00BE, //!<
|
|||
|
|
FlashApiStatus = 0x80BE, //!<
|
|||
|
|
|
|||
|
|
// BinaryInfo
|
|||
|
|
BinaryInfoReq = 0x00BF, //!<Запрос информации о прошивке.
|
|||
|
|
BinaryInfoResp = 0x80BF, //!<
|
|||
|
|
|
|||
|
|
Undefined = 0xFFFF //!<Неопределенный тип пакета.
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
inline std::size_t communication::service::ver_1::Protocol::getMessagesQuantity() {
|
|||
|
|
|
|||
|
|
return 38u;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif /* SOURCE_COMMUNICATION_SERVICE_PROTOCOL_H_ */
|