add tests for control protocol and angle representation parsing
This commit is contained in:
76
cxx/tests/cntr_proto_test.cpp
Normal file
76
cxx/tests/cntr_proto_test.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
#include <iostream>
|
||||
#include "../control_proto.h"
|
||||
#include "../utils.h"
|
||||
|
||||
using namespace BM700;
|
||||
|
||||
void print_result(const std::optional<ControlProtoParser::parse_result_t>& res)
|
||||
{
|
||||
if (res.has_value()) {
|
||||
std::cout << "CMD: " << res.value().cmd << "\n";
|
||||
if (res->args.size()) {
|
||||
std::cout << "ARGS: ";
|
||||
for (auto const& el : res->args) {
|
||||
std::cout << "'" << el << "' ";
|
||||
}
|
||||
std::cout << "\n";
|
||||
} else {
|
||||
std::cout << "NO ARGS\n";
|
||||
}
|
||||
} else {
|
||||
std::cout << "Invalid command!\n";
|
||||
}
|
||||
}
|
||||
|
||||
void print_ang_result(std::string_view ang_str, bool hh = false)
|
||||
{
|
||||
std::cout << "ANG STRING: '" << ang_str << "'\n";
|
||||
|
||||
auto ang_res = mcc::utils::parsAngleString(ang_str, hh);
|
||||
if (ang_res.has_value()) {
|
||||
std::cout << "ANG: " << ang_res.value() << "\n";
|
||||
} else {
|
||||
std::cout << "INVALID ANGLE STRING!\n";
|
||||
}
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
ControlProtoParser pr;
|
||||
|
||||
std::string cmd{CONTROL_PROTO_STR_TAG_MINALT.begin(), CONTROL_PROTO_STR_TAG_MINALT.end()};
|
||||
cmd += "=10.324";
|
||||
|
||||
std::cout << "COMMAND STRING: " << cmd << "\n";
|
||||
auto res = pr.parse(cmd);
|
||||
|
||||
print_result(res);
|
||||
|
||||
cmd = std::string(CONTROL_PROTO_STR_STOP.begin(), CONTROL_PROTO_STR_STOP.end());
|
||||
std::cout << "\nCOMMAND STRING: " << cmd << "\n";
|
||||
res = pr.parse(cmd);
|
||||
|
||||
print_result(res);
|
||||
|
||||
cmd = std::string(CONTROL_PROTO_STR_UTC_DATE.begin(), CONTROL_PROTO_STR_UTC_DATE.end());
|
||||
cmd += "=2025-06-10,01:32:45.213";
|
||||
std::cout << "\nCOMMAND STRING: " << cmd << "\n";
|
||||
res = pr.parse(cmd);
|
||||
|
||||
print_result(res);
|
||||
|
||||
std::cout << "\n\n******* TEST ANGLE STRING PARSING *******\n";
|
||||
cmd = " 10:00:00 ";
|
||||
print_ang_result(cmd);
|
||||
|
||||
cmd = " -10:30:36 ";
|
||||
print_ang_result(cmd);
|
||||
|
||||
cmd = "231.3467 ";
|
||||
print_ang_result(cmd);
|
||||
|
||||
cmd = " 12:30:00 ";
|
||||
print_ang_result(cmd, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user