65 static const uint8_t
Version = 1;
66 static const uint8_t TimeoutUnit = 3;
69 uint32_t locTryPeriod_;
72 uint8_t locMaxBuffers_;
73 uint16_t locMaxSegment_;
74 uint16_t locCumAckTout_;
75 uint16_t locRetranTout_;
76 uint16_t locNullTout_;
77 uint8_t locMaxRetran_;
78 uint8_t locMaxCumAck_;
81 uint8_t curMaxBuffers_;
82 uint16_t curMaxSegment_;
83 uint16_t curCumAckTout_;
84 uint16_t curRetranTout_;
85 uint16_t curNullTout_;
86 uint8_t curMaxRetran_;
87 uint8_t curMaxCumAck_;
90 enum States : uint32_t { StClosed = 0, StWaitSyn = 1, StSendSynAck = 2, StSendSeqAck = 3, StOpen = 4, StError = 5 };
93 std::shared_ptr<rogue::protocols::rssi::Transport> tran_;
94 std::shared_ptr<rogue::protocols::rssi::Application> app_;
96 std::shared_ptr<rogue::Logging> log_;
112 std::map<uint8_t, std::shared_ptr<rogue::protocols::rssi::Header>> oooQueue_;
122 std::condition_variable stCond_;
125 struct timeval stTime_;
127 uint32_t retranCount_;
128 uint32_t locBusyCnt_;
129 uint32_t remBusyCnt_;
134 std::shared_ptr<rogue::protocols::rssi::Header> txList_[256];
136 uint8_t txListCount_;
138 uint8_t locSequence_;
139 struct timeval txTime_;
142 struct timeval retranToutD1_;
143 struct timeval tryPeriodD1_;
144 struct timeval tryPeriodD4_;
145 struct timeval cumAckToutD1_;
146 struct timeval cumAckToutD2_;
147 struct timeval nullToutD3_;
148 struct timeval zeroTme_;
151 std::thread* thread_;
155 struct timeval timeout_;
174 static std::shared_ptr<rogue::protocols::rssi::Controller>
create(
176 std::shared_ptr<rogue::protocols::rssi::Transport> tran,
177 std::shared_ptr<rogue::protocols::rssi::Application> app,
193 std::shared_ptr<rogue::protocols::rssi::Transport> tran,
194 std::shared_ptr<rogue::protocols::rssi::Application> app,
208 std::shared_ptr<rogue::interfaces::stream::Frame>
reqFrame(uint32_t size);
214 void transportRx(std::shared_ptr<rogue::interfaces::stream::Frame> frame);
220 std::shared_ptr<rogue::interfaces::stream::Frame>
applicationTx();
226 void applicationRx(std::shared_ptr<rogue::interfaces::stream::Frame> frame);
417 void transportTx(std::shared_ptr<rogue::protocols::rssi::Header> head,
bool seqUpdate,
bool txReset);
420 int8_t retransmit(uint8_t
id);
423 static void convTime(
struct timeval& tme, uint32_t rssiTime);
426 static bool timePassed(
struct timeval& lastTime,
struct timeval& tme);
432 struct timeval& stateClosedWait();
435 struct timeval& stateSendSynAck();
438 struct timeval& stateSendSeqAck();
441 struct timeval& stateOpen();
444 struct timeval& stateError();