Program Listing for File CoLa2ProtocolHandler.h

Return to documentation for file (include/sick_safevisionary_base/CoLa2ProtocolHandler.h)

// -- BEGIN LICENSE BLOCK ----------------------------------------------
// -- END LICENSE BLOCK ------------------------------------------------

#pragma once
#include "CoLaCommand.h"
#include "IProtocolHandler.h"
#include "ITransport.h"

namespace visionary {

class CoLa2ProtocolHandler : public IProtocolHandler
{
public:
  CoLa2ProtocolHandler(ITransport& rTransport);
  ~CoLa2ProtocolHandler();

  bool openSession(uint8_t sessionTimeout /*secs*/);
  void closeSession();

  // send cola cmd and receive cola response
  CoLaCommand send(CoLaCommand cmd);

private:
  ITransport& m_rTransport;
  uint16_t m_ReqID;
  uint32_t m_sessionID;
  uint8_t calculateChecksum(const std::vector<uint8_t>& buffer);
  uint16_t getReqId();
  std::vector<std::uint8_t> createCoLa2Header();
};

} // namespace visionary