CoLaBProtocolHandler.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  CoLaBProtocolHandler(ITransport& rTransport);
21  ~CoLaBProtocolHandler() override;
22 
23  bool openSession(std::uint8_t sessionTimeout /*secs*/) override;
24  void closeSession() override;
25 
27  CoLaCommand send(CoLaCommand cmd) override;
28 
29 private:
30  using ByteBuffer = std::vector<std::uint8_t>;
31 
32  std::uint8_t calculateChecksum(ByteBuffer::const_iterator begin, ByteBuffer::const_iterator end) const;
37 
38  ByteBuffer createProtocolHeader(std::size_t payloadSize, std::size_t extraReserve = 0u);
39  ByteBuffer createCommandHeader(std::size_t payloadSize, std::size_t extraReserve = 0u);
40 
42 };
43 
44 } // namespace visionary
visionary::CoLaBProtocolHandler::readProtocol
ByteBuffer readProtocol()
parse a response on protocol level
Definition: CoLaBProtocolHandler.cpp:37
visionary::CoLaBProtocolHandler::send
CoLaCommand send(CoLaCommand cmd) override
send cola cmd and receive cola response
Definition: CoLaBProtocolHandler.cpp:140
visionary::CoLaBProtocolHandler::ByteBuffer
std::vector< std::uint8_t > ByteBuffer
Definition: CoLaBProtocolHandler.h:30
visionary
Definition: MD5.cpp:44
visionary::CoLaCommand
Definition: CoLaCommand.h:17
visionary::CoLaBProtocolHandler::openSession
bool openSession(std::uint8_t sessionTimeout) override
Definition: CoLaBProtocolHandler.cpp:172
visionary::CoLaBProtocolHandler::createCommandHeader
ByteBuffer createCommandHeader(std::size_t payloadSize, std::size_t extraReserve=0u)
Definition: CoLaBProtocolHandler.cpp:133
visionary::CoLaBProtocolHandler::CoLaBProtocolHandler
CoLaBProtocolHandler(ITransport &rTransport)
Definition: CoLaBProtocolHandler.cpp:19
boost::foreach_detail_::begin
auto_any< BOOST_DEDUCED_TYPENAME foreach_iterator< T, C >::type > begin(auto_any_t col, type2type< T, C > *, boost::mpl::true_ *)
Definition: foreach.hpp:660
boost::foreach_detail_::end
auto_any< BOOST_DEDUCED_TYPENAME foreach_iterator< T, C >::type > end(auto_any_t col, type2type< T, C > *, boost::mpl::true_ *)
Definition: foreach.hpp:700
IProtocolHandler.h
visionary::CoLaBProtocolHandler::createProtocolHeader
ByteBuffer createProtocolHeader(std::size_t payloadSize, std::size_t extraReserve=0u)
Definition: CoLaBProtocolHandler.cpp:112
visionary::IProtocolHandler
Definition: IProtocolHandler.h:13
visionary::CoLaBProtocolHandler
Definition: CoLaBProtocolHandler.h:17
visionary::CoLaBProtocolHandler::~CoLaBProtocolHandler
~CoLaBProtocolHandler() override
visionary::CoLaBProtocolHandler::calculateChecksum
std::uint8_t calculateChecksum(ByteBuffer::const_iterator begin, ByteBuffer::const_iterator end) const
Definition: CoLaBProtocolHandler.cpp:25
visionary::CoLaBProtocolHandler::m_rtransport
ITransport & m_rtransport
Definition: CoLaBProtocolHandler.h:41
visionary::CoLaBProtocolHandler::closeSession
void closeSession() override
Definition: CoLaBProtocolHandler.cpp:179
CoLaCommand.h
ITransport.h
visionary::ITransport
Definition: ITransport.h:19
cmd
string cmd
visionary::CoLaBProtocolHandler::readResponse
ByteBuffer readResponse()
read a command response packet
Definition: CoLaBProtocolHandler.cpp:106


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