75 typedef ecl::PushAndPop<unsigned char> BufferType;
77 enum packetFinderState
81 waitingForPayloadSize,
82 waitingForPayloadToEtx,
85 enum packetFinderState state;
88 unsigned int size_stx;
89 unsigned int size_etx;
90 unsigned int size_length_field;
91 bool variable_size_payload;
92 unsigned int size_max_payload;
93 unsigned int size_payload;
94 unsigned int size_checksum_field;
102 ecl::Signal<const std::string&> sig_warn, sig_error;
109 void configure(
const std::string &sigslots_namespace,
110 const BufferType & putStx,
const BufferType & putEtx,
unsigned int sizeLengthField,
111 unsigned int sizeMaxPayload,
unsigned int sizeChecksumField,
bool variableSizePayload);
113 void enableVerbose();
114 virtual bool update(
const unsigned char * incoming,
unsigned int numberOfIncoming);
115 virtual bool checkSum();
116 unsigned int numberOfDataToRead();
117 void getBuffer(BufferType & bufferRef);
118 void getPayload(BufferType & bufferRef);
121 bool WaitForStx(
const unsigned char datum);
122 bool waitForPayloadSize(
const unsigned char * incoming,
unsigned int numberOfIncoming);
123 bool waitForEtx(
const unsigned char incoming,
bool & foundPacket);
124 bool waitForPayloadAndEtx(
const unsigned char * incoming,
unsigned int numberOfIncoming,
bool & foundPacket);
Provides simple packet finder which may be consist of stx, etx, payload, ...
Definition packet_finder.hpp:73