Initial wasm simulator checkpoint
This commit is contained in:
44
core/src/gcode_backend.cpp
Normal file
44
core/src/gcode_backend.cpp
Normal file
@@ -0,0 +1,44 @@
|
||||
#include "gcode_backend.h"
|
||||
|
||||
#ifdef CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
|
||||
#include "linuxcnc_rs274_backend.h"
|
||||
#endif
|
||||
#include "smoke_gcode_parser.h"
|
||||
|
||||
const char *gcode_backend_name(GcodeBackendKind backend) {
|
||||
switch (backend) {
|
||||
case GcodeBackendKind::Smoke:
|
||||
return "smoke";
|
||||
case GcodeBackendKind::LinuxCncRs274:
|
||||
return "linuxcnc-rs274";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
int parse_gcode_with_backend(GcodeBackendKind backend,
|
||||
CanonEventSink &sink,
|
||||
const char *program,
|
||||
size_t program_len,
|
||||
std::string *error) {
|
||||
switch (backend) {
|
||||
case GcodeBackendKind::Smoke: {
|
||||
SmokeGcodeParser parser(sink);
|
||||
return parser.parse(program, program_len, error);
|
||||
}
|
||||
case GcodeBackendKind::LinuxCncRs274:
|
||||
#ifdef CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND
|
||||
return parse_linuxcnc_rs274_backend(sink, program, program_len, error);
|
||||
#else
|
||||
if (error) {
|
||||
*error = "linuxcnc-rs274 backend is not compiled into this build";
|
||||
}
|
||||
return -1;
|
||||
#endif
|
||||
default:
|
||||
if (error) {
|
||||
*error = "unknown G-code backend";
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user