MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/communication/service/Protocol.hh

136 lines
8.4 KiB
C++
Raw Normal View History

2024-06-07 11:12:56 +03:00
/*!\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_ */