Smaller binary using inline gcode argument getters
This commit is contained in:
		@@ -291,20 +291,9 @@ extern bool axis_homed[3]; // axis[n].is_homed
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// GCode support for external objects
 | 
					// GCode support for external objects
 | 
				
			||||||
bool code_seen(char);
 | 
					bool code_seen(char);
 | 
				
			||||||
float code_value_float();
 | 
					 | 
				
			||||||
unsigned long code_value_ulong();
 | 
					 | 
				
			||||||
long code_value_long();
 | 
					 | 
				
			||||||
int code_value_int();
 | 
					int code_value_int();
 | 
				
			||||||
uint16_t code_value_ushort();
 | 
					 | 
				
			||||||
uint8_t code_value_byte();
 | 
					 | 
				
			||||||
bool code_value_bool();
 | 
					 | 
				
			||||||
float code_value_linear_units();
 | 
					 | 
				
			||||||
float code_value_per_axis_unit(int axis);
 | 
					 | 
				
			||||||
float code_value_axis_units(int axis);
 | 
					 | 
				
			||||||
float code_value_temp_abs();
 | 
					float code_value_temp_abs();
 | 
				
			||||||
float code_value_temp_diff();
 | 
					float code_value_temp_diff();
 | 
				
			||||||
millis_t code_value_millis();
 | 
					 | 
				
			||||||
millis_t code_value_millis_from_seconds();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if ENABLED(DELTA)
 | 
					#if ENABLED(DELTA)
 | 
				
			||||||
  extern float delta[3];
 | 
					  extern float delta[3];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1167,7 +1167,7 @@ void get_available_commands() {
 | 
				
			|||||||
  #endif
 | 
					  #endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool code_has_value() {
 | 
					inline bool code_has_value() {
 | 
				
			||||||
  int i = 1;
 | 
					  int i = 1;
 | 
				
			||||||
  char c = seen_pointer[i];
 | 
					  char c = seen_pointer[i];
 | 
				
			||||||
  while (c == ' ') c = seen_pointer[++i];
 | 
					  while (c == ' ') c = seen_pointer[++i];
 | 
				
			||||||
@@ -1176,7 +1176,7 @@ bool code_has_value() {
 | 
				
			|||||||
  return NUMERIC(c);
 | 
					  return NUMERIC(c);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
float code_value_float() {
 | 
					inline float code_value_float() {
 | 
				
			||||||
  float ret;
 | 
					  float ret;
 | 
				
			||||||
  char* e = strchr(seen_pointer, 'E');
 | 
					  char* e = strchr(seen_pointer, 'E');
 | 
				
			||||||
  if (e) {
 | 
					  if (e) {
 | 
				
			||||||
@@ -1189,20 +1189,20 @@ float code_value_float() {
 | 
				
			|||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unsigned long code_value_ulong() { return strtoul(seen_pointer + 1, NULL, 10); }
 | 
					inline unsigned long code_value_ulong() { return strtoul(seen_pointer + 1, NULL, 10); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
long code_value_long() { return strtol(seen_pointer + 1, NULL, 10); }
 | 
					inline long code_value_long() { return strtol(seen_pointer + 1, NULL, 10); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int code_value_int() { return (int)strtol(seen_pointer + 1, NULL, 10); }
 | 
					inline int code_value_int() { return (int)strtol(seen_pointer + 1, NULL, 10); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint16_t code_value_ushort() { return (uint16_t)strtoul(seen_pointer + 1, NULL, 10); }
 | 
					inline uint16_t code_value_ushort() { return (uint16_t)strtoul(seen_pointer + 1, NULL, 10); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint8_t code_value_byte() { return (uint8_t)(constrain(strtol(seen_pointer + 1, NULL, 10), 0, 255)); }
 | 
					inline uint8_t code_value_byte() { return (uint8_t)(constrain(strtol(seen_pointer + 1, NULL, 10), 0, 255)); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool code_value_bool() { return code_value_byte() > 0; }
 | 
					inline bool code_value_bool() { return code_value_byte() > 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if ENABLED(INCH_MODE_SUPPORT)
 | 
					#if ENABLED(INCH_MODE_SUPPORT)
 | 
				
			||||||
  void set_input_linear_units(LinearUnit units) {
 | 
					  inline void set_input_linear_units(LinearUnit units) {
 | 
				
			||||||
    switch (units) {
 | 
					    switch (units) {
 | 
				
			||||||
      case LINEARUNIT_INCH:
 | 
					      case LINEARUNIT_INCH:
 | 
				
			||||||
        linear_unit_factor = 25.4;
 | 
					        linear_unit_factor = 25.4;
 | 
				
			||||||
@@ -1215,33 +1215,24 @@ bool code_value_bool() { return code_value_byte() > 0; }
 | 
				
			|||||||
    volumetric_unit_factor = pow(linear_unit_factor, 3.0);
 | 
					    volumetric_unit_factor = pow(linear_unit_factor, 3.0);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float axis_unit_factor(int axis) {
 | 
					  inline float axis_unit_factor(int axis) {
 | 
				
			||||||
    return (axis == E_AXIS && volumetric_enabled ? volumetric_unit_factor : linear_unit_factor);
 | 
					    return (axis == E_AXIS && volumetric_enabled ? volumetric_unit_factor : linear_unit_factor);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float code_value_linear_units() {
 | 
					  inline float code_value_linear_units() { return code_value_float() * linear_unit_factor; }
 | 
				
			||||||
    return code_value_float() * linear_unit_factor;
 | 
					  inline float code_value_per_axis_unit(int axis) { return code_value_float() / axis_unit_factor(axis); }
 | 
				
			||||||
  }
 | 
					  inline float code_value_axis_units(int axis) { return code_value_float() * axis_unit_factor(axis); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float code_value_per_axis_unit(int axis) {
 | 
					 | 
				
			||||||
    return code_value_float() / axis_unit_factor(axis);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  float code_value_axis_units(int axis) {
 | 
					 | 
				
			||||||
    return code_value_float() * axis_unit_factor(axis);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
  float code_value_linear_units() { return code_value_float(); }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float code_value_per_axis_unit(int axis) { return code_value_float(); }
 | 
					  inline float code_value_linear_units() { return code_value_float(); }
 | 
				
			||||||
 | 
					  inline float code_value_per_axis_unit(int axis) { return code_value_float(); }
 | 
				
			||||||
 | 
					  inline float code_value_axis_units(int axis) { return code_value_float(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  float code_value_axis_units(int axis) { return code_value_float(); }
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
 | 
					#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
 | 
				
			||||||
  void set_input_temp_units(TempUnit units) {
 | 
					  inline void set_input_temp_units(TempUnit units) { input_temp_units = units; }
 | 
				
			||||||
    input_temp_units = units;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  float code_value_temp_abs() {
 | 
					  float code_value_temp_abs() {
 | 
				
			||||||
    switch (input_temp_units) {
 | 
					    switch (input_temp_units) {
 | 
				
			||||||
@@ -1272,13 +1263,8 @@ bool code_value_bool() { return code_value_byte() > 0; }
 | 
				
			|||||||
  float code_value_temp_diff() { return code_value_float(); }
 | 
					  float code_value_temp_diff() { return code_value_float(); }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
millis_t code_value_millis() {
 | 
					inline millis_t code_value_millis() { return code_value_ulong(); }
 | 
				
			||||||
  return code_value_ulong();
 | 
					inline millis_t code_value_millis_from_seconds() { return code_value_float() * 1000; }
 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
millis_t code_value_millis_from_seconds() {
 | 
					 | 
				
			||||||
  return code_value_float() * 1000;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool code_seen(char code) {
 | 
					bool code_seen(char code) {
 | 
				
			||||||
  seen_pointer = strchr(current_command_args, code);
 | 
					  seen_pointer = strchr(current_command_args, code);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user