Fix for ioSender issue 319, improved handling of sycle start input signal had side-effects.

This commit is contained in:
Terje Io
2023-07-29 07:20:36 +02:00
parent 849c252a63
commit 280dd953c3
7 changed files with 25 additions and 11 deletions
+1 -1
View File
@@ -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.
+10
View File
@@ -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:
+1 -1
View File
@@ -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"
+4 -5
View File
@@ -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';
-2
View File
@@ -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);
}
+6 -1
View File
@@ -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)
+3 -1
View File
@@ -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;
}
}
}
}