Browse Source

Fix FILAMENT_LCD_DISPLAY for disabled state

Scott Lahteine 7 years ago
parent
commit
b2dda096fe

+ 11
- 5
Marlin/src/lcd/ultralcd_impl_DOGM.h View File

654
     strcpy(xstring, ftostr4sign(LOGICAL_X_POSITION(current_position[X_AXIS])));
654
     strcpy(xstring, ftostr4sign(LOGICAL_X_POSITION(current_position[X_AXIS])));
655
     strcpy(ystring, ftostr4sign(LOGICAL_Y_POSITION(current_position[Y_AXIS])));
655
     strcpy(ystring, ftostr4sign(LOGICAL_Y_POSITION(current_position[Y_AXIS])));
656
     strcpy(zstring, ftostr52sp(FIXFLOAT(LOGICAL_Z_POSITION(current_position[Z_AXIS]))));
656
     strcpy(zstring, ftostr52sp(FIXFLOAT(LOGICAL_Z_POSITION(current_position[Z_AXIS]))));
657
-    #if ENABLED(FILAMENT_LCD_DISPLAY) && DISABLED(SDSUPPORT)
657
+    #if ENABLED(FILAMENT_LCD_DISPLAY)
658
       strcpy(wstring, ftostr12ns(filament_width_meas));
658
       strcpy(wstring, ftostr12ns(filament_width_meas));
659
-      strcpy(mstring, itostr3(100.0 * planner.volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
659
+      if (parser.volumetric_enabled)
660
+        strcpy(mstring, itostr3(100.0 * filament_width_meas / filament_width_nominal));
661
+      else
662
+        strcpy_P(mstring, PSTR("---"));
663
+      // Alternatively, show the ratio between cross-sectional areas:
664
+      //strcpy(mstring, itostr3(100.0 / CIRCLE_AREA(filament_width_nominal * 0.5)
665
+      //                              / planner.volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
660
     #endif
666
     #endif
661
   }
667
   }
662
 
668
 
712
     //
718
     //
713
     // Filament sensor display if SD is disabled
719
     // Filament sensor display if SD is disabled
714
     //
720
     //
715
-    #if DISABLED(SDSUPPORT) && ENABLED(FILAMENT_LCD_DISPLAY)
721
+    #if ENABLED(FILAMENT_LCD_DISPLAY) && DISABLED(SDSUPPORT)
716
       u8g.setPrintPos(56, 50);
722
       u8g.setPrintPos(56, 50);
717
       lcd_print(wstring);
723
       lcd_print(wstring);
718
       u8g.setPrintPos(102, 50);
724
       u8g.setPrintPos(102, 50);
742
       else {
748
       else {
743
         lcd_printPGM(PSTR(LCD_STR_FILAM_DIA));
749
         lcd_printPGM(PSTR(LCD_STR_FILAM_DIA));
744
         u8g.print(':');
750
         u8g.print(':');
745
-        lcd_print(ftostr12ns(filament_width_meas));
751
+        lcd_print(wstring);
746
         lcd_printPGM(PSTR("  " LCD_STR_FILAM_MUL));
752
         lcd_printPGM(PSTR("  " LCD_STR_FILAM_MUL));
747
         u8g.print(':');
753
         u8g.print(':');
748
-        lcd_print(itostr3(100.0 * planner.volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
754
+        lcd_print(mstring);
749
         u8g.print('%');
755
         u8g.print('%');
750
       }
756
       }
751
     #else
757
     #else

+ 6
- 2
Marlin/src/lcd/ultralcd_impl_HD44780.h View File

860
       lcd_printPGM(PSTR("Dia "));
860
       lcd_printPGM(PSTR("Dia "));
861
       lcd.print(ftostr12ns(filament_width_meas));
861
       lcd.print(ftostr12ns(filament_width_meas));
862
       lcd_printPGM(PSTR(" V"));
862
       lcd_printPGM(PSTR(" V"));
863
-      lcd.print(itostr3(100.0 * planner.volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
864
-      lcd.write('%');
863
+      if (parser.volumetric_enabled) {
864
+        lcd.print(itostr3(100.0 * filament_width_meas / filament_width_nominal));
865
+        lcd.write('%');
866
+      }
867
+      else
868
+        lcd_printPGM(PSTR("--- "));
865
       return;
869
       return;
866
     }
870
     }
867
 
871
 

+ 1
- 2
Marlin/src/module/temperature.cpp View File

1002
   // Convert raw Filament Width to millimeters
1002
   // Convert raw Filament Width to millimeters
1003
   float Temperature::analog2widthFil() {
1003
   float Temperature::analog2widthFil() {
1004
     return current_raw_filwidth * 5.0 * (1.0 / 16383.0);
1004
     return current_raw_filwidth * 5.0 * (1.0 / 16383.0);
1005
-    //return current_raw_filwidth;
1006
   }
1005
   }
1007
 
1006
 
1008
   // Convert raw Filament Width to a ratio
1007
   // Convert raw Filament Width to a ratio
1009
   int Temperature::widthFil_to_size_ratio() {
1008
   int Temperature::widthFil_to_size_ratio() {
1010
     float temp = filament_width_meas;
1009
     float temp = filament_width_meas;
1011
-    if (temp < MEASURED_LOWER_LIMIT) temp = filament_width_nominal;  //assume sensor cut out
1010
+    if (temp < MEASURED_LOWER_LIMIT) temp = filament_width_nominal;  // Assume a bad sensor reading
1012
     else NOMORE(temp, MEASURED_UPPER_LIMIT);
1011
     else NOMORE(temp, MEASURED_UPPER_LIMIT);
1013
     return filament_width_nominal / temp * 100;
1012
     return filament_width_nominal / temp * 100;
1014
   }
1013
   }

Loading…
Cancel
Save