CoLa2ProtocolHandler.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 SICK AG, Waldkirch
3 //
4 // SPDX-License-Identifier: Unlicense
5 
6 #pragma once
7 #include <cstddef> // for size_t
8 #include <cstdint>
9 #include <vector>
10 
11 #include "CoLaCommand.h"
12 #include "IProtocolHandler.h"
13 #include "ITransport.h"
14 
15 namespace visionary {
16 
18 {
19 public:
20  CoLa2ProtocolHandler(ITransport& rTransport);
21  ~CoLa2ProtocolHandler() override;
22 
23  bool openSession(std::uint8_t sessionTimeout /*secs*/) override;
24  void closeSession() override;
25 
26  // send cola cmd and receive cola response
27  CoLaCommand send(CoLaCommand cmd) override;
28 
29  std::uint16_t getReqId() const
30  {
31  return m_reqID;
32  }
33  std::uint32_t getSessionId() const
34  {
35  return m_sessionID;
36  }
37 
38 private:
39  using ByteBuffer = std::vector<std::uint8_t>;
40 
41  std::uint16_t createReqId();
42 
46  ByteBuffer readResponse(std::uint32_t& rSessionId, uint16_t& rReqId);
47 
48  ByteBuffer createProtocolHeader(std::size_t payloadSize, std::size_t extraReserve = 0u);
49  ByteBuffer createCommandHeader(std::size_t payloadSize, std::size_t extraReserve = 0u);
50 
52  std::uint16_t m_reqID;
53  std::uint32_t m_sessionID;
54 };
55 
56 } // namespace visionary
visionary
Definition: MD5.cpp:44
visionary::CoLaCommand
Definition: CoLaCommand.h:17
visionary::CoLa2ProtocolHandler::createReqId
std::uint16_t createReqId()
Definition: CoLa2ProtocolHandler.cpp:26
visionary::CoLa2ProtocolHandler::readResponse
ByteBuffer readResponse(std::uint32_t &rSessionId, uint16_t &rReqId)
read a command response packet
Definition: CoLa2ProtocolHandler.cpp:107
visionary::CoLa2ProtocolHandler::send
CoLaCommand send(CoLaCommand cmd) override
Definition: CoLa2ProtocolHandler.cpp:182
visionary::CoLa2ProtocolHandler::m_reqID
std::uint16_t m_reqID
Definition: CoLa2ProtocolHandler.h:52
visionary::CoLa2ProtocolHandler::createProtocolHeader
ByteBuffer createProtocolHeader(std::size_t payloadSize, std::size_t extraReserve=0u)
Definition: CoLa2ProtocolHandler.cpp:128
visionary::CoLa2ProtocolHandler::m_sessionID
std::uint32_t m_sessionID
Definition: CoLa2ProtocolHandler.h:53
visionary::CoLa2ProtocolHandler::createCommandHeader
ByteBuffer createCommandHeader(std::size_t payloadSize, std::size_t extraReserve=0u)
Definition: CoLa2ProtocolHandler.cpp:155
IProtocolHandler.h
visionary::CoLa2ProtocolHandler::~CoLa2ProtocolHandler
~CoLa2ProtocolHandler() override
visionary::CoLa2ProtocolHandler::getSessionId
std::uint32_t getSessionId() const
Definition: CoLa2ProtocolHandler.h:33
visionary::IProtocolHandler
Definition: IProtocolHandler.h:13
visionary::CoLa2ProtocolHandler::getReqId
std::uint16_t getReqId() const
Definition: CoLa2ProtocolHandler.h:29
visionary::CoLa2ProtocolHandler::CoLa2ProtocolHandler
CoLa2ProtocolHandler(ITransport &rTransport)
Definition: CoLa2ProtocolHandler.cpp:19
visionary::CoLa2ProtocolHandler::m_rtransport
ITransport & m_rtransport
Definition: CoLa2ProtocolHandler.h:51
visionary::CoLa2ProtocolHandler::closeSession
void closeSession() override
Definition: CoLa2ProtocolHandler.cpp:274
CoLaCommand.h
ITransport.h
visionary::ITransport
Definition: ITransport.h:19
cmd
string cmd
visionary::CoLa2ProtocolHandler::openSession
bool openSession(std::uint8_t sessionTimeout) override
Definition: CoLa2ProtocolHandler.cpp:223
visionary::CoLa2ProtocolHandler::ByteBuffer
std::vector< std::uint8_t > ByteBuffer
Definition: CoLa2ProtocolHandler.h:39
visionary::CoLa2ProtocolHandler
Definition: CoLa2ProtocolHandler.h:17
visionary::CoLa2ProtocolHandler::readProtocol
ByteBuffer readProtocol()
parse a response on protocol level
Definition: CoLa2ProtocolHandler.cpp:32


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:38:05