CoLaParameterWriter.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 
8 #include <cstdint>
9 #include <vector>
10 
11 #include "CoLaCommand.h"
12 #include "CoLaCommandType.h"
13 
14 namespace visionary {
15 
20 {
21 private:
23  const char* m_name;
24  std::vector<uint8_t> m_buffer;
25 
26 public:
32  CoLaParameterWriter(CoLaCommandType::Enum type, const char* name);
33 
35 
41  CoLaParameterWriter& parameterSInt(const int8_t sInt);
42 
48  CoLaParameterWriter& parameterUSInt(const uint8_t uSInt);
49 
55  CoLaParameterWriter& parameterInt(const int16_t integer);
56 
62  CoLaParameterWriter& parameterUInt(const uint16_t uInt);
63 
69  CoLaParameterWriter& parameterDInt(const int32_t dInt);
70 
76  CoLaParameterWriter& parameterUDInt(const uint32_t uDInt);
77 
83  CoLaParameterWriter& parameterReal(const float real);
84 
90  CoLaParameterWriter& parameterLReal(const double lReal);
91 
97  CoLaParameterWriter& parameterBool(const bool boolean);
98 
104  CoLaParameterWriter& parameterPasswordMD5(const std::string& str);
105 
111  CoLaParameterWriter& parameterFlexString(const std::string& str);
112 
118  CoLaParameterWriter& operator<<(const char* str);
119 
125  CoLaParameterWriter& operator<<(const int8_t sInt);
126 
132  CoLaParameterWriter& operator<<(const uint8_t uSInt);
133 
139  CoLaParameterWriter& operator<<(const int16_t integer);
140 
146  CoLaParameterWriter& operator<<(const uint16_t uInt);
147 
153  CoLaParameterWriter& operator<<(const int32_t dInt);
154 
160  CoLaParameterWriter& operator<<(const uint32_t uDInt);
161 
167  CoLaParameterWriter& operator<<(const float real);
168 
174  CoLaParameterWriter& operator<<(const double lReal);
175 
181  CoLaParameterWriter& operator<<(const bool boolean);
182 
183  const CoLaCommand build();
184 
185 private:
186  void writeHeader(CoLaCommandType::Enum type, const char* name);
187 
193  // static uint8_t calculateChecksum(const std::vector<uint8_t>& buffer);
194 };
195 
196 } // namespace visionary
visionary::CoLaParameterWriter::operator<<
CoLaParameterWriter & operator<<(const char *str)
Add a string parameter, must be null-terminated.
Definition: CoLaParameterWriter.cpp:130
visionary::CoLaParameterWriter::parameterUSInt
CoLaParameterWriter & parameterUSInt(const uint8_t uSInt)
Add a unsigned short (8-bit, range [0, 255]).
Definition: CoLaParameterWriter.cpp:30
visionary::CoLaParameterWriter::parameterInt
CoLaParameterWriter & parameterInt(const int16_t integer)
Add a signed int (16-bit).
Definition: CoLaParameterWriter.cpp:36
visionary
Definition: MD5.cpp:44
visionary::CoLaParameterWriter
Builder for constructing CoLaCommands.
Definition: CoLaParameterWriter.h:19
visionary::CoLaCommand
Definition: CoLaCommand.h:17
visionary::CoLaParameterWriter::parameterBool
CoLaParameterWriter & parameterBool(const bool boolean)
Add a boolean as a byte, with 0 representing false, and 1 representing true.
Definition: CoLaParameterWriter.cpp:90
visionary::CoLaParameterWriter::CoLaParameterWriter
CoLaParameterWriter(CoLaCommandType::Enum type, const char *name)
Construct a new CoLaParameterWriter.
Definition: CoLaParameterWriter.cpp:17
visionary::CoLaParameterWriter::parameterFlexString
CoLaParameterWriter & parameterFlexString(const std::string &str)
Add a string as a flex string.
Definition: CoLaParameterWriter.cpp:115
visionary::CoLaParameterWriter::m_buffer
std::vector< uint8_t > m_buffer
Definition: CoLaParameterWriter.h:24
visionary::CoLaParameterWriter::parameterUDInt
CoLaParameterWriter & parameterUDInt(const uint32_t uDInt)
Add an unsigned double int (32-bit, range [0, 4294967295]).
Definition: CoLaParameterWriter.cpp:63
visionary::CoLaParameterWriter::m_type
CoLaCommandType::Enum m_type
Definition: CoLaParameterWriter.h:22
CoLaCommandType.h
visionary::CoLaParameterWriter::parameterSInt
CoLaParameterWriter & parameterSInt(const int8_t sInt)
Add a signed short (8-bit, range [-128, 127]).
Definition: CoLaParameterWriter.cpp:24
visionary::CoLaCommandType::Enum
Enum
Definition: CoLaCommandType.h:12
visionary::CoLaParameterWriter::parameterUInt
CoLaParameterWriter & parameterUInt(const uint16_t uInt)
Add a unsigned int (16-bit, range [0, 65535]).
Definition: CoLaParameterWriter.cpp:45
visionary::CoLaParameterWriter::~CoLaParameterWriter
~CoLaParameterWriter()
visionary::CoLaParameterWriter::parameterLReal
CoLaParameterWriter & parameterLReal(const double lReal)
Add a IEEE-754 double precision (64-bit).
Definition: CoLaParameterWriter.cpp:81
visionary::CoLaParameterWriter::m_name
const char * m_name
Definition: CoLaParameterWriter.h:23
visionary::CoLaParameterWriter::parameterReal
CoLaParameterWriter & parameterReal(const float real)
Add a IEEE-754 single precision (32-bit).
Definition: CoLaParameterWriter.cpp:72
CoLaCommand.h
visionary::CoLaParameterWriter::parameterPasswordMD5
CoLaParameterWriter & parameterPasswordMD5(const std::string &str)
Add the given password as a UDInt, using MD5 hashing.
Definition: CoLaParameterWriter.cpp:96
visionary::CoLaParameterWriter::writeHeader
void writeHeader(CoLaCommandType::Enum type, const char *name)
Definition: CoLaParameterWriter.cpp:189
visionary::CoLaParameterWriter::parameterDInt
CoLaParameterWriter & parameterDInt(const int32_t dInt)
Add an signed double int (32-bit).
Definition: CoLaParameterWriter.cpp:54
visionary::CoLaParameterWriter::build
const CoLaCommand build()
Definition: CoLaParameterWriter.cpp:181


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