37 #ifndef SNET_APP_MESSAGE_H 38 #define SNET_APP_MESSAGE_H 44 SnetAppMessage(uint8_t a_SrcServiceId = 0, uint8_t a_DstServiceId = 0, uint8_t a_Token = 0, uint16_t a_SrcSSA = 0xFFFE, uint16_t a_DstSSA = 0xFFFE,
bool a_OnAirARQ =
true):
SnetPacket(a_SrcSSA, a_DstSSA, a_OnAirARQ), m_SrcServiceId(a_SrcServiceId), m_DstServiceId(a_DstServiceId), m_Token(a_Token) {}
47 void SetSrcServiceId(uint8_t a_SrcServiceId = 0) { m_SrcServiceId = a_SrcServiceId; }
49 void SetDstServiceId(uint8_t a_DstServiceId = 0) { m_DstServiceId = a_DstServiceId; }
51 void SetToken(uint8_t a_Token = 0) { m_Token = a_Token; }
57 l_Buffer.emplace_back(0x00);
58 l_Buffer.emplace_back(m_SrcServiceId);
59 l_Buffer.emplace_back(m_DstServiceId);
60 l_Buffer.emplace_back(0x00);
61 l_Buffer.emplace_back(m_Token);
66 size_t Deserialize(
const std::vector<unsigned char>& a_Buffer) {
69 if ((a_Buffer.size() - l_Offset) < 5) {
return 0; }
70 if (a_Buffer[l_Offset + 0] != 0x00) {
return 0; }
71 m_SrcServiceId = a_Buffer[l_Offset + 1];
72 m_DstServiceId = a_Buffer[l_Offset + 2];
73 if (a_Buffer[l_Offset + 3] != 0x00) {
return 0; }
74 m_Token = a_Buffer[l_Offset + 4];
83 std::stringstream l_Output;
85 <<
", SrcSrv=0x" << std::hex << std::setw(2) << std::setfill(
'0') << (int)m_SrcServiceId
86 <<
", DstSrv=0x" << std::hex << std::setw(2) << std::setfill(
'0') << (int)m_DstServiceId
87 <<
", Token=0x" << std::hex << std::setw(2) << std::setfill(
'0') << (int)m_Token;
88 return l_Output.str();
96 uint8_t m_SrcServiceId;
97 uint8_t m_DstServiceId;
101 #endif // SNET_APP_MESSAGE_H void SetDstServiceId(uint8_t a_DstServiceId=0)
virtual std::vector< unsigned char > Serialize() const
virtual std::string Dissect() const
uint8_t GetDstServiceId() const
uint16_t GetToken() const
uint8_t GetSrcServiceId() const
size_t Deserialize(const std::vector< unsigned char > &a_Buffer)
void SetSrcServiceId(uint8_t a_SrcServiceId=0)
SnetAppMessage(uint8_t a_SrcServiceId=0, uint8_t a_DstServiceId=0, uint8_t a_Token=0, uint16_t a_SrcSSA=0xFFFE, uint16_t a_DstSSA=0xFFFE, bool a_OnAirARQ=true)
virtual size_t GetSize() const
virtual size_t Deserialize(const std::vector< unsigned char > &a_Buffer)
std::vector< unsigned char > Serialize() const
std::string Dissect() const
void SetToken(uint8_t a_Token=0)
Copyright (c) 2016, Florian Evers, florian-evers@gmx.de All rights reserved.