DYT/Tool/matlab/include/coder/target_services/MessageDictionary.hpp
2024-11-22 23:19:31 +08:00

219 lines
4.2 KiB
C++

/* Copyright 2013 MathWorks, Inc. */
#include <coder/target_services/Message.hpp>
#include <coder/target_services/StatusFlags.hpp>
namespace coder { namespace tgtsvc {
enum {
PING_MSG_ID = 1,
PING_RESPONSE_MSG_ID = 2,
CONNECT_MSG_ID = 3,
CONNECT_RESPONSE_MSG_ID = 4,
HEARTBEAT_MSG_ID = 5,
HEARTBEAT_RESPONSE_MSG_ID = 6,
IN_TEST_START_MSG_ID = 7,
TEST_DATA_MSG_ID = 8,
OUT_TEST_START_MSG_ID = 9,
OUT_TEST_RESULT_MSG_ID = 10,
TEST_CONCLUDED_MSG_ID = 11,
COMM_SERVICE_ID = 0xFF
};
class PingMsg : public Message
{
public:
enum {
ID = PING_MSG_ID,
PAYLOAD_SIZE = 0
};
PingMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
};
class PingResponseMsg : public Message
{
public:
enum {
ID = PING_RESPONSE_MSG_ID,
PAYLOAD_SIZE = 0
};
PingResponseMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
};
class ConnectMsg : public Message
{
public:
enum {
ID = CONNECT_MSG_ID,
PAYLOAD_SIZE = 0
};
ConnectMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
};
class ConnectResponseMsg : public Message
{
public:
enum {
ID = CONNECT_RESPONSE_MSG_ID,
PAYLOAD_SIZE = sizeof(uint16_t)
};
ConnectResponseMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
maxPayload_ = maxPayloadCapacity();
}
uint16_t maxPayload_;
};
class HeartbeatMsg : public Message
{
public:
enum {
ID = HEARTBEAT_MSG_ID,
PAYLOAD_SIZE = 0
};
HeartbeatMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
};
class HeartbeatResponseMsg : public Message
{
public:
enum {
ID = HEARTBEAT_RESPONSE_MSG_ID,
PAYLOAD_SIZE = sizeof(coder::tgtsvc::StatusFlags)
};
HeartbeatResponseMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
coder::tgtsvc::StatusFlags statusFlags_;
};
class InTestStartMsg : public Message
{
public:
enum {
ID = IN_TEST_START_MSG_ID,
PAYLOAD_SIZE = sizeof(uint16_t) + sizeof(uint32_t)
};
InTestStartMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
uint32_t testMsgCount_;
uint16_t testMsgSize_;
};
class TestDataMsg : public Message
{
public:
enum {
ID = TEST_DATA_MSG_ID,
};
explicit TestDataMsg(uint16_t size) {
MessageHeader &h = header();
h.payloadSize_ = size;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
private:
TestDataMsg();
};
class OutTestStartMsg : public Message
{
public:
enum {
ID = OUT_TEST_START_MSG_ID,
PAYLOAD_SIZE = sizeof(uint16_t) + sizeof(uint32_t)
};
OutTestStartMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
uint32_t testMsgCount_;
uint16_t testMsgSize_;
};
class OutTestResultMsg : public Message
{
public:
enum {
ID = OUT_TEST_RESULT_MSG_ID,
PAYLOAD_SIZE = 1
};
enum {
RESULT_OK = 0
};
OutTestResultMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
result_ = RESULT_OK;
}
uint8_t result_;
};
class TestConcludedMsg : public Message
{
public:
enum {
ID = TEST_CONCLUDED_MSG_ID,
PAYLOAD_SIZE = 1
};
TestConcludedMsg() {
MessageHeader &h = header();
h.payloadSize_ = PAYLOAD_SIZE;
h.appId_ = COMM_SERVICE_ID;
h.appFun_ = ID;
}
uint8_t pad_;
};
}}