Merge pull request #5385 from thinkyhead/rc_ftostr4sign_decimal
Show decimal for small numbers in ftostr4sign
This commit is contained in:
		| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -435,6 +435,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -430,6 +430,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -424,6 +424,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -424,6 +424,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -424,6 +424,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -429,6 +429,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -424,6 +424,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -422,6 +422,9 @@ | ||||
| // Include a page of printer information in the LCD Main Menu | ||||
| //#define LCD_INFO_MENU | ||||
|  | ||||
| // On the Info Screen, display XY with one decimal place when possible | ||||
| //#define LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
| #if ENABLED(SDSUPPORT) | ||||
|  | ||||
|   // Some RAMPS and other boards don't detect when an SD card is inserted. You can work | ||||
|   | ||||
| @@ -74,25 +74,32 @@ void safe_delay(millis_t ms) { | ||||
|     return str; | ||||
|   } | ||||
|  | ||||
|   // Convert signed int to rj string with _123, -123, _-12, or __-1 format | ||||
|   // Convert signed int to rj string with 1234, _123, -123, _-12, or __-1 format | ||||
|   char *itostr4sign(const int& x) { | ||||
|     int xx = abs(x), sign = 0; | ||||
|     if (xx >= 100) { | ||||
|     int xx = abs(x); | ||||
|     if (x >= 1000) { | ||||
|       conv[0] = DIGIMOD(xx, 1000); | ||||
|       conv[1] = DIGIMOD(xx, 100); | ||||
|       conv[2] = DIGIMOD(xx, 10); | ||||
|     } | ||||
|     else { | ||||
|       conv[0] = ' '; | ||||
|       if (xx >= 10) { | ||||
|         sign = 1; | ||||
|       if (xx >= 100) { | ||||
|         conv[0] = x < 0 ? '-' : ' '; | ||||
|         conv[1] = DIGIMOD(xx, 100); | ||||
|         conv[2] = DIGIMOD(xx, 10); | ||||
|       } | ||||
|       else { | ||||
|         conv[1] = ' '; | ||||
|         sign = 2; | ||||
|         conv[0] = ' '; | ||||
|         if (xx >= 10) { | ||||
|           conv[1] = x < 0 ? '-' : ' '; | ||||
|           conv[2] = DIGIMOD(xx, 10); | ||||
|         } | ||||
|         else { | ||||
|           conv[1] = ' '; | ||||
|           conv[2] = x < 0 ? '-' : ' '; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     conv[sign] = x < 0 ? '-' : ' '; | ||||
|     conv[3] = DIGIMOD(xx, 1); | ||||
|     conv[4] = '\0'; | ||||
|     return conv; | ||||
| @@ -122,6 +129,23 @@ void safe_delay(millis_t ms) { | ||||
|     return conv; | ||||
|   } | ||||
|  | ||||
|   #if ENABLED(LCD_DECIMAL_SMALL_XY) | ||||
|  | ||||
|     // Convert float to rj string with 1234, _123, -123, _-12, 12.3, _1.2, or -1.2 format | ||||
|     char *ftostr4sign(const float& fx) { | ||||
|       int x = fx * 10; | ||||
|       if (x <= -100 || x >= 1000) return itostr4sign((int)fx); | ||||
|       int xx = abs(x); | ||||
|       conv[0] = x < 0 ? '-' : (xx >= 100 ? DIGIMOD(xx, 100) : ' '); | ||||
|       conv[1] = DIGIMOD(xx, 10); | ||||
|       conv[2] = '.'; | ||||
|       conv[3] = DIGIMOD(xx, 1); | ||||
|       conv[4] = '\0'; | ||||
|       return conv; | ||||
|     } | ||||
|  | ||||
|   #endif // LCD_DECIMAL_SMALL_XY | ||||
|  | ||||
|   // Convert float to fixed-length string with +123.4 / -123.4 format | ||||
|   char* ftostr41sign(const float& x) { | ||||
|     int xx = x * 10; | ||||
|   | ||||
| @@ -69,8 +69,13 @@ void safe_delay(millis_t ms); | ||||
|   // Convert float to rj string with 123 or -12 format | ||||
|   FORCE_INLINE char *ftostr3(const float& x) { return itostr3((int)x); } | ||||
|  | ||||
|   // Convert float to rj string with _123, -123, _-12, or __-1 format | ||||
|   FORCE_INLINE char *ftostr4sign(const float& x) { return itostr4sign((int)x); } | ||||
|   #if ENABLED(LCD_DECIMAL_SMALL_XY) | ||||
|     // Convert float to rj string with 1234, _123, 12.3, _1.2, -123, _-12, or -1.2 format | ||||
|     char *ftostr4sign(const float& fx); | ||||
|   #else | ||||
|     // Convert float to rj string with 1234, _123, -123, __12, _-12, ___1, or __-1 format | ||||
|     FORCE_INLINE char *ftostr4sign(const float& x) { return itostr4sign((int)x); } | ||||
|   #endif | ||||
|  | ||||
| #endif // ULTRA_LCD | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user