RokubiminiSerialCommunication.hpp
Go to the documentation of this file.
1 
2 #pragma once
3 #include <regex>
8 
9 namespace rokubimini
10 {
11 namespace serial
12 {
14 {
15 public:
17 
18  virtual ~RokubiminiSerialResponseRegex() = default;
19 
20  virtual bool matchInString(const std::string& str) = 0;
21 };
22 
24 {
25 public:
26  RokubiminiSerialCommand() = default;
27  virtual ~RokubiminiSerialCommand() = default;
28  virtual bool formatCommand(std::string& formattedString) = 0;
29 };
30 
32 {
33 public:
36  const uint8_t& dataFormat, const uint8_t& baudRate);
37 
38  bool formatCommand(std::string& formattedString) override;
39 
40 private:
41  const std::string formatString_ = "c,%u,%u,%u,%u";
43  uint8_t dataFormat_;
44  uint8_t baudRate_;
45 };
46 
48 {
49 public:
52 
53  bool formatCommand(std::string& formattedString) override;
54 
55 private:
56  const std::string formatString_ = "f,%u,%u,%u,%u";
58 };
59 
61 {
62 public:
64  RokubiminiSerialCommandOffset(const Eigen::Matrix<double, 6, 1>& forceTorqueOffset);
65 
66  bool formatCommand(std::string& formattedString) override;
67 
68 private:
69  const std::string formatString_ = "b,%6.3f,%6.3f,%6.3f,%6.3f,%6.3f,%6.3f";
70  const Eigen::Matrix<double, 6, 1> forceTorqueOffset_;
71 };
72 
74 {
75 public:
77  RokubiminiSerialCommandSensorCalibrationRow(const double& sensorCalibration1, const double& sensorCalibration2,
78  const double& sensorCalibration3, const double& sensorCalibration4,
79  const double& sensorCalibration5, const double& sensorCalibration6,
80  const uint32_t& row);
81 
82  bool formatCommand(std::string& formattedString) override;
83 
84 private:
85  const std::string formatString_ = "m%u,%9.6f,%9.6f,%9.6f,%9.6f,%9.6f,%9.6f";
92  uint32_t row_;
93 };
94 
96 {
97 public:
99 
100  bool formatCommand(std::string& formattedString) override;
101 
102 private:
103  const std::string formatString_ = "#";
104 };
105 
107 {
108 public:
110  ;
111 
112  bool formatCommand(std::string& formattedString) override;
113 
114 private:
115  const std::string formatString_ = "I";
116 };
117 
119 {
120 public:
121  RokubiminiSerialCommandConfig() = default;
122  ;
123 
124  bool formatCommand(std::string& formattedString) override;
125 
126 private:
127  const std::string formatString_ = "C";
128 };
129 
131 {
132 public:
133  RokubiminiSerialCommandRun() = default;
134  ;
135 
136  bool formatCommand(std::string& formattedString) override;
137 
138 private:
139  const std::string formatString_ = "R";
140 };
141 
143 {
144 public:
145  RokubiminiSerialCommandSave() = default;
146  ;
147 
148  bool formatCommand(std::string& formattedString) override;
149 
150 private:
151  const std::string formatString_ = "s";
152 };
153 
155 {
156 public:
157  RokubiminiSerialCommandLoad() = default;
158  ;
159 
160  bool formatCommand(std::string& formattedString) override;
161 
162 private:
163  const std::string formatString_ = "l";
164 };
165 
167 {
168 public:
169  RokubiminiSerialCommandPrint() = default;
170  ;
171 
172  bool formatCommand(std::string& formattedString) override;
173 
174 private:
175  const std::string formatString_ = "w";
176 };
177 
179 {
180 public:
181  bool matchInString(const std::string& str) override;
182 
183  inline const uint8_t& getTempComp()
184  {
185  return tempComp_;
186  }
187  inline const uint8_t& getDataFormat()
188  {
189  return dataFormat_;
190  }
191  inline const uint8_t& getBaudRate()
192  {
193  return baudRate_;
194  }
195  inline const uint8_t& getCalibration()
196  {
197  return calibration_;
198  }
199  inline void setBaudRate(uint8_t& baudRate)
200  {
201  baudRate_ = baudRate;
202  }
203 
204 private:
205  const std::regex stringRegex_ = std::regex("\\bc(,\\d){4}\\b");
206  const std::string format_ = "c,%c,%c,%c,%c";
207  uint8_t tempComp_;
208  uint8_t dataFormat_;
209  uint8_t baudRate_;
210  uint8_t calibration_;
211 };
212 
214 {
215 public:
216  bool matchInString(const std::string& str) override;
217  inline const std::string& getProductName()
218  {
219  return productName_;
220  }
221 
222 private:
223  const std::regex stringRegex_ = std::regex("name:\\s(.*)\\r");
224  const std::string format_ = "name: %s\r";
225  std::string productName_;
226 };
227 
229 {
230 public:
231  bool matchInString(const std::string& str) override;
232 
233  inline const uint8_t& getFirstNumber()
234  {
235  return firstNumber_;
236  }
237  inline const char& getCommand()
238  {
239  return command_;
240  }
241  inline const uint8_t& getReturnCode()
242  {
243  return returnCode_;
244  }
245 
246 private:
247  const std::regex stringRegex_ = std::regex("r,\\d,\\w,\\d");
248  const std::string format_ = "r,%c,%c,%c";
249  uint8_t firstNumber_;
250  char command_;
251  std::uint8_t returnCode_;
252 };
253 
255 {
256 public:
257  bool matchInString(const std::string& str) override;
258  inline const uint32_t& getSerialNumber()
259  {
260  return serialNumber_;
261  }
262 
263 private:
264  const std::regex stringRegex_ = std::regex("S/N:\\s(.*)\\r");
265  const std::string format_ = "S/N: %u\r";
266  uint32_t serialNumber_;
267 };
268 
270 {
271 public:
272  bool matchInString(const std::string& str) override;
273  inline const std::string& getFirmwareVersion()
274  {
275  return firmwareVersion_;
276  }
277 
278 private:
279  const std::regex stringRegex_ = std::regex("FW version:\\s(.*)\\r");
280  const std::string format_ = "FW version: %s\r";
281  std::string firmwareVersion_;
282 };
283 
285 {
286 public:
287  bool matchInString(const std::string& str) override;
288 
289 private:
290  const std::regex stringRegex_ = std::regex("App Init");
291 };
292 } // namespace serial
293 } // namespace rokubimini
rokubimini::serial::RokubiminiSerialCommandPrint::RokubiminiSerialCommandPrint
RokubiminiSerialCommandPrint()=default
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::getCalibration
const uint8_t & getCalibration()
Definition: RokubiminiSerialCommunication.hpp:195
rokubimini::serial::RokubiminiSerialResponseRegexBoot::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:290
rokubimini::serial::RokubiminiSerialCommand::~RokubiminiSerialCommand
virtual ~RokubiminiSerialCommand()=default
rokubimini::serial::RokubiminiSerialResponseRegexProductName::getProductName
const std::string & getProductName()
Definition: RokubiminiSerialCommunication.hpp:217
rokubimini::serial::RokubiminiSerialCommandCommSetup::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:15
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration6_
double sensorCalibration6_
Definition: RokubiminiSerialCommunication.hpp:91
rokubimini::serial::RokubiminiSerialCommandConfig
Definition: RokubiminiSerialCommunication.hpp:118
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:279
rokubimini::serial::RokubiminiSerialResponseRegexBoot::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:303
rokubimini::serial::RokubiminiSerialCommandSoftReset::RokubiminiSerialCommandSoftReset
RokubiminiSerialCommandSoftReset()=default
rokubimini::serial::RokubiminiSerialCommandHardReset::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:103
rokubimini::serial::RokubiminiSerialCommandFilter::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:56
rokubimini::serial::RokubiminiSerialCommandFilter
Definition: RokubiminiSerialCommunication.hpp:47
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration3_
double sensorCalibration3_
Definition: RokubiminiSerialCommunication.hpp:88
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion
Definition: RokubiminiSerialCommunication.hpp:269
rokubimini::serial::RokubiminiSerialResponseRegexAck::returnCode_
std::uint8_t returnCode_
Definition: RokubiminiSerialCommunication.hpp:251
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::getBaudRate
const uint8_t & getBaudRate()
Definition: RokubiminiSerialCommunication.hpp:191
SensorConfiguration.hpp
rokubimini::serial::RokubiminiSerialCommandCommSetup::sensorConfiguration_
configuration::SensorConfiguration sensorConfiguration_
Definition: RokubiminiSerialCommunication.hpp:42
rokubimini::serial::RokubiminiSerialCommandSoftReset::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:111
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber::getSerialNumber
const uint32_t & getSerialNumber()
Definition: RokubiminiSerialCommunication.hpp:258
rokubimini::serial::RokubiminiSerialCommandSave
Definition: RokubiminiSerialCommunication.hpp:142
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration1_
double sensorCalibration1_
Definition: RokubiminiSerialCommunication.hpp:86
rokubimini::serial::RokubiminiSerialCommandLoad::RokubiminiSerialCommandLoad
RokubiminiSerialCommandLoad()=default
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:205
rokubimini::serial::RokubiminiSerialCommand::RokubiminiSerialCommand
RokubiminiSerialCommand()=default
rokubimini::serial::RokubiminiSerialResponseRegexProductName
Definition: RokubiminiSerialCommunication.hpp:213
Configuration.hpp
rokubimini::serial::RokubiminiSerialCommandSoftReset::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:115
rokubimini::serial::RokubiminiSerialResponseRegexAck::getReturnCode
const uint8_t & getReturnCode()
Definition: RokubiminiSerialCommunication.hpp:241
rokubimini::serial::RokubiminiSerialCommandRun::RokubiminiSerialCommandRun
RokubiminiSerialCommandRun()=default
rokubimini::serial::RokubiminiSerialCommand
Definition: RokubiminiSerialCommunication.hpp:23
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:274
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::row_
uint32_t row_
Definition: RokubiminiSerialCommunication.hpp:92
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration2_
double sensorCalibration2_
Definition: RokubiminiSerialCommunication.hpp:87
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::baudRate_
uint8_t baudRate_
Definition: RokubiminiSerialCommunication.hpp:209
rokubimini::serial::RokubiminiSerialCommandSoftReset
Definition: RokubiminiSerialCommunication.hpp:106
rokubimini::serial::RokubiminiSerialCommandLoad::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:163
rokubimini::serial::RokubiminiSerialCommandHardReset::RokubiminiSerialCommandHardReset
RokubiminiSerialCommandHardReset()=default
rokubimini::serial::RokubiminiSerialCommandSave::RokubiminiSerialCommandSave
RokubiminiSerialCommandSave()=default
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::RokubiminiSerialCommandSensorCalibrationRow
RokubiminiSerialCommandSensorCalibrationRow()=delete
rokubimini::serial::RokubiminiSerialResponseRegex::~RokubiminiSerialResponseRegex
virtual ~RokubiminiSerialResponseRegex()=default
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::dataFormat_
uint8_t dataFormat_
Definition: RokubiminiSerialCommunication.hpp:208
rokubimini::serial::RokubiminiSerialCommandOffset::RokubiminiSerialCommandOffset
RokubiminiSerialCommandOffset()=delete
rokubimini::serial::RokubiminiSerialCommandCommSetup::RokubiminiSerialCommandCommSetup
RokubiminiSerialCommandCommSetup()=delete
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::tempComp_
uint8_t tempComp_
Definition: RokubiminiSerialCommunication.hpp:207
rokubimini::serial::RokubiminiSerialCommandOffset::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:57
rokubimini::serial::RokubiminiSerialCommandHardReset
Definition: RokubiminiSerialCommunication.hpp:95
rokubimini::serial::RokubiminiSerialResponseRegexAck::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:247
rokubimini::serial::RokubiminiSerialCommandRun::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:125
rokubimini::serial::RokubiminiSerialCommandCommSetup::baudRate_
uint8_t baudRate_
Definition: RokubiminiSerialCommunication.hpp:44
rokubimini::serial::RokubiminiSerialCommandFilter::RokubiminiSerialCommandFilter
RokubiminiSerialCommandFilter()=delete
rokubimini::configuration::ForceTorqueFilter
rokubimini::serial::RokubiminiSerialCommandRun
Definition: RokubiminiSerialCommunication.hpp:130
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion::format_
const std::string format_
Definition: RokubiminiSerialCommunication.hpp:280
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::setBaudRate
void setBaudRate(uint8_t &baudRate)
Definition: RokubiminiSerialCommunication.hpp:199
rokubimini::serial::RokubiminiSerialCommandFilter::filter_
configuration::ForceTorqueFilter filter_
Definition: RokubiminiSerialCommunication.hpp:57
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration5_
double sensorCalibration5_
Definition: RokubiminiSerialCommunication.hpp:90
rokubimini::serial::RokubiminiSerialResponseRegexAck::getCommand
const char & getCommand()
Definition: RokubiminiSerialCommunication.hpp:237
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion::getFirmwareVersion
const std::string & getFirmwareVersion()
Definition: RokubiminiSerialCommunication.hpp:273
rokubimini::serial::RokubiminiSerialResponseRegexProductName::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:223
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup
Definition: RokubiminiSerialCommunication.hpp:178
rokubimini::serial::RokubiminiSerialResponseRegexAck::format_
const std::string format_
Definition: RokubiminiSerialCommunication.hpp:248
rokubimini::serial::RokubiminiSerialResponseRegexProductName::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:218
rokubimini::serial::RokubiminiSerialCommandRun::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:139
rokubimini
System dependencies.
rokubimini::serial::RokubiminiSerialCommandPrint::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:146
rokubimini::serial::RokubiminiSerialCommandOffset
Definition: RokubiminiSerialCommunication.hpp:60
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber::serialNumber_
uint32_t serialNumber_
Definition: RokubiminiSerialCommunication.hpp:266
SensorCalibration.hpp
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::format_
const std::string format_
Definition: RokubiminiSerialCommunication.hpp:206
rokubimini::serial::RokubiminiSerialResponseRegexAck::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:187
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::getDataFormat
const uint8_t & getDataFormat()
Definition: RokubiminiSerialCommunication.hpp:187
ForceTorqueFilter.hpp
rokubimini::serial::RokubiminiSerialResponseRegex::matchInString
virtual bool matchInString(const std::string &str)=0
rokubimini::serial::RokubiminiSerialResponseRegexAck::getFirstNumber
const uint8_t & getFirstNumber()
Definition: RokubiminiSerialCommunication.hpp:233
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber::format_
const std::string format_
Definition: RokubiminiSerialCommunication.hpp:265
rokubimini::serial::RokubiminiSerialCommandCommSetup
Definition: RokubiminiSerialCommunication.hpp:31
rokubimini::serial::RokubiminiSerialCommandPrint
Definition: RokubiminiSerialCommunication.hpp:166
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow
Definition: RokubiminiSerialCommunication.hpp:73
rokubimini::serial::RokubiminiSerialCommandConfig::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:127
rokubimini::serial::RokubiminiSerialResponseRegexAck::firstNumber_
uint8_t firstNumber_
Definition: RokubiminiSerialCommunication.hpp:249
rokubimini::serial::RokubiminiSerialCommandFilter::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:36
rokubimini::serial::RokubiminiSerialCommandConfig::RokubiminiSerialCommandConfig
RokubiminiSerialCommandConfig()=default
rokubimini::serial::RokubiminiSerialResponseRegexAck::command_
char command_
Definition: RokubiminiSerialCommunication.hpp:250
rokubimini::serial::RokubiminiSerialCommandHardReset::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:104
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber::stringRegex_
const std::regex stringRegex_
Definition: RokubiminiSerialCommunication.hpp:264
rokubimini::serial::RokubiminiSerialCommandSave::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:151
rokubimini::serial::RokubiminiSerialResponseRegexProductName::productName_
std::string productName_
Definition: RokubiminiSerialCommunication.hpp:225
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:85
rokubimini::serial::RokubiminiSerialResponseRegexProductName::format_
const std::string format_
Definition: RokubiminiSerialCommunication.hpp:224
rokubimini::serial::RokubiminiSerialCommand::formatCommand
virtual bool formatCommand(std::string &formattedString)=0
rokubimini::configuration::SensorConfiguration
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::calibration_
uint8_t calibration_
Definition: RokubiminiSerialCommunication.hpp:210
rokubimini::serial::RokubiminiSerialResponseRegex::RokubiminiSerialResponseRegex
RokubiminiSerialResponseRegex()=default
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:153
rokubimini::serial::RokubiminiSerialCommandLoad::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:139
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:88
rokubimini::serial::RokubiminiSerialCommandConfig::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:118
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber::matchInString
bool matchInString(const std::string &str) override
Definition: RokubiminiSerialCommunication.cpp:247
rokubimini::serial::RokubiminiSerialCommandCommSetup::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:41
rokubimini::serial::RokubiminiSerialResponseRegexFirmwareVersion::firmwareVersion_
std::string firmwareVersion_
Definition: RokubiminiSerialCommunication.hpp:281
rokubimini::serial::RokubiminiSerialCommandLoad
Definition: RokubiminiSerialCommunication.hpp:154
rokubimini::serial::RokubiminiSerialResponseRegexAck
Definition: RokubiminiSerialCommunication.hpp:228
rokubimini::serial::RokubiminiSerialCommandOffset::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:69
rokubimini::serial::RokubiminiSerialResponseRegexBoot
Definition: RokubiminiSerialCommunication.hpp:284
rokubimini::serial::RokubiminiSerialResponseRegexCommSetup::getTempComp
const uint8_t & getTempComp()
Definition: RokubiminiSerialCommunication.hpp:183
rokubimini::serial::RokubiminiSerialCommandOffset::forceTorqueOffset_
const Eigen::Matrix< double, 6, 1 > forceTorqueOffset_
Definition: RokubiminiSerialCommunication.hpp:70
rokubimini::serial::RokubiminiSerialResponseRegexSerialNumber
Definition: RokubiminiSerialCommunication.hpp:254
rokubimini::serial::RokubiminiSerialCommandPrint::formatString_
const std::string formatString_
Definition: RokubiminiSerialCommunication.hpp:175
rokubimini::serial::RokubiminiSerialCommandCommSetup::dataFormat_
uint8_t dataFormat_
Definition: RokubiminiSerialCommunication.hpp:43
rokubimini::serial::RokubiminiSerialResponseRegex
Definition: RokubiminiSerialCommunication.hpp:13
rokubimini::serial::RokubiminiSerialCommandSensorCalibrationRow::sensorCalibration4_
double sensorCalibration4_
Definition: RokubiminiSerialCommunication.hpp:89
rokubimini::serial::RokubiminiSerialCommandSave::formatCommand
bool formatCommand(std::string &formattedString) override
Definition: RokubiminiSerialCommunication.cpp:132


rokubimini_serial
Author(s):
autogenerated on Sat Apr 15 2023 02:53:58