MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/communication/service/Protocol.hh
2024-06-07 11:12:56 +03:00

136 lines
8.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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