Cutter Power in percent format (#20410)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Jason Smith <jason.inet@gmail.com> Co-authored-by: Luu Lac <45380455+shitcreek@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									48bf80d190
								
							
						
					
					
						commit
						f9dd484381
					
				| @ -43,9 +43,14 @@ typedef IF<(SPEED_POWER_MAX > 255), uint16_t, uint8_t>::type cutter_cpower_t; | ||||
|   #define cutter_power2str         ui16tostr5rj | ||||
| #else | ||||
|   typedef uint8_t cutter_power_t; | ||||
|   #if CUTTER_UNIT_IS(PERCENT) | ||||
|     #define CUTTER_MENU_POWER_TYPE percent_3 | ||||
|     #define cutter_power2str       pcttostrpctrj | ||||
|   #else | ||||
|     #define CUTTER_MENU_POWER_TYPE uint8 | ||||
|     #define cutter_power2str       ui8tostr3rj | ||||
|   #endif | ||||
| #endif | ||||
| 
 | ||||
| #if ENABLED(MARLIN_DEV_MODE) | ||||
|   typedef uint16_t cutter_frequency_t; | ||||
|  | ||||
| @ -618,7 +618,6 @@ void MarlinUI::draw_status_screen() { | ||||
|       if (cutter.isReady && PAGE_CONTAINS(STATUS_CUTTER_TEXT_Y - INFO_FONT_ASCENT, STATUS_CUTTER_TEXT_Y - 1)) { | ||||
|         #if CUTTER_UNIT_IS(PERCENT) | ||||
|           lcd_put_u8str(STATUS_CUTTER_TEXT_X, STATUS_CUTTER_TEXT_Y, cutter_power2str(cutter.unitPower)); | ||||
|           lcd_put_wchar('%'); | ||||
|         #elif CUTTER_UNIT_IS(RPM) | ||||
|           lcd_put_u8str(STATUS_CUTTER_TEXT_X - 2, STATUS_CUTTER_TEXT_Y, ftostr51rj(float(cutter.unitPower) / 1000)); | ||||
|           lcd_put_wchar('K'); | ||||
|  | ||||
| @ -122,6 +122,7 @@ class TMenuEditItem : MenuEditItemBase { | ||||
| 
 | ||||
| //                         NAME         TYPE      STRFUNC          SCALE         +ROUND
 | ||||
| DEFINE_MENU_EDIT_ITEM_TYPE(percent     ,uint8_t  ,ui8tostr4pctrj  , 100.f/255.f, 0.5f);  // 100%   right-justified
 | ||||
| DEFINE_MENU_EDIT_ITEM_TYPE(percent_3   ,uint8_t  ,pcttostrpctrj   ,   1     );   // 100%   right-justified
 | ||||
| DEFINE_MENU_EDIT_ITEM_TYPE(int3        ,int16_t  ,i16tostr3rj     ,   1     );   // 123, -12   right-justified
 | ||||
| DEFINE_MENU_EDIT_ITEM_TYPE(int4        ,int16_t  ,i16tostr4signrj ,   1     );   // 1234, -123 right-justified
 | ||||
| DEFINE_MENU_EDIT_ITEM_TYPE(int8        ,int8_t   ,i8tostr3rj      ,   1     );   // 123, -12   right-justified
 | ||||
|  | ||||
| @ -34,16 +34,20 @@ char conv[8] = { 0 }; | ||||
| #define INTFLOAT(V,N) (((V) * 10 * pow(10, N) + ((V) < 0 ? -5: 5)) / 10)      // pow10?
 | ||||
| #define UINTFLOAT(V,N) INTFLOAT((V) < 0 ? -(V) : (V), N) | ||||
| 
 | ||||
| // Convert a full-range unsigned 8bit int to a percentage
 | ||||
| const char* ui8tostr4pctrj(const uint8_t i) { | ||||
|   const uint8_t n = ui8_to_percent(i); | ||||
|   conv[3] = RJDIGIT(n, 100); | ||||
|   conv[4] = RJDIGIT(n, 10); | ||||
|   conv[5] = DIGIMOD(n, 1); | ||||
| // Format uint8_t (0-100) as rj string with 123% / _12% / __1% format
 | ||||
| const char* pcttostrpctrj(const uint8_t i) { | ||||
|   conv[3] = RJDIGIT(i, 100); | ||||
|   conv[4] = RJDIGIT(i, 10); | ||||
|   conv[5] = DIGIMOD(i, 1); | ||||
|   conv[6] = '%'; | ||||
|   return &conv[3]; | ||||
| } | ||||
| 
 | ||||
| // Convert uint8_t (0-255) to a percentage, format as above
 | ||||
| const char* ui8tostr4pctrj(const uint8_t i) { | ||||
|   return pcttostrpctrj(ui8_to_percent(i)); | ||||
| } | ||||
| 
 | ||||
| // Convert unsigned 8bit int to string 123 format
 | ||||
| const char* ui8tostr3rj(const uint8_t i) { | ||||
|   conv[4] = RJDIGIT(i, 100); | ||||
|  | ||||
| @ -23,7 +23,10 @@ | ||||
| 
 | ||||
| #include <stdint.h> | ||||
| 
 | ||||
| // Convert a full-range unsigned 8bit int to a percentage
 | ||||
| // Format uint8_t (0-100) as rj string with 123% / _12% / __1% format
 | ||||
| const char* pcttostrpctrj(const uint8_t i); | ||||
| 
 | ||||
| // Convert uint8_t (0-255) to a percentage, format as above
 | ||||
| const char* ui8tostr4pctrj(const uint8_t i); | ||||
| 
 | ||||
| // Convert uint8_t to string with 12 format
 | ||||
|  | ||||
| @ -28,5 +28,14 @@ opt_set Y_DRIVER_TYPE TMC2130 | ||||
| opt_enable BLTOUCH EEPROM_SETTINGS AUTO_BED_LEVELING_3POINT Z_SAFE_HOMING PINS_DEBUGGING | ||||
| exec_test $1 $2 "BigTreeTech SKR Pro 3 Extruders, Auto-Fan, BLTOUCH, mixed TMC drivers" "$3" | ||||
| 
 | ||||
| restore_configs | ||||
| opt_set MOTHERBOARD BOARD_BTT_SKR_PRO_V1_1 | ||||
| opt_set SERIAL_PORT -1 | ||||
| opt_enable LASER_FEATURE REPRAP_DISCOUNT_SMART_CONTROLLER | ||||
| opt_set CUTTER_POWER_UNIT PERCENT | ||||
| opt_add SPINDLE_LASER_PWM_PIN HEATER_1_PIN | ||||
| opt_add SPINDLE_LASER_ENA_PIN HEATER_2_PIN | ||||
| exec_test $1 $2 "Laser, LCD, PERCENT power unit" "$3" | ||||
| 
 | ||||
| # clean up | ||||
| restore_configs | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user