88 lines
2.2 KiB
C++
88 lines
2.2 KiB
C++
#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);
|
|
|
|
|
|
std::cout << "\n\n";
|
|
|
|
double ra = 0.3242345, dec = -1.2342397;
|
|
|
|
std::cout << "RADEC (rads): " << ra << ", " << dec << "\n";
|
|
|
|
std::cout << "RADEC (sexg): " << mcc::utils::RADEC_rad2sxg(ra, dec, ";", 3, 2) << "\n";
|
|
|
|
std::cout << "RADEC (degs): " << mcc::utils::rad2deg_str(ra, dec, ";", 7, 7) << "\n";
|
|
|
|
return 0;
|
|
}
|