24 #ifndef HDLCD_CLIENT_DEVICE_NEW_STATUS_H 25 #define HDLCD_CLIENT_DEVICE_NEW_STATUS_H 34 l_HdlcdClientNewStatus.m_SerialPortNbr = a_SerialPortNbr;
35 l_HdlcdClientNewStatus.m_bIsResumed = a_bIsResumed;
36 l_HdlcdClientNewStatus.m_bIsAlive = a_bIsAlive;
37 return l_HdlcdClientNewStatus;
42 l_HdlcdClientNewStatus->m_eDeserialize = DESERIALIZE_BODY;
43 l_HdlcdClientNewStatus->m_BytesRemaining = 4;
44 return l_HdlcdClientNewStatus;
49 assert(m_eDeserialize == DESERIALIZE_FULL);
50 return m_SerialPortNbr;
54 assert(m_eDeserialize == DESERIALIZE_FULL);
59 assert(m_eDeserialize == DESERIALIZE_FULL);
65 HdlcdClientNewStatus(): m_SerialPortNbr(0), m_bIsResumed(
false), m_bIsAlive(
false), m_eDeserialize(DESERIALIZE_FULL) {
72 const std::vector<unsigned char> Serialize()
const {
73 assert(m_eDeserialize == DESERIALIZE_FULL);
74 std::vector<unsigned char> l_Buffer;
76 l_Buffer.emplace_back((m_SerialPortNbr >> 8) & 0xFF);
77 l_Buffer.emplace_back((m_SerialPortNbr >> 0) & 0xFF);
78 unsigned char l_Control = 0x00;
87 l_Buffer.emplace_back(l_Control);
94 switch (m_eDeserialize) {
95 case DESERIALIZE_BODY: {
99 m_SerialPortNbr = ntohs(*(reinterpret_cast<const uint16_t*>(&
m_Buffer[1])));
100 const unsigned char &l_Status =
m_Buffer[3];
101 m_bIsResumed = (l_Status & 0x01);
102 m_bIsAlive = (l_Status & 0x02);
103 m_eDeserialize = DESERIALIZE_FULL;
106 case DESERIALIZE_ERROR:
107 case DESERIALIZE_FULL:
117 uint16_t m_SerialPortNbr;
121 DESERIALIZE_ERROR = 0,
122 DESERIALIZE_BODY = 1,
125 E_DESERIALIZE m_eDeserialize;
128 #endif // HDLCD_CLIENT_DEVICE_NEW_STATUS_H
uint16_t GetIsResumed() const
std::vector< unsigned char > m_Buffer
The buffer containing partly received frames or higher-layer payload.
uint16_t GetIsAlive() const
static std::shared_ptr< HdlcdClientNewStatus > CreateDeserializedFrame()
static HdlcdClientNewStatus Create(uint16_t a_SerialPortNbr, bool a_bIsResumed, bool a_bIsAlive)
uint16_t GetSerialPortNbr() const