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_ */
|