37 #ifndef PROTOCOL_STATE_H 38 #define PROTOCOL_STATE_H 41 #include <boost/asio.hpp> 49 class ProtocolState:
public std::enable_shared_from_this<ProtocolState> {
51 ProtocolState(std::shared_ptr<ISerialPortHandler> a_SerialPortHandler, boost::asio::io_service& a_IOService);
57 void SendPayload(
const std::vector<unsigned char> &a_Payload,
bool a_bReliable);
63 bool IsAlive()
const {
return m_AliveState->IsAlive(); }
69 void OpportunityForTransmission();
78 bool m_bAwaitsNextHDLCFrame;
79 unsigned char m_SSeqOutgoing;
80 unsigned char m_RSeqIncoming;
84 bool m_bPeerStoppedFlow;
85 bool m_bPeerStoppedFlowNew;
86 bool m_bPeerStoppedFlowQueried;
87 bool m_bPeerRequiresAck;
89 std::deque<unsigned char> m_SREJs;
92 std::shared_ptr<ISerialPortHandler> m_SerialPortHandler;
96 std::deque<std::vector<unsigned char>> m_WaitQueueReliable;
97 std::deque<std::vector<unsigned char>> m_WaitQueueUnreliable;
100 std::shared_ptr<AliveState> m_AliveState;
103 boost::asio::deadline_timer m_Timer;
104 bool m_bAliveReceivedSometing;
107 #endif // PROTOCOL_STATE_H
void TriggerNextHDLCFrame()
Copyright (c) 2016, Florian Evers, florian-evers@gmx.de All rights reserved.
void InterpretDeserializedFrame(const std::vector< unsigned char > &a_Payload, const HdlcFrame &a_HdlcFrame, bool a_bMessageInvalid)
ProtocolState(std::shared_ptr< ISerialPortHandler > a_SerialPortHandler, boost::asio::io_service &a_IOService)
Copyright (c) 2016, Florian Evers, florian-evers@gmx.de All rights reserved.
void SendPayload(const std::vector< unsigned char > &a_Payload, bool a_bReliable)
This file contains the header declaration of class AliveState.
void AddReceivedRawBytes(const unsigned char *a_Buffer, size_t a_Bytes)