Enabled arcs render after adapting OpenCNCPilot code.

Started porting iosender to C++
This commit is contained in:
2023-05-16 09:18:06 +03:00
parent c05a6a1ad2
commit 42aefe8ed8
23 changed files with 2200 additions and 18 deletions
+45 -1
View File
@@ -2,6 +2,8 @@
#include "grbl.h"
#include "grbl_machine.h"
#include "gcode_parser.h"
#include "glm/gtx/string_cast.hpp"
TEST(grbl_program, default_state) {
grbl::program pgm;
@@ -53,4 +55,46 @@ TEST(grbl_status_report, parse) {
EXPECT_EQ(false, r.signals.bit.x_limit);
EXPECT_EQ(false, r.signals.bit.y_limit);
EXPECT_EQ(true, r.signals.bit.z_limit);
}
}
TEST(grbl_parser, parse) {
std::string content = R"(G17 G21 G90 G94 G54
G0 Z0.25
X-0.5 Y0.
Z0.1
G01 Z0. F5.
G02 X0. Y0.5 I0.5 J0. F2.5
X0.5 Y0. I0. J-0.5
X0. Y-0.5 I-0.5 J0.
X-0.5 Y0. I0. J0.5
G01 Z0.1 F5.
G00 X0. Y0. Z0.25
)";
std::stringstream ss;
ss << content;
grbl::grbl_parser parser;
try {
parser.parse(ss);
} catch (std::exception &e) {
std::cerr << e.what();
}
for (auto &c: parser.commands) {
auto line = dynamic_cast<grbl::line_motion_cmd *>(c.get());
if (line != nullptr) {
std::cout << "Line from " << glm::to_string(line->start) << " to " << glm::to_string(line->end)
<< std::endl;
continue;
}
auto arc = dynamic_cast<grbl::arc_motion_cmd *>(c.get());
if (arc != nullptr) {
std::cout << "Arc from " << glm::to_string(arc->start) << " to " << glm::to_string(arc->end) << std::endl;
continue;
}
}
// EXPECT_EQ(true, false);
}