34 using icl_comm::ArrayBuilder;
41 m_serial_device(device),
42 m_received_state(eRS_HEADER1),
46 m_packets_received(0),
48 m_received_callback(received_callback)
149 m_ab.appendWithoutConversion(data_byte);
156 m_ab.appendWithoutConversion(data_byte);
163 m_ab.appendWithoutConversion(data_byte);
170 m_ab.appendWithoutConversion(data_byte);
181 m_data.push_back(data_byte);
182 m_ab.appendWithoutConversion(data_byte);
202 for (
size_t i = 0; i <
m_data.size(); ++i)
208 if ((checksum1 == 0) && (checksum2 == 0))
213 m_ab >> received_packet;
218 LOGGING_TRACE_C(DriverSVH,
SVHReceiveThread,
"Received packet index:" << received_packet.index <<
", address:"<<received_packet.address<<
", size:"<<received_packet.data.size() <<
endl);
233 m_ab >> received_packet;
236 LOGGING_TRACE_C(DriverSVH,
SVHReceiveThread,
"Checksum error: "<< (
int)checksum1<<
","<<(
int)checksum2<<
"!=0, skipping "<<
m_length+8<<
"bytes, packet index:" << received_packet.index <<
", address:"<<received_packet.address<<
", size:"<<received_packet.data.size() <<
endl);
std::vector< uint8_t > m_data
length of received serial data
const uint8_t PACKET_HEADER1
Header sync byte 1.
tState m_received_state
current state of the state machine
boost::function< void(const SVHSerialPacket &packet, unsigned int packet_count)> ReceivedPacketCallback
definition of boost function callback for received packages
unsigned int m_skipped_bytes
counter for skipped bytes in case no packet is detected
const uint8_t PACKET_HEADER2
Header sync byte 2.
ReceivedPacketCallback m_received_callback
function callback for received packages
bool receiveData()
state machine processing received data
virtual void run()
run method of the thread, executes the main program
#define LOGGING_WARNING_C(streamname, classname, arg)
uint16_t m_length
length of received serial data
Thread for receiving messages from the serial device.
ThreadStream & endl(ThreadStream &stream)
unsigned int m_packets_received
packets counter
SVHReceiveThread(const TimeSpan &period, boost::shared_ptr< Serial > device, ReceivedPacketCallback const &received_callback)
SVHReceiveThread Constructs a new Receivethread.
boost::shared_ptr< Serial > m_serial_device
pointer to serial device object
uint8_t m_checksum1
Checksum of packet.
#define LOGGING_TRACE_C(streamname, classname, arg)
icl_comm::ArrayBuilder m_ab
pointer to array builder object for packet receive
The SerialPacket holds the (non generated) header and data of one message to the SVH-Hardware.