Enabled arcs render after adapting OpenCNCPilot code.
Started porting iosender to C++
This commit is contained in:
+304
@@ -0,0 +1,304 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include "grbl.h"
|
||||
|
||||
namespace iosender {
|
||||
|
||||
|
||||
struct Color {
|
||||
union {
|
||||
float r, g, b, a;
|
||||
};
|
||||
float values[4];
|
||||
};
|
||||
|
||||
class GrblConstants {
|
||||
public:
|
||||
|
||||
static const uint8_t CMD_EXIT = 0x03; // ctrl-C
|
||||
static const uint8_t CMD_RESET = 0x18; // ctrl-X
|
||||
static const uint8_t CMD_STOP = 0x19; // ctrl-Y
|
||||
static const uint8_t CMD_STATUS_REPORT = 0x80;
|
||||
static const uint8_t CMD_CYCLE_START = 0x81;
|
||||
static const uint8_t CMD_FEED_HOLD = 0x82;
|
||||
static const uint8_t CMD_GCODE_REPORT = 0x83;
|
||||
static const uint8_t CMD_SAFETY_DOOR = 0x84;
|
||||
static const uint8_t CMD_JOG_CANCEL = 0x85;
|
||||
static const uint8_t CMD_STATUS_REPORT_ALL = 0x87;
|
||||
static const uint8_t CMD_OPTIONAL_STOP_TOGGLE = 0x88;
|
||||
static const uint8_t CMD_SINGLE_BLOCK_TOGGLE = 0x89;
|
||||
static const uint8_t CMD_OVERRIDE_FAN0_TOGGLE = 0x8A;
|
||||
static const uint8_t CMD_FEED_OVR_RESET = 0x90;
|
||||
static const uint8_t CMD_FEED_OVR_COARSE_PLUS = 0x91;
|
||||
static const uint8_t CMD_FEED_OVR_COARSE_MINUS = 0x92;
|
||||
static const uint8_t CMD_FEED_OVR_FINE_PLUS = 0x93;
|
||||
static const uint8_t CMD_FEED_OVR_FINE_MINUS = 0x94;
|
||||
static const uint8_t CMD_RAPID_OVR_RESET = 0x95;
|
||||
static const uint8_t CMD_RAPID_OVR_MEDIUM = 0x96;
|
||||
static const uint8_t CMD_RAPID_OVR_LOW = 0x97;
|
||||
static const uint8_t CMD_SPINDLE_OVR_RESET = 0x99;
|
||||
static const uint8_t CMD_SPINDLE_OVR_COARSE_PLUS = 0x9A;
|
||||
static const uint8_t CMD_SPINDLE_OVR_COARSE_MINUS = 0x9B;
|
||||
static const uint8_t CMD_SPINDLE_OVR_FINE_PLUS = 0x9C;
|
||||
static const uint8_t CMD_SPINDLE_OVR_FINE_MINUS = 0x9D;
|
||||
static const uint8_t CMD_SPINDLE_OVR_STOP = 0x9E;
|
||||
static const uint8_t CMD_COOLANT_FLOOD_OVR_TOGGLE = 0xA0;
|
||||
static const uint8_t CMD_COOLANT_MIST_OVR_TOGGLE = 0xA1;
|
||||
static const uint8_t CMD_PID_REPORT = 0xA2;
|
||||
static const uint8_t CMD_TOOL_ACK = 0xA3;
|
||||
static const uint8_t CMD_PROBE_CONNECTED_TOGGLE = 0xA4;
|
||||
|
||||
static const std::string CMD_STATUS_REPORT_LEGACY;
|
||||
static const std::string CMD_CYCLE_START_LEGACY;
|
||||
static const std::string CMD_FEED_HOLD_LEGACY;
|
||||
static const std::string CMD_UNLOCK;
|
||||
static const std::string CMD_HOMING;
|
||||
static const std::string CMD_CHECK;
|
||||
static const std::string CMD_GETSETTINGS;
|
||||
static const std::string CMD_GETSETTINGS_ALL;
|
||||
static const std::string CMD_GETPARSERSTATE;
|
||||
static const std::string CMD_GETINFO;
|
||||
static const std::string CMD_GETINFO_EXTENDED;
|
||||
static const std::string CMD_GETNGCPARAMETERS;
|
||||
static const std::string CMD_GETSTARTUPLINES;
|
||||
static const std::string CMD_GETSETTINGSDETAILS;
|
||||
static const std::string CMD_GETSETTINGSGROUPS;
|
||||
static const std::string CMD_GETALARMCODES;
|
||||
static const std::string CMD_GETERRORCODES;
|
||||
static const std::string CMD_PROGRAM_DEMARCATION;
|
||||
static const std::string CMD_SDCARD_MOUNT;
|
||||
static const std::string CMD_SDCARD_DIR;
|
||||
static const std::string CMD_SDCARD_DIR_ALL;
|
||||
static const std::string CMD_SDCARD_REWIND;
|
||||
static const std::string CMD_SDCARD_RUN;
|
||||
static const std::string CMD_SDCARD_UNLINK;
|
||||
static const std::string CMD_SDCARD_DUMP;
|
||||
static const std::string FORMAT_METRIC;
|
||||
static const std::string FORMAT_IMPERIAL;
|
||||
static const std::string NO_TOOL;
|
||||
static const std::string THCSIGNALS; // Keep in sync with THCSignals enum below!!
|
||||
|
||||
static const int X_AXIS = 0;
|
||||
static const int Y_AXIS = 1;
|
||||
static const int Z_AXIS = 2;
|
||||
static const int A_AXIS = 3;
|
||||
static const int B_AXIS = 4;
|
||||
static const int C_AXIS = 5;
|
||||
};
|
||||
|
||||
enum class CameraMoveMode {
|
||||
XAxisFirst = 1,
|
||||
YAxisFirst = 2,
|
||||
BothAxes = 3
|
||||
};
|
||||
|
||||
|
||||
enum class GrblStates {
|
||||
Unknown = 0,
|
||||
Idle,
|
||||
Run,
|
||||
Tool,
|
||||
Hold,
|
||||
Home,
|
||||
Check,
|
||||
Jog,
|
||||
Alarm,
|
||||
Door,
|
||||
Sleep
|
||||
};
|
||||
|
||||
enum class GrblMode {
|
||||
Normal = 0,
|
||||
Laser,
|
||||
Lathe
|
||||
};
|
||||
|
||||
enum class GrblEncoderMode {
|
||||
Unknown = 0,
|
||||
FeedRate = 1,
|
||||
RapidRate = 2,
|
||||
SpindleRPM = 3
|
||||
};
|
||||
|
||||
enum class GrblSetting {
|
||||
PulseMicroseconds = 0,
|
||||
StepperIdleLockTime = 1,
|
||||
StepInvertMask = 2,
|
||||
DirInvertMask = 3,
|
||||
InvertStepperEnable = 4,
|
||||
LimitPinsInvertMask = 5,
|
||||
InvertProbePin = 6,
|
||||
StatusReportMask = 10,
|
||||
JunctionDeviation = 11,
|
||||
ArcTolerance = 12,
|
||||
ReportInches = 13,
|
||||
SoftLimitsEnable = 20,
|
||||
HardLimitsEnable = 21,
|
||||
HomingEnable = 22,
|
||||
HomingDirMask = 23,
|
||||
HomingFeedRate = 24,
|
||||
HomingSeekRate = 25,
|
||||
HomingDebounceDelay = 26,
|
||||
HomingPulloff = 27,
|
||||
G73Retract = 28,
|
||||
PulseDelayMicroseconds = 29,
|
||||
RpmMax = 30,
|
||||
RpmMin = 31,
|
||||
Mode = 32, // enum GrblMode
|
||||
PWMFreq = 33,
|
||||
PWMOffValue = 34,
|
||||
PWMMinValue = 35,
|
||||
PWMMaxValue = 36,
|
||||
TravelResolutionBase = 100,
|
||||
MaxFeedRateBase = 110,
|
||||
AccelerationBase = 120,
|
||||
MaxTravelBase = 130,
|
||||
MotorCurrentBase = 140,
|
||||
};
|
||||
|
||||
enum class grblHALSetting {
|
||||
PulseMicroseconds = 0,
|
||||
StepperIdleLockTime = 1,
|
||||
StepInvertMask = 2,
|
||||
DirInvertMask = 3,
|
||||
InvertStepperEnable = 4,
|
||||
LimitPinsInvertMask = 5,
|
||||
InvertProbePin = 6,
|
||||
StatusReportMask = 10,
|
||||
JunctionDeviation = 11,
|
||||
ArcTolerance = 12,
|
||||
ReportInches = 13,
|
||||
ControlInvertMask = 14, // Note: Used for detecting GrblHAL firmware
|
||||
CoolantInvertMask = 15,
|
||||
SpindleInvertMask = 16,
|
||||
ControlPullUpDisableMask = 17,
|
||||
LimitPullUpDisableMask = 18,
|
||||
ProbePullUpDisable = 19,
|
||||
SoftLimitsEnable = 20,
|
||||
HardLimitsEnable = 21,
|
||||
HomingEnable = 22,
|
||||
HomingDirMask = 23,
|
||||
HomingFeedRate = 24,
|
||||
HomingSeekRate = 25,
|
||||
HomingDebounceDelay = 26,
|
||||
HomingPulloff = 27,
|
||||
G73Retract = 28,
|
||||
PulseDelayMicroseconds = 29,
|
||||
RpmMax = 30,
|
||||
RpmMin = 31,
|
||||
Mode = 32, // enum GrblMode
|
||||
PWMFreq = 33,
|
||||
PWMOffValue = 34,
|
||||
PWMMinValue = 35,
|
||||
PWMMaxValue = 36,
|
||||
StepperDeenergizeMask = 37,
|
||||
SpindlePPR = 38,
|
||||
EnableLegacyRTCommands = 39,
|
||||
SoftLimitJogging = 40,
|
||||
HomingLocateCycles = 43,
|
||||
HomingCycle_1 = 44,
|
||||
HomingCycle_2 = 45,
|
||||
HomingCycle_3 = 46,
|
||||
HomingCycle_4 = 47,
|
||||
HomingCycle_5 = 48,
|
||||
HomingCycle_6 = 49,
|
||||
JogStepSpeed = 50,
|
||||
JogSlowSpeed = 51,
|
||||
JogFastSpeed = 52,
|
||||
JogStepDistance = 53,
|
||||
JogSlowDistance = 54,
|
||||
JogFastDistance = 55,
|
||||
// Per axis settings
|
||||
TravelResolutionBase = 100,
|
||||
MaxFeedRateBase = 110,
|
||||
AccelerationBase = 120,
|
||||
MaxTravelBase = 130,
|
||||
MotorCurrentBase = 140,
|
||||
MicroStepsBase = 150,
|
||||
StallGuardBase = 200,
|
||||
// End per axis settings
|
||||
ToolChangeMode = 341
|
||||
};
|
||||
|
||||
enum class StreamingState {
|
||||
NoFile = 0,
|
||||
Idle,
|
||||
Send,
|
||||
SendMDI,
|
||||
Home,
|
||||
Halted,
|
||||
FeedHold,
|
||||
ToolChange,
|
||||
Start,
|
||||
Stop,
|
||||
Paused,
|
||||
JobFinished,
|
||||
Reset,
|
||||
AwaitResetAck,
|
||||
Disabled,
|
||||
Error
|
||||
};
|
||||
|
||||
enum class HomedState {
|
||||
Unknown = 0,
|
||||
NotHomed,
|
||||
Homed
|
||||
};
|
||||
|
||||
// Keep in sync with GrblInfo.SignalLetters constant below
|
||||
enum class Signals : int {
|
||||
Off = 0,
|
||||
LimitX = 1 << 0,
|
||||
LimitY = 1 << 1,
|
||||
LimitZ = 1 << 2,
|
||||
LimitA = 1 << 3,
|
||||
LimitB = 1 << 4,
|
||||
LimitC = 1 << 5,
|
||||
LimitU = 1 << 6,
|
||||
LimitV = 1 << 7,
|
||||
LimitW = 1 << 8,
|
||||
EStop = 1 << 9,
|
||||
Probe = 1 << 10,
|
||||
Reset = 1 << 11,
|
||||
SafetyDoor = 1 << 12,
|
||||
Hold = 1 << 13,
|
||||
CycleStart = 1 << 14,
|
||||
BlockDelete = 1 << 15,
|
||||
OptionalStop = 1 << 16,
|
||||
ProbeDisconnected = 1 << 17,
|
||||
MotorWarning = 1 << 18,
|
||||
MotorFault = 1 << 19
|
||||
};
|
||||
|
||||
enum class THCSignals : int {
|
||||
Off = 0,
|
||||
ArcOk = 1 << 0,
|
||||
THCEnabled = 1 << 1,
|
||||
THCActive = 1 << 2,
|
||||
TorchOn = 1 << 3,
|
||||
OhmicProbe = 1 << 4,
|
||||
VelocityLock = 1 << 5,
|
||||
VoidLock = 1 << 6,
|
||||
Down = 1 << 7,
|
||||
Up = 1 << 8
|
||||
};
|
||||
|
||||
struct GrblState {
|
||||
GrblStates State;
|
||||
int Substate;
|
||||
int LastAlarm;
|
||||
int Error;
|
||||
Color color;
|
||||
bool MPG;
|
||||
};
|
||||
|
||||
|
||||
class Grbl {
|
||||
public:
|
||||
static void Reset();
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user