mirror of
https://github.com/grblHAL/core.git
synced 2026-08-18 00:47:25 +08:00
Fix for ioSender issue 319, improved handling of sycle start input signal had side-effects.
This commit is contained in:
@@ -13,7 +13,7 @@ It has been written to complement grblHAL and has features such as proper keyboa
|
||||
|
||||
---
|
||||
|
||||
Latest build date is 20230718, see the [changelog](changelog.md) for details.
|
||||
Latest build date is 20230729, see the [changelog](changelog.md) for details.
|
||||
__NOTE:__ A settings reset will be performed on an update of builds earlier than 20230125. Backup and restore of settings is recommended.
|
||||
__IMPORTANT!__ A new setting has been introduced for ganged axes motors in build 20211121.
|
||||
I have only bench tested this for a couple of drivers, correct function should be verified after updating by those who have more than three motors configured.
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
## grblHAL changelog
|
||||
|
||||
<a name="20230729"/>20230729
|
||||
|
||||
Core:
|
||||
|
||||
* Fix for ioSender issue [#319](https://github.com/terjeio/ioSender/issues/319), improved handling of sycle start input signal had side-effects.
|
||||
|
||||
---
|
||||
|
||||
<a name="20230724"/>20230724
|
||||
|
||||
Core:
|
||||
@@ -136,6 +144,8 @@ To be addressed in a later revision if someone with a Modbus TCP capable spindle
|
||||
|
||||
* Motors and encoder: updated for core setting handling improvements.
|
||||
|
||||
---
|
||||
|
||||
<a name="20230607"/>Build 20230607
|
||||
|
||||
Core:
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#else
|
||||
#define GRBL_VERSION "1.1f"
|
||||
#endif
|
||||
#define GRBL_BUILD 20230724
|
||||
#define GRBL_BUILD 20230729
|
||||
|
||||
#define GRBL_URL "https://github.com/grblHAL"
|
||||
|
||||
|
||||
@@ -1205,8 +1205,7 @@ void report_realtime_status (void)
|
||||
axes_signals_t lim_pin_state = limit_signals_merge(hal.limits.get_state());
|
||||
control_signals_t ctrl_pin_state = hal.control.get_state();
|
||||
|
||||
if(sys.report.cycle_start)
|
||||
ctrl_pin_state.cycle_start = On;
|
||||
ctrl_pin_state.cycle_start |= sys.report.cycle_start;
|
||||
|
||||
if (lim_pin_state.value | ctrl_pin_state.value | probe_state.triggered | !probe_state.connected | sys.flags.block_delete_enabled) {
|
||||
|
||||
@@ -1214,16 +1213,16 @@ void report_realtime_status (void)
|
||||
|
||||
strcpy(buf, "|Pn:");
|
||||
|
||||
if (probe_state.triggered)
|
||||
if(probe_state.triggered)
|
||||
*append++ = 'P';
|
||||
|
||||
if(!probe_state.connected)
|
||||
*append++ = 'O';
|
||||
|
||||
if (lim_pin_state.value && !hal.control.get_state().limits_override)
|
||||
if(lim_pin_state.value && !ctrl_pin_state.limits_override)
|
||||
append = axis_signals_tostring(append, lim_pin_state);
|
||||
|
||||
if (ctrl_pin_state.value)
|
||||
if(ctrl_pin_state.value)
|
||||
append = control_signals_tostring(append, ctrl_pin_state);
|
||||
|
||||
*append = '\0';
|
||||
|
||||
@@ -193,8 +193,6 @@ void state_update (rt_exec_t rt_exec)
|
||||
{
|
||||
if((rt_exec & EXEC_SAFETY_DOOR) && sys_state != STATE_SAFETY_DOOR)
|
||||
state_set(STATE_SAFETY_DOOR);
|
||||
else if(rt_exec & EXEC_CYCLE_START)
|
||||
sys.report.cycle_start = settings.status_report.pin_state;
|
||||
|
||||
stateHandler(rt_exec);
|
||||
}
|
||||
|
||||
@@ -159,7 +159,12 @@ ISR_CODE bool ISR_FUNC(stream_buffer_all)(char c)
|
||||
|
||||
ISR_CODE bool ISR_FUNC(stream_enqueue_realtime_command)(char c)
|
||||
{
|
||||
return hal.stream.enqueue_rt_command ? hal.stream.enqueue_rt_command(c) : protocol_enqueue_realtime_command(c);
|
||||
bool drop = hal.stream.enqueue_rt_command ? hal.stream.enqueue_rt_command(c) : protocol_enqueue_realtime_command(c);
|
||||
|
||||
if(drop && (c == CMD_CYCLE_START || c == CMD_CYCLE_START_LEGACY))
|
||||
sys.report.cycle_start = settings.status_report.pin_state;
|
||||
|
||||
return drop;
|
||||
}
|
||||
|
||||
static bool is_connected (void)
|
||||
|
||||
@@ -140,8 +140,10 @@ ISR_CODE void ISR_FUNC(control_interrupt_handler)(control_signals_t signals)
|
||||
}
|
||||
} else if (signals.feed_hold)
|
||||
system_set_exec_state_flag(EXEC_FEED_HOLD);
|
||||
else if (signals.cycle_start)
|
||||
else if (signals.cycle_start) {
|
||||
system_set_exec_state_flag(EXEC_CYCLE_START);
|
||||
sys.report.cycle_start = settings.status_report.pin_state;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user