Program Listing for File ParseTCPPacket.h
↰ Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/data_processing/ParseTCPPacket.h
)
// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
// -- BEGIN LICENSE BLOCK ----------------------------------------------
// -- END LICENSE BLOCK ------------------------------------------------
//----------------------------------------------------------------------
//----------------------------------------------------------------------
#ifndef SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSETCPPACKET_H
#define SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSETCPPACKET_H
#include "sick_safetyscanners_base/datastructure/Data.h"
#include "sick_safetyscanners_base/datastructure/DerivedValues.h"
#include "sick_safetyscanners_base/datastructure/PacketBuffer.h"
#include "sick_safetyscanners_base/data_processing/ReadWriteHelper.hpp"
namespace sick {
namespace cola2 {
class Command;
} // namespace cola2
namespace data_processing {
class ParseTCPPacket
{
public:
ParseTCPPacket();
bool parseTCPSequence(const datastructure::PacketBuffer& buffer,
sick::cola2::Command& command) const;
uint32_t getExpectedPacketLength(const datastructure::PacketBuffer& buffer);
uint16_t getRequestID(const datastructure::PacketBuffer& buffer) const;
private:
uint32_t readSTx(std::vector<uint8_t>::const_iterator data_ptr) const;
uint32_t readLength(std::vector<uint8_t>::const_iterator data_ptr) const;
uint16_t readRequestID(std::vector<uint8_t>::const_iterator data_ptr) const;
uint8_t readHubCntr(std::vector<uint8_t>::const_iterator data_ptr) const;
uint8_t readNoC(std::vector<uint8_t>::const_iterator data_ptr) const;
uint32_t readSessionID(std::vector<uint8_t>::const_iterator data_ptr) const;
uint8_t readCommandType(std::vector<uint8_t>::const_iterator data_ptr) const;
uint8_t readCommandMode(std::vector<uint8_t>::const_iterator data_ptr) const;
uint16_t readErrorCode(std::vector<uint8_t>::const_iterator data_ptr) const;
std::vector<uint8_t> readData(const datastructure::PacketBuffer& buffer) const;
void setCommandValuesFromPacket(const sick::datastructure::PacketBuffer& buffer,
sick::cola2::Command& command) const;
};
} // namespace data_processing
} // namespace sick
#endif // SICK_SAFETYSCANNERS_BASE_DATA_PROCESSING_PARSETCPPACKET_H