|
@@ -358,12 +358,16 @@ void Endstops::event_handler() {
|
358
|
358
|
prev_hit_state = hit_state;
|
359
|
359
|
} // Endstops::report_state
|
360
|
360
|
|
361
|
|
-void Endstops::M119() {
|
|
361
|
+static void print_es_state(const bool is_hit, const char * const label=NULL) {
|
|
362
|
+ if (label) serialprintPGM(label);
|
|
363
|
+ SERIAL_PROTOCOLPGM(": ");
|
|
364
|
+ serialprintPGM(is_hit ? PSTR(MSG_ENDSTOP_HIT) : PSTR(MSG_ENDSTOP_OPEN));
|
|
365
|
+ SERIAL_EOL();
|
|
366
|
+}
|
|
367
|
+
|
|
368
|
+void _O2 Endstops::M119() {
|
362
|
369
|
SERIAL_PROTOCOLLNPGM(MSG_M119_REPORT);
|
363
|
|
- #define ES_REPORT(AXIS) do{ \
|
364
|
|
- SERIAL_PROTOCOLPGM(MSG_##AXIS); \
|
365
|
|
- SERIAL_PROTOCOLLN(((READ(AXIS##_PIN)^AXIS##_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN)); \
|
366
|
|
- }while(0)
|
|
370
|
+ #define ES_REPORT(S) print_es_state(READ(S##_PIN) == S##_ENDSTOP_INVERTING, PSTR(MSG_##S))
|
367
|
371
|
#if HAS_X_MIN
|
368
|
372
|
ES_REPORT(X_MIN);
|
369
|
373
|
#endif
|
|
@@ -407,12 +411,52 @@ void Endstops::M119() {
|
407
|
411
|
ES_REPORT(Z3_MAX);
|
408
|
412
|
#endif
|
409
|
413
|
#if ENABLED(Z_MIN_PROBE_ENDSTOP)
|
410
|
|
- SERIAL_PROTOCOLPGM(MSG_Z_PROBE);
|
411
|
|
- SERIAL_PROTOCOLLN(((READ(Z_MIN_PROBE_PIN)^Z_MIN_PROBE_ENDSTOP_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
|
|
414
|
+ print_es_state(READ(Z_MIN_PROBE_PIN) == Z_MIN_PROBE_ENDSTOP_INVERTING, PSTR(MSG_Z_PROBE));
|
412
|
415
|
#endif
|
413
|
416
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
414
|
|
- SERIAL_PROTOCOLPGM(MSG_FILAMENT_RUNOUT_SENSOR);
|
415
|
|
- SERIAL_PROTOCOLLN(((READ(FIL_RUNOUT_PIN)^FIL_RUNOUT_INVERTING) ? MSG_ENDSTOP_HIT : MSG_ENDSTOP_OPEN));
|
|
417
|
+ #define FRS_COUNT (1 + PIN_EXISTS(FIL_RUNOUT2) + PIN_EXISTS(FIL_RUNOUT3) + PIN_EXISTS(FIL_RUNOUT4) + PIN_EXISTS(FIL_RUNOUT5) + PIN_EXISTS(FIL_RUNOUT6))
|
|
418
|
+ #if FRS_COUNT == 1
|
|
419
|
+ print_es_state(READ(FIL_RUNOUT_PIN) == FIL_RUNOUT_INVERTING, MSG_FILAMENT_RUNOUT_SENSOR);
|
|
420
|
+ #else
|
|
421
|
+ for (uint8_t i = 1; i <=
|
|
422
|
+ #if FRS_COUNT == 6
|
|
423
|
+ 6
|
|
424
|
+ #elif FRS_COUNT == 5
|
|
425
|
+ 5
|
|
426
|
+ #elif FRS_COUNT == 4
|
|
427
|
+ 4
|
|
428
|
+ #elif FRS_COUNT == 3
|
|
429
|
+ 3
|
|
430
|
+ #elif FRS_COUNT == 2
|
|
431
|
+ 2
|
|
432
|
+ #endif
|
|
433
|
+ ; i++
|
|
434
|
+ ) {
|
|
435
|
+ pin_t pin;
|
|
436
|
+ switch (i) {
|
|
437
|
+ default: continue;
|
|
438
|
+ case 1: pin = FIL_RUNOUT_PIN; break;
|
|
439
|
+ #if PIN_EXISTS(FIL_RUNOUT2)
|
|
440
|
+ case 2: pin = FIL_RUNOUT2_PIN; break;
|
|
441
|
+ #endif
|
|
442
|
+ #if PIN_EXISTS(FIL_RUNOUT3)
|
|
443
|
+ case 3: pin = FIL_RUNOUT3_PIN; break;
|
|
444
|
+ #endif
|
|
445
|
+ #if PIN_EXISTS(FIL_RUNOUT4)
|
|
446
|
+ case 4: pin = FIL_RUNOUT4_PIN; break;
|
|
447
|
+ #endif
|
|
448
|
+ #if PIN_EXISTS(FIL_RUNOUT5)
|
|
449
|
+ case 5: pin = FIL_RUNOUT5_PIN; break;
|
|
450
|
+ #endif
|
|
451
|
+ #if PIN_EXISTS(FIL_RUNOUT6)
|
|
452
|
+ case 6: pin = FIL_RUNOUT6_PIN; break;
|
|
453
|
+ #endif
|
|
454
|
+ }
|
|
455
|
+ SERIAL_PROTOCOLPGM(MSG_FILAMENT_RUNOUT_SENSOR);
|
|
456
|
+ if (i > 1) { SERIAL_CHAR(' '); SERIAL_CHAR('0' + i); }
|
|
457
|
+ print_es_state(digitalRead(pin) == FIL_RUNOUT_INVERTING);
|
|
458
|
+ }
|
|
459
|
+ #endif
|
416
|
460
|
#endif
|
417
|
461
|
} // Endstops::M119
|
418
|
462
|
|