Quellcode durchsuchen

updated messages + slight refactoring to save some bytes

D.R.racer vor 4 Jahren
Ursprung
Commit
818efb4fa2
3 geänderte Dateien mit 52 neuen und 52 gelöschten Zeilen
  1. 1 1
      Firmware/Marlin_main.cpp
  2. 50 51
      Firmware/ultralcd.cpp
  3. 1 0
      Firmware/ultralcd.h

+ 1 - 1
Firmware/Marlin_main.cpp

@@ -9480,7 +9480,7 @@ static uint8_t nFSCheckCount=0;
                               nFSCheckCount=0;    // not necessary
                               oFsensorPCB=ClFsensorPCB::_Rev03b;
                               eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
-                              printf_P(PSTR("Filament sensor board change detected: revision 03b or newer\n"));
+                              printf_IRSensorAnalogBoardChange(true);
                               lcd_setstatuspgm(_i("FS rev. 03b or newer"));
                          }
                     }

+ 50 - 51
Firmware/ultralcd.cpp

@@ -2160,10 +2160,8 @@ static void lcd_support_menu()
             MENU_ITEM_BACK_P(PSTR(" 03b or newer"));
             break;
        case ClFsensorPCB::_Undef:
-            MENU_ITEM_BACK_P(PSTR(" N/A"));
-            break;
        default:
-            MENU_ITEM_BACK_P(PSTR(" unknown"));
+            MENU_ITEM_BACK_P(PSTR(" state unknown"));
        }
 #endif // IR_SENSOR_ANALOG
 
@@ -5718,7 +5716,7 @@ void lcd_hw_setup_menu(void)                      // can not be "static"
 
 #ifdef IR_SENSOR_ANALOG
     FSENSOR_ACTION_NA;
-    MENU_ITEM_FUNCTION_P(PSTR("FS Detect"), lcd_detect_IRsensor);
+    MENU_ITEM_FUNCTION_P(PSTR("Fsensor Detection"), lcd_detect_IRsensor);
 #endif //IR_SENSOR_ANALOG
     MENU_END();
 }
@@ -7518,58 +7516,59 @@ void lcd_belttest()
 #endif //TMC2130
 
 #ifdef IR_SENSOR_ANALOG
+// called also from marlin_main.cpp
+void printf_IRSensorAnalogBoardChange(bool bPCBrev03b){
+    printf_P(PSTR("Filament sensor board change detected: revision %S\n"), bPCBrev03b ? PSTR("03b or newer") : PSTR("03 or older"));
+}
+
 static bool lcd_selftest_IRsensor(bool bStandalone)
 {
-bool bAction;
-bool bPCBrev03b;
-uint16_t volt_IR_int;
-float volt_IR;
-
-volt_IR_int=current_voltage_raw_IR;
-bPCBrev03b=(volt_IR_int<((int)IRsensor_Hopen_TRESHOLD));
-volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR));
-printf_P(PSTR("Measured filament sensor high level: %4.2fV\n"),volt_IR);
-if(volt_IR_int<((int)IRsensor_Hmin_TRESHOLD))
-     {
-     if(!bStandalone)
-          lcd_selftest_error(TestError::FsensorLevel,"HIGH","");
-     return(false);
-     }
-lcd_show_fullscreen_message_and_wait_P(_i("Please insert filament (but not load them!) into extruder and then press the knob."));
-volt_IR_int=current_voltage_raw_IR;
-volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR));
-printf_P(PSTR("Measured filament sensor low level: %4.2fV\n"),volt_IR);
-if(volt_IR_int>((int)IRsensor_Lmax_TRESHOLD))
-     {
-     if(!bStandalone)
-          lcd_selftest_error(TestError::FsensorLevel,"LOW","");
-     return(false);
-     }
-if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB)        // safer then "(uint8_t)bPCBrev03b"
-     {
-     printf_P(PSTR("Filament sensor board change detected: revision %S\n"),bPCBrev03b?PSTR("03b or newer"):PSTR("03 or older"));
-     oFsensorPCB=bPCBrev03b?ClFsensorPCB::_Rev03b:ClFsensorPCB::_Old;
-     eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
-     }
-return(true);
+    bool bAction;
+    bool bPCBrev03b;
+    uint16_t volt_IR_int;
+    float volt_IR;
+
+    volt_IR_int=current_voltage_raw_IR;
+    bPCBrev03b=(volt_IR_int<((int)IRsensor_Hopen_TRESHOLD));
+    volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR));
+    printf_P(PSTR("Measured filament sensor high level: %4.2fV\n"),volt_IR);
+    if(volt_IR_int < ((int)IRsensor_Hmin_TRESHOLD)){
+        if(!bStandalone)
+            lcd_selftest_error(TestError::FsensorLevel,"HIGH","");
+        return(false);
+    }
+    lcd_show_fullscreen_message_and_wait_P(_i("Please insert filament (but not load them!) into extruder and then press the knob."));
+    volt_IR_int=current_voltage_raw_IR;
+    volt_IR=VOLT_DIV_REF*((float)volt_IR_int/(1023*OVERSAMPLENR));
+    printf_P(PSTR("Measured filament sensor low level: %4.2fV\n"),volt_IR);
+    if(volt_IR_int > ((int)IRsensor_Lmax_TRESHOLD)){
+        if(!bStandalone)
+            lcd_selftest_error(TestError::FsensorLevel,"LOW","");
+        return(false);
+    }
+    if((bPCBrev03b?1:0)!=(uint8_t)oFsensorPCB){        // safer then "(uint8_t)bPCBrev03b"
+        printf_IRSensorAnalogBoardChange(bPCBrev03b);
+        oFsensorPCB=bPCBrev03b?ClFsensorPCB::_Rev03b:ClFsensorPCB::_Old;
+        eeprom_update_byte((uint8_t*)EEPROM_FSENSOR_PCB,(uint8_t)oFsensorPCB);
+    }
+    return(true);
 }
 
-static void lcd_detect_IRsensor()
-{
-bool bAction;
+static void lcd_detect_IRsensor(){
+    bool bAction;
 
-bMenuFSDetect=true;                               // inhibits some code inside "manage_inactivity()"
-bAction=lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament unloaded?"),false,true);
-if(!bAction)
-     {
-     lcd_show_fullscreen_message_and_wait_P(_i("... so unload the filament and repeat action!"));
-     return;
-     }
-bAction=lcd_selftest_IRsensor(true);
-if(bAction)
-     lcd_show_fullscreen_message_and_wait_P(_i("PCB check successful - withdraw the filament now!"));
-else lcd_show_fullscreen_message_and_wait_P(_i("PCB check unsuccessful - withdraw the filament now!"));
-bMenuFSDetect=false;                              // de-inhibits some code inside "manage_inactivity()"
+    bMenuFSDetect = true;                               // inhibits some code inside "manage_inactivity()"
+    bAction = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Is the filament loaded?"), false, false);
+    if(!bAction){
+        lcd_show_fullscreen_message_and_wait_P(_i("Please unload the filament first, then repeat this action."));
+        return;
+    }
+    bAction = lcd_selftest_IRsensor(true);
+    if(bAction)
+        lcd_show_fullscreen_message_and_wait_P(_i("Sensor verified, remove the filament now."));
+    else
+        lcd_show_fullscreen_message_and_wait_P(_i("Verification failed, remove the filament and try again."));
+    bMenuFSDetect=false;                              // de-inhibits some code inside "manage_inactivity()"
 }
 #endif //IR_SENSOR_ANALOG
 

+ 1 - 0
Firmware/ultralcd.h

@@ -142,6 +142,7 @@ extern uint8_t farm_status;
 
 #ifdef IR_SENSOR_ANALOG
 extern bool bMenuFSDetect;
+void printf_IRSensorAnalogBoardChange(bool bPCBrev03b);
 #endif //IR_SENSOR_ANALOG
 
 extern int8_t SilentModeMenu;