}
},
- ._state = STATE_IDLE,
+ ._state = STATE_READY,
._cycle = CYCLE_MACHINING,
// State
PGM_P mach_get_state_pgmstr(machState_t state) {
switch (state) {
- case STATE_IDLE: return PSTR("idle");
+ case STATE_READY: return PSTR("ready");
case STATE_ESTOPPED: return PSTR("estopped");
case STATE_RUNNING: return PSTR("running");
case STATE_STOPPING: return PSTR("stopping");
void mach_set_cycle(machCycle_t cycle) {
if (mach._cycle == cycle) return; // No change
- if (mach._state != STATE_IDLE) {
+ if (mach._state != STATE_READY) {
STATUS_ERROR(STAT_INTERNAL_ERROR, "Cannot transition to %S while %S",
mach_get_cycle_pgmstr(cycle),
mach_get_state_pgmstr(mach._state));
// Only flush queue when we are stopped or holding
if (mach.queue_flush_requested &&
- (mach_get_state() == STATE_IDLE || mach_get_state() == STATE_HOLDING) &&
+ (mach_get_state() == STATE_READY || mach_get_state() == STATE_HOLDING) &&
!mach_get_runtime_busy()) {
mach.queue_flush_requested = false;
mach_queue_flush();
// Check if any moves are buffered
if (mp_get_run_buffer()) mach_set_state(STATE_RUNNING);
- else mach_set_state(STATE_IDLE);
+ else mach_set_state(STATE_READY);
}
}
static void _exec_program_finalize(float *value, float *flag) {
- mach_set_state(STATE_IDLE);
+ mach_set_state(STATE_READY);
mach.hold_state = FEEDHOLD_OFF; // if in feedhold, end it
mach.cycle_start_requested = false; // cancel any pending cycle start request
mp_zero_segment_velocity(); // for reporting purposes
/// Do a cycle start right now
void mach_cycle_start() {
- if (mach_get_state() == STATE_IDLE) mach_set_state(STATE_RUNNING);
+ if (mach_get_state() == STATE_READY) mach_set_state(STATE_RUNNING);
}
typedef enum {
- STATE_IDLE,
+ STATE_READY,
STATE_ESTOPPED,
STATE_RUNNING,
STATE_STOPPING,
machFeedRateMode_t mach_get_feed_rate_mode();
uint8_t mach_get_tool();
machSpindleMode_t mach_get_spindle_mode();
+inline float mach_get_spindle_speed() {return mach.gm.spindle_speed;}
bool mach_get_runtime_busy();
float mach_get_feed_rate();
uint8_t command_calibrate(int argc, char *argv[]) {
- if (mach_get_cycle() != CYCLE_MACHINING || mach_get_state() != STATE_IDLE)
+ if (mach_get_cycle() != CYCLE_MACHINING || mach_get_state() != STATE_READY)
return 0;
mpBuf_t *bf = mp_get_write_buffer();
if (!bf) return STAT_NOOP; // nothing running
if (!bf->bf_func) return CM_ALARM(STAT_INTERNAL_ERROR);
- if (mach_get_state() == STATE_IDLE) mach_set_state(STATE_RUNNING);
+ if (mach_get_state() == STATE_READY) mach_set_state(STATE_RUNNING);
return bf->bf_func(bf); // move callback
}
uint8_t command_jog(int argc, char *argv[]) {
if (!mp_jog_busy() &&
- (mach_get_state() != STATE_IDLE || mach_get_cycle() != CYCLE_MACHINING))
+ (mach_get_state() != STATE_READY || mach_get_cycle() != CYCLE_MACHINING))
return STAT_NOOP;
float velocity[AXES];
void mp_flush_planner() {
mach_abort_arc();
mp_init_buffers();
- mach_set_state(STATE_IDLE);
+ mach_set_state(STATE_READY);
}
float get_position(int index) {return mp_get_runtime_absolute_position(index);}
float get_velocity() {return mp_get_runtime_velocity();}
+float get_speed() {return mach_get_spindle_speed();}
+float get_feed() {return mach_get_feed_rate();}
+uint8_t get_tool() {return mach_get_tool();}
bool get_echo() {return usart_is_set(USART_ECHO);}
void set_echo(bool value) {return usart_set(USART_ECHO, value);}
uint16_t get_queue() {return mp_get_planner_buffer_room();}
// System
VAR(velocity, "v", float, 0, 0, 0, "Current velocity")
+VAR(speed, "s", float, 0, 0, 0, "Current spindle speed")
+VAR(feed, "f", float, 0, 0, 0, "Current feed rate")
+VAR(tool, "t", uint8_t, 0, 0, 0, "Current tool")
VAR(hw_id, "id", string, 0, 0, 0, "Hardware ID")
VAR(echo, "ec", bool, 0, 1, 0, "Enable or disable echo")
VAR(estop, "es", bool, 0, 1, 0, "Emergency stop")
VAR(estop_reason, "er", pstring, 0, 0, 0, "Emergency stop reason")
VAR(line, "ln", int32_t, 0, 0, 0, "Last GCode line executed")
VAR(queue, "q", uint16_t, 0, 0, 0, "Space in planner queue")
-VAR(state, "s", pstring, 0, 0, 0, "Machine state")
-VAR(cycle, "c", pstring, 0, 0, 0, "Current machine cycle")
+VAR(state, "x", pstring, 0, 0, 0, "Machine state")
+VAR(cycle, "c", pstring, 0, 0, 0, "Machine cycle")