mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-08-08 06:24:03 -06:00
sensor_ldc1612: Halt homing if sensor reports a warning
Explicitly check for sensor warnings during homing and report an error code back to the host. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
37482178b5
commit
4a92727eab
3 changed files with 20 additions and 9 deletions
|
@ -31,7 +31,7 @@ struct ldc1612 {
|
|||
// homing
|
||||
struct trsync *ts;
|
||||
uint8_t homing_flags;
|
||||
uint8_t trigger_reason;
|
||||
uint8_t trigger_reason, error_reason;
|
||||
uint32_t trigger_threshold;
|
||||
uint32_t homing_clock;
|
||||
};
|
||||
|
@ -95,11 +95,12 @@ command_ldc1612_setup_home(uint32_t *args)
|
|||
ld->homing_clock = args[1];
|
||||
ld->ts = trsync_oid_lookup(args[3]);
|
||||
ld->trigger_reason = args[4];
|
||||
ld->error_reason = args[5];
|
||||
ld->homing_flags = LH_AWAIT_HOMING | LH_CAN_TRIGGER;
|
||||
}
|
||||
DECL_COMMAND(command_ldc1612_setup_home,
|
||||
"ldc1612_setup_home oid=%c clock=%u threshold=%u"
|
||||
" trsync_oid=%c trigger_reason=%c");
|
||||
" trsync_oid=%c trigger_reason=%c error_reason=%c");
|
||||
|
||||
void
|
||||
command_query_ldc1612_home_state(uint32_t *args)
|
||||
|
@ -118,6 +119,12 @@ check_home(struct ldc1612 *ld, uint32_t data)
|
|||
uint8_t homing_flags = ld->homing_flags;
|
||||
if (!(homing_flags & LH_CAN_TRIGGER))
|
||||
return;
|
||||
if (data > 0x0fffffff) {
|
||||
// Sensor reports an issue - cancel homing
|
||||
ld->homing_flags = 0;
|
||||
trsync_do_trigger(ld->ts, ld->error_reason);
|
||||
return;
|
||||
}
|
||||
uint32_t time = timer_read_time();
|
||||
if ((homing_flags & LH_AWAIT_HOMING)
|
||||
&& timer_is_before(time, ld->homing_clock))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue