From 4980ecc1f76d8e8952ec5acfae33854f6f81acdf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 8 Jun 2016 17:03:28 -0700 Subject: [PATCH] Smaller binary using inline gcode argument getters --- Marlin/Marlin.h | 11 --------- Marlin/Marlin_main.cpp | 52 +++++++++++++++--------------------------- 2 files changed, 19 insertions(+), 44 deletions(-) diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h index 5e0b6bfb9..7b275b0cb 100644 --- a/Marlin/Marlin.h +++ b/Marlin/Marlin.h @@ -291,20 +291,9 @@ extern bool axis_homed[3]; // axis[n].is_homed // GCode support for external objects bool code_seen(char); -float code_value_float(); -unsigned long code_value_ulong(); -long code_value_long(); 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_diff(); -millis_t code_value_millis(); -millis_t code_value_millis_from_seconds(); #if ENABLED(DELTA) extern float delta[3]; diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index cb14abe39..475dea4aa 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1167,7 +1167,7 @@ void get_available_commands() { #endif } -bool code_has_value() { +inline bool code_has_value() { int i = 1; char c = seen_pointer[i]; while (c == ' ') c = seen_pointer[++i]; @@ -1176,7 +1176,7 @@ bool code_has_value() { return NUMERIC(c); } -float code_value_float() { +inline float code_value_float() { float ret; char* e = strchr(seen_pointer, 'E'); if (e) { @@ -1189,20 +1189,20 @@ float code_value_float() { 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) - void set_input_linear_units(LinearUnit units) { + inline void set_input_linear_units(LinearUnit units) { switch (units) { case LINEARUNIT_INCH: 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); } - 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); } - float code_value_linear_units() { - return code_value_float() * linear_unit_factor; - } - - float code_value_per_axis_unit(int axis) { - return code_value_float() / axis_unit_factor(axis); - } + inline float code_value_linear_units() { 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_axis_units(int axis) { - return code_value_float() * axis_unit_factor(axis); - } #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 #if ENABLED(TEMPERATURE_UNITS_SUPPORT) - void set_input_temp_units(TempUnit units) { - input_temp_units = units; - } + inline void set_input_temp_units(TempUnit units) { input_temp_units = units; } float code_value_temp_abs() { 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(); } #endif -millis_t code_value_millis() { - return code_value_ulong(); -} - -millis_t code_value_millis_from_seconds() { - return code_value_float() * 1000; -} +inline millis_t code_value_millis() { return code_value_ulong(); } +inline millis_t code_value_millis_from_seconds() { return code_value_float() * 1000; } bool code_seen(char code) { seen_pointer = strchr(current_command_args, code);