Calculate Fletcher Checksums at compile time from string.
authorAdam Green <adamgr@foo.bar>
Wed, 30 Jan 2013 05:20:59 +0000 (21:20 -0800)
committerAdam Green <adamgr@foo.bar>
Wed, 30 Jan 2013 05:20:59 +0000 (21:20 -0800)
You can now just call CHECKSUM macro like the following to have the checksum
calculated for you at compile time:
 #define enable_checksum CHECKSUM("enable")

This uses a set of recursive macros from src/libs/checksumm.h to inline the
checksum calculation and then the compiler uses constant folding in optimized
builds (-O1 or higher) to pre-calculate the values.

NOTE: The macros in checksumm.h currently only support a maximum string length
      of 32 characters.  If you exceed this, the macros will return a fixed value
      of 0xFFFF which won't match your string.  You should keep your
      checksummed strings below this length.

I took a copy of main.bin from before I starting making these changes and then
kept running builds and verifying that the new main.bin was exactly the same
as the original.  This means that it created the same checksums and didn't grow
the binary size at all.

20 files changed:
src/libs/Config.cpp
src/libs/Config.h
src/libs/Kernel.cpp
src/libs/checksumm.h [new file with mode: 0644]
src/modules/communication/SerialConsole.h
src/modules/robot/Planner.h
src/modules/robot/Robot.h
src/modules/robot/Stepper.h
src/modules/robot/arm_solutions/CartesianSolution.h
src/modules/tools/endstops/Endstops.h
src/modules/tools/extruder/Extruder.h
src/modules/tools/laser/Laser.h
src/modules/tools/switch/Switch.h
src/modules/tools/switch/SwitchPool.h
src/modules/tools/temperaturecontrol/TemperatureControl.h
src/modules/tools/temperaturecontrol/TemperatureControlPool.h
src/modules/utils/configurator/Configurator.h
src/modules/utils/currentcontrol/CurrentControl.h
src/modules/utils/pausebutton/PauseButton.h
src/modules/utils/simpleshell/SimpleShell.h

index 3d85848..f4e5484 100644 (file)
@@ -50,8 +50,8 @@ void Config::set_string( string setting, string value ){
 void Config::get_module_list(vector<uint16_t>* list, uint16_t family){
     for( unsigned int i=1; i<this->config_cache.size(); i++){
         ConfigValue* value = this->config_cache.at(i);
-        //if( value->check_sums.size() == 3 && value->check_sums.at(2) == 29545 && value->check_sums.at(0) == family ){
-        if( value->check_sums[2] == 29545 && value->check_sums[0] == family ){
+        //if( value->check_sums.size() == 3 && value->check_sums.at(2) == CHECKSUM("enable") && value->check_sums.at(0) == family ){
+        if( value->check_sums[2] == CHECKSUM("enable") && value->check_sums[0] == family ){
             // We found a module enable for this family, add it's number
             list->push_back(value->check_sums[1]);
         }
index 05c9b3a..f2da3fe 100644 (file)
@@ -14,6 +14,7 @@
 #include "ConfigCache.h"
 #include "ConfigSource.h"
 #include "libs/ConfigSources/FileConfigSource.h"
+#include "checksumm.h"
 
 #define error(...) (fprintf(stderr, __VA_ARGS__), exit(1))
 
index b3aafaf..a9c4137 100644 (file)
@@ -26,9 +26,8 @@
 
 
 
-// List of callback functions, ordered as their corresponding events
-#define baud_rate_setting_checksum 10922
-#define uart0_checksum             16877
+#define baud_rate_setting_checksum CHECKSUM("baud_rate")
+#define uart0_checksum             CHECKSUM("uart0")
 
 // The kernel is the central point in Smoothie : it stores modules, and handles event calls
 Kernel::Kernel(){
diff --git a/src/libs/checksumm.h b/src/libs/checksumm.h
new file mode 100644 (file)
index 0000000..40e0ccb
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+    Copyright 2013 Adam Green (https://github.com/adamgreen)
+
+    This file is part of Smoothie (http://smoothieware.org/)
+    The motion control part is heavily based on Grbl (https://github.com/simen/grbl)
+
+    Smoothie is free software: you can redistribute it and/or modify it under
+    the terms of the GNU General Public License as published by the Free
+    Software Foundation, either version 3 of the License, or (at your option)
+    any later version.
+
+    Smoothie is distributed in the hope that it will be useful, but WITHOUT ANY
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+    details.
+
+    You should have received a copy of the GNU General Public License along
+    with Smoothie. If not, see <http://www.gnu.org/licenses/>.
+*/
+/* Calculates Fletcher Checksum at compile time using recursive macros. */
+#ifndef _CHECKSUM_MACRO_H_
+#define _CHECKSUM_MACRO_H_
+
+/* Recursively define SUM1, the basic checksum % 255 */
+#define SUM1_1(X) ((X)[0] % 255)
+#define SUM1_2(X) ((SUM1_1(X) + (X)[1]) % 255)
+#define SUM1_3(X) ((SUM1_2(X) + (X)[2]) % 255)
+#define SUM1_4(X) ((SUM1_3(X) + (X)[3]) % 255)
+#define SUM1_5(X) ((SUM1_4(X) + (X)[4]) % 255)
+#define SUM1_6(X) ((SUM1_5(X) + (X)[5]) % 255)
+#define SUM1_7(X) ((SUM1_6(X) + (X)[6]) % 255)
+#define SUM1_8(X) ((SUM1_7(X) + (X)[7]) % 255)
+#define SUM1_9(X) ((SUM1_8(X) + (X)[8]) % 255)
+#define SUM1_10(X) ((SUM1_9(X) + (X)[9]) % 255)
+#define SUM1_11(X) ((SUM1_10(X) + (X)[10]) % 255)
+#define SUM1_12(X) ((SUM1_11(X) + (X)[11]) % 255)
+#define SUM1_13(X) ((SUM1_12(X) + (X)[12]) % 255)
+#define SUM1_14(X) ((SUM1_13(X) + (X)[13]) % 255)
+#define SUM1_15(X) ((SUM1_14(X) + (X)[14]) % 255)
+#define SUM1_16(X) ((SUM1_15(X) + (X)[15]) % 255)
+#define SUM1_17(X) ((SUM1_16(X) + (X)[16]) % 255)
+#define SUM1_18(X) ((SUM1_17(X) + (X)[17]) % 255)
+#define SUM1_19(X) ((SUM1_18(X) + (X)[18]) % 255)
+#define SUM1_20(X) ((SUM1_19(X) + (X)[19]) % 255)
+#define SUM1_21(X) ((SUM1_20(X) + (X)[20]) % 255)
+#define SUM1_22(X) ((SUM1_21(X) + (X)[21]) % 255)
+#define SUM1_23(X) ((SUM1_22(X) + (X)[22]) % 255)
+#define SUM1_24(X) ((SUM1_23(X) + (X)[23]) % 255)
+#define SUM1_25(X) ((SUM1_24(X) + (X)[24]) % 255)
+#define SUM1_26(X) ((SUM1_25(X) + (X)[25]) % 255)
+#define SUM1_27(X) ((SUM1_26(X) + (X)[26]) % 255)
+#define SUM1_28(X) ((SUM1_27(X) + (X)[27]) % 255)
+#define SUM1_29(X) ((SUM1_28(X) + (X)[28]) % 255)
+#define SUM1_30(X) ((SUM1_29(X) + (X)[29]) % 255)
+#define SUM1_31(X) ((SUM1_30(X) + (X)[30]) % 255)
+#define SUM1_32(X) ((SUM1_31(X) + (X)[31]) % 255)
+
+/* Recursively define SUM2, the sum of SUM1s % 255 */
+#define SUM2_1(X) (SUM1_1(X) % 255)
+#define SUM2_2(X) ((SUM2_1(X) + SUM1_2(X)) % 255)
+#define SUM2_3(X) ((SUM2_2(X) + SUM1_3(X)) % 255)
+#define SUM2_4(X) ((SUM2_3(X) + SUM1_4(X)) % 255)
+#define SUM2_5(X) ((SUM2_4(X) + SUM1_5(X)) % 255)
+#define SUM2_6(X) ((SUM2_5(X) + SUM1_6(X)) % 255)
+#define SUM2_7(X) ((SUM2_6(X) + SUM1_7(X)) % 255)
+#define SUM2_8(X) ((SUM2_7(X) + SUM1_8(X)) % 255)
+#define SUM2_9(X) ((SUM2_8(X) + SUM1_9(X)) % 255)
+#define SUM2_10(X) ((SUM2_9(X) + SUM1_10(X)) % 255)
+#define SUM2_11(X) ((SUM2_10(X) + SUM1_11(X)) % 255)
+#define SUM2_12(X) ((SUM2_11(X) + SUM1_12(X)) % 255)
+#define SUM2_13(X) ((SUM2_12(X) + SUM1_13(X)) % 255)
+#define SUM2_14(X) ((SUM2_13(X) + SUM1_14(X)) % 255)
+#define SUM2_15(X) ((SUM2_14(X) + SUM1_15(X)) % 255)
+#define SUM2_16(X) ((SUM2_15(X) + SUM1_16(X)) % 255)
+#define SUM2_17(X) ((SUM2_16(X) + SUM1_17(X)) % 255)
+#define SUM2_18(X) ((SUM2_17(X) + SUM1_18(X)) % 255)
+#define SUM2_19(X) ((SUM2_18(X) + SUM1_19(X)) % 255)
+#define SUM2_20(X) ((SUM2_19(X) + SUM1_20(X)) % 255)
+#define SUM2_21(X) ((SUM2_20(X) + SUM1_21(X)) % 255)
+#define SUM2_22(X) ((SUM2_21(X) + SUM1_22(X)) % 255)
+#define SUM2_23(X) ((SUM2_22(X) + SUM1_23(X)) % 255)
+#define SUM2_24(X) ((SUM2_23(X) + SUM1_24(X)) % 255)
+#define SUM2_25(X) ((SUM2_24(X) + SUM1_25(X)) % 255)
+#define SUM2_26(X) ((SUM2_25(X) + SUM1_26(X)) % 255)
+#define SUM2_27(X) ((SUM2_26(X) + SUM1_27(X)) % 255)
+#define SUM2_28(X) ((SUM2_27(X) + SUM1_28(X)) % 255)
+#define SUM2_29(X) ((SUM2_28(X) + SUM1_29(X)) % 255)
+#define SUM2_30(X) ((SUM2_29(X) + SUM1_30(X)) % 255)
+#define SUM2_31(X) ((SUM2_30(X) + SUM1_31(X)) % 255)
+#define SUM2_32(X) ((SUM2_31(X) + SUM1_32(X)) % 255)
+
+/* Define overall checksum as 16-bit combination of SUM1 in lower 8-bits and SUM2 in upper 8-bits. */
+#define CHECKSUM_(SUM1,SUM2) (SUM1) | (SUM2 << 8)
+#define CHECKSUM_1(X) CHECKSUM_(SUM1_1(X),SUM2_1(X))
+#define CHECKSUM_2(X) CHECKSUM_(SUM1_2(X),SUM2_2(X))
+#define CHECKSUM_3(X) CHECKSUM_(SUM1_3(X),SUM2_3(X))
+#define CHECKSUM_4(X) CHECKSUM_(SUM1_4(X),SUM2_4(X))
+#define CHECKSUM_5(X) CHECKSUM_(SUM1_5(X),SUM2_5(X))
+#define CHECKSUM_6(X) CHECKSUM_(SUM1_6(X),SUM2_6(X))
+#define CHECKSUM_7(X) CHECKSUM_(SUM1_7(X),SUM2_7(X))
+#define CHECKSUM_8(X) CHECKSUM_(SUM1_8(X),SUM2_8(X))
+#define CHECKSUM_9(X) CHECKSUM_(SUM1_9(X),SUM2_9(X))
+#define CHECKSUM_10(X) CHECKSUM_(SUM1_10(X),SUM2_10(X))
+#define CHECKSUM_11(X) CHECKSUM_(SUM1_11(X),SUM2_11(X))
+#define CHECKSUM_12(X) CHECKSUM_(SUM1_12(X),SUM2_12(X))
+#define CHECKSUM_13(X) CHECKSUM_(SUM1_13(X),SUM2_13(X))
+#define CHECKSUM_14(X) CHECKSUM_(SUM1_14(X),SUM2_14(X))
+#define CHECKSUM_15(X) CHECKSUM_(SUM1_15(X),SUM2_15(X))
+#define CHECKSUM_16(X) CHECKSUM_(SUM1_16(X),SUM2_16(X))
+#define CHECKSUM_17(X) CHECKSUM_(SUM1_17(X),SUM2_17(X))
+#define CHECKSUM_18(X) CHECKSUM_(SUM1_18(X),SUM2_18(X))
+#define CHECKSUM_19(X) CHECKSUM_(SUM1_19(X),SUM2_19(X))
+#define CHECKSUM_20(X) CHECKSUM_(SUM1_20(X),SUM2_20(X))
+#define CHECKSUM_21(X) CHECKSUM_(SUM1_21(X),SUM2_21(X))
+#define CHECKSUM_22(X) CHECKSUM_(SUM1_22(X),SUM2_22(X))
+#define CHECKSUM_23(X) CHECKSUM_(SUM1_23(X),SUM2_23(X))
+#define CHECKSUM_24(X) CHECKSUM_(SUM1_24(X),SUM2_24(X))
+#define CHECKSUM_25(X) CHECKSUM_(SUM1_25(X),SUM2_25(X))
+#define CHECKSUM_26(X) CHECKSUM_(SUM1_26(X),SUM2_26(X))
+#define CHECKSUM_27(X) CHECKSUM_(SUM1_27(X),SUM2_27(X))
+#define CHECKSUM_28(X) CHECKSUM_(SUM1_28(X),SUM2_28(X))
+#define CHECKSUM_29(X) CHECKSUM_(SUM1_29(X),SUM2_29(X))
+#define CHECKSUM_30(X) CHECKSUM_(SUM1_30(X),SUM2_30(X))
+#define CHECKSUM_31(X) CHECKSUM_(SUM1_31(X),SUM2_31(X))
+#define CHECKSUM_32(X) CHECKSUM_(SUM1_32(X),SUM2_32(X))
+
+#define CHECKSUM(X) (sizeof(X) == 0 ? 0 : \
+                     sizeof(X) == 1 ? 0 : \
+                     sizeof(X) == 2 ? CHECKSUM_1(X) : \
+                     sizeof(X) == 3 ? CHECKSUM_2(X) : \
+                     sizeof(X) == 4 ? CHECKSUM_3(X) : \
+                     sizeof(X) == 5 ? CHECKSUM_4(X) : \
+                     sizeof(X) == 6 ? CHECKSUM_5(X) : \
+                     sizeof(X) == 7 ? CHECKSUM_6(X) : \
+                     sizeof(X) == 8 ? CHECKSUM_7(X) : \
+                     sizeof(X) == 9 ? CHECKSUM_8(X) : \
+                     sizeof(X) == 10 ? CHECKSUM_9(X) : \
+                     sizeof(X) == 11 ? CHECKSUM_10(X) : \
+                     sizeof(X) == 12 ? CHECKSUM_11(X) : \
+                     sizeof(X) == 13 ? CHECKSUM_12(X) : \
+                     sizeof(X) == 14 ? CHECKSUM_13(X) : \
+                     sizeof(X) == 15 ? CHECKSUM_14(X) : \
+                     sizeof(X) == 16 ? CHECKSUM_15(X) : \
+                     sizeof(X) == 17 ? CHECKSUM_16(X) : \
+                     sizeof(X) == 18 ? CHECKSUM_17(X) : \
+                     sizeof(X) == 19 ? CHECKSUM_18(X) : \
+                     sizeof(X) == 20 ? CHECKSUM_19(X) : \
+                     sizeof(X) == 21 ? CHECKSUM_20(X) : \
+                     sizeof(X) == 22 ? CHECKSUM_21(X) : \
+                     sizeof(X) == 23 ? CHECKSUM_22(X) : \
+                     sizeof(X) == 24 ? CHECKSUM_23(X) : \
+                     sizeof(X) == 25 ? CHECKSUM_24(X) : \
+                     sizeof(X) == 26 ? CHECKSUM_25(X) : \
+                     sizeof(X) == 27 ? CHECKSUM_26(X) : \
+                     sizeof(X) == 28 ? CHECKSUM_27(X) : \
+                     sizeof(X) == 29 ? CHECKSUM_28(X) : \
+                     sizeof(X) == 30 ? CHECKSUM_29(X) : \
+                     sizeof(X) == 31 ? CHECKSUM_30(X) : \
+                     sizeof(X) == 32 ? CHECKSUM_31(X) : \
+                     sizeof(X) == 33 ? CHECKSUM_32(X) : \
+                     0xFFFF)
+
+#endif /* _CHECKSUM_MACRO_H_ */
index 02c2292..6dfbcb4 100644 (file)
@@ -18,7 +18,7 @@ using std::string;
 #include "libs/StreamOutput.h"
 
 
-#define baud_rate_setting_checksum 10922
+#define baud_rate_setting_checksum CHECKSUM("baud_rate")
 
 class SerialConsole : public Module, public StreamOutput {
     public:
index f3fbc15..44cfbc1 100644 (file)
@@ -13,9 +13,9 @@
 #include "../communication/utils/Gcode.h"
 #include "Block.h"
 
-#define acceleration_checksum       25326
-#define max_jerk_checksum           61012
-#define junction_deviation_checksum 6035
+#define acceleration_checksum       CHECKSUM("acceleration")
+#define max_jerk_checksum           CHECKSUM("max_jerk")
+#define junction_deviation_checksum CHECKSUM("junction_deviation")
 
 // TODO: Get from config
 #define MINIMUM_PLANNER_SPEED 0.0
index 44dd130..2172922 100644 (file)
@@ -19,14 +19,14 @@ using std::string;
 #include "libs/StepperMotor.h"
 
 
-#define default_seek_rate_checksum             47357
-#define default_feed_rate_checksum             6633
-#define mm_per_line_segment_checksum           30176
-#define mm_per_arc_segment_checksum            15470
-#define arc_correction_checksum                5074
-#define x_axis_max_speed_checksum              64935
-#define y_axis_max_speed_checksum              3752
-#define z_axis_max_speed_checksum              7849
+#define default_seek_rate_checksum             CHECKSUM("default_seek_rate")
+#define default_feed_rate_checksum             CHECKSUM("default_feed_rate")
+#define mm_per_line_segment_checksum           CHECKSUM("mm_per_line_segment")
+#define mm_per_arc_segment_checksum            CHECKSUM("mm_per_arc_segment")
+#define arc_correction_checksum                CHECKSUM("arc_correction")
+#define x_axis_max_speed_checksum              CHECKSUM("x_axis_max_speed")
+#define y_axis_max_speed_checksum              CHECKSUM("y_axis_max_speed")
+#define z_axis_max_speed_checksum              CHECKSUM("z_axis_max_speed")
 
 #define NEXT_ACTION_DEFAULT 0
 #define NEXT_ACTION_DWELL 1
index 55e0d6c..e90ec1f 100644 (file)
 #include "Planner.h"
 #include "Block.h"
 
-#define microseconds_per_step_pulse_checksum        42333
-#define acceleration_ticks_per_second_checksum      25075
-#define minimum_steps_per_minute_checksum           9003
-#define base_stepping_frequency_checksum            21918
-#define alpha_step_pin_checksum                     11468
-#define beta_step_pin_checksum                      22114
-#define gamma_step_pin_checksum                     1225
-#define alpha_dir_pin_checksum                      55887
-#define beta_dir_pin_checksum                       28644
-#define gamma_dir_pin_checksum                      46412
-#define alpha_en_pin_checksum                       35042
-#define beta_en_pin_checksum                        34680
-#define gamma_en_pin_checksum                       26335
+#define microseconds_per_step_pulse_checksum        CHECKSUM("microseconds_per_step_pulse")
+#define acceleration_ticks_per_second_checksum      CHECKSUM("acceleration_ticks_per_second")
+#define minimum_steps_per_minute_checksum           CHECKSUM("minimum_steps_per_minute")
+#define base_stepping_frequency_checksum            CHECKSUM("base_stepping_frequency")
+#define alpha_step_pin_checksum                     CHECKSUM("alpha_step_pin")
+#define beta_step_pin_checksum                      CHECKSUM("beta_step_pin")
+#define gamma_step_pin_checksum                     CHECKSUM("gamma_step_pin")
+#define alpha_dir_pin_checksum                      CHECKSUM("alpha_dir_pin")
+#define beta_dir_pin_checksum                       CHECKSUM("beta_dir_pin")
+#define gamma_dir_pin_checksum                      CHECKSUM("gamma_dir_pin")
+#define alpha_en_pin_checksum                       CHECKSUM("alpha_en_pin")
+#define beta_en_pin_checksum                        CHECKSUM("beta_en_pin")
+#define gamma_en_pin_checksum                       CHECKSUM("gamma_en_pin")
 
 
 class Stepper : public Module {
index aaa5507..00e04cd 100644 (file)
@@ -7,9 +7,9 @@
 
 #include "libs/Config.h"
 
-#define alpha_steps_per_mm_checksum 46458
-#define beta_steps_per_mm_checksum  13840
-#define gamma_steps_per_mm_checksum 33143
+#define alpha_steps_per_mm_checksum CHECKSUM("alpha_steps_per_mm")
+#define beta_steps_per_mm_checksum  CHECKSUM("beta_steps_per_mm")
+#define gamma_steps_per_mm_checksum CHECKSUM("gamma_steps_per_mm")
 
 class CartesianSolution : public BaseSolution {
     public:
index cebcc1e..69ade57 100644 (file)
 #define MOVING_BACK 2
 #define MOVING_TO_ORIGIN_SLOW 3
 
-#define alpha_min_endstop_checksum       28684
-#define beta_min_endstop_checksum        23457
-#define gamma_min_endstop_checksum       16137
-
-#define alpha_max_endstop_checksum       31246
-#define beta_max_endstop_checksum        26019
-#define gamma_max_endstop_checksum       18699
-
-#define alpha_fast_homing_rate_checksum  19720
-#define beta_fast_homing_rate_checksum   9373
-#define gamma_fast_homing_rate_checksum  3333
-
-#define alpha_slow_homing_rate_checksum  45599
-#define beta_slow_homing_rate_checksum   35252
-#define gamma_slow_homing_rate_checksum  29212
-
-#define alpha_homing_retract_checksum    4419
-#define beta_homing_retract_checksum     48344
-#define gamma_homing_retract_checksum    54848
-#define endstop_debounce_count_checksum  25394
+#define alpha_min_endstop_checksum       CHECKSUM("alpha_min_endstop")
+#define beta_min_endstop_checksum        CHECKSUM("beta_min_endstop")
+#define gamma_min_endstop_checksum       CHECKSUM("gamma_min_endstop")
+
+#define alpha_max_endstop_checksum       CHECKSUM("alpha_max_endstop")
+#define beta_max_endstop_checksum        CHECKSUM("beta_max_endstop")
+#define gamma_max_endstop_checksum       CHECKSUM("gamma_max_endstop")
+
+#define alpha_fast_homing_rate_checksum  CHECKSUM("alpha_fast_homing_rate")
+#define beta_fast_homing_rate_checksum   CHECKSUM("beta_fast_homing_rate")
+#define gamma_fast_homing_rate_checksum  CHECKSUM("gamma_fast_homing_rate")
+
+#define alpha_slow_homing_rate_checksum  CHECKSUM("alpha_slow_homing_rate")
+#define beta_slow_homing_rate_checksum   CHECKSUM("beta_slow_homing_rate")
+#define gamma_slow_homing_rate_checksum  CHECKSUM("gamma_slow_homing_rate")
+
+#define alpha_homing_retract_checksum    CHECKSUM("alpha_homing_retract")
+#define beta_homing_retract_checksum     CHECKSUM("beta_homing_retract")
+#define gamma_homing_retract_checksum    CHECKSUM("gamma_homing_retract")
+#define endstop_debounce_count_checksum  CHECKSUM("endstop_debounce_count")
 
 
 class Endstops : public Module{
index 023a48c..e127c24 100644 (file)
 #include "libs/Kernel.h"
 #include "modules/robot/Block.h"
 
-#define microseconds_per_step_pulse_checksum 42333
-#define extruder_module_enable_checksum       6183
-#define extruder_steps_per_mm_checksum       58088
-#define extruder_acceleration_checksum       60356
-#define extruder_step_pin_checksum           40763
-#define extruder_dir_pin_checksum            57277
-#define extruder_en_pin_checksum              8017
-#define extruder_max_speed_checksum          54671
+#define microseconds_per_step_pulse_checksum CHECKSUM("microseconds_per_step_pulse")
+#define extruder_module_enable_checksum      CHECKSUM("extruder_module_enable")
+#define extruder_steps_per_mm_checksum       CHECKSUM("extruder_steps_per_mm")
+#define extruder_acceleration_checksum       CHECKSUM("extruder_acceleration")
+#define extruder_step_pin_checksum           CHECKSUM("extruder_step_pin")
+#define extruder_dir_pin_checksum            CHECKSUM("extruder_dir_pin")
+#define extruder_en_pin_checksum             CHECKSUM("extruder_en_pin")
+#define extruder_max_speed_checksum          CHECKSUM("extruder_max_speed")
 
 // default_feed_rate_checksum defined by Robot.h
 
index 2d0d90a..eef2acb 100644 (file)
@@ -14,9 +14,9 @@
 #include "modules/communication/utils/Gcode.h"
 
 
-#define laser_module_enable_checksum 35529
-#define laser_module_max_power_checksum 14134
-#define laser_module_tickle_power_checksum 63341
+#define laser_module_enable_checksum        CHECKSUM("laser_module_enable")
+#define laser_module_max_power_checksum     CHECKSUM("laser_module_max_power")
+#define laser_module_tickle_power_checksum  CHECKSUM("laser_module_tickle_power")
 
 class Laser : public Module{
     public:
index 2f73b94..25ae20e 100644 (file)
 #include "libs/Pin.h"
 #include <math.h>
 
-#define    switch_checksum            15508
-#define    on_m_code_checksum         29094
-#define    off_m_code_checksum        14853
-#define    output_pin_checksum        18779
-#define    startup_state_checksum     37528
+#define    switch_checksum            CHECKSUM("switch")
+#define    on_m_code_checksum         CHECKSUM("on_m_code")
+#define    off_m_code_checksum        CHECKSUM("off_m_code")
+#define    output_pin_checksum        CHECKSUM("output_pin")
+#define    startup_state_checksum     CHECKSUM("startup_state")
 
 class Switch : public Module {
     public:
index 01f629e..85f11f1 100644 (file)
@@ -13,8 +13,8 @@
 using namespace std;
 #include <vector>
 
-#define switch_checksum              15508
-#define enable_checksum              29545
+#define switch_checksum            CHECKSUM("switch")
+#define enable_checksum            CHECKSUM("enable")
 
 class SwitchPool : public Module {
     public:
index f9356b5..c216890 100644 (file)
 
 #define UNDEFINED -1
 
-#define thermistor_checksum                41045
-#define r0_checksum                        5538
-#define readings_per_second_checksum       18645
-#define t0_checksum                        6564
-#define beta_checksum                      1181
-#define vadc_checksum                      10911
-#define vcc_checksum                       36157
-#define r1_checksum                        5795
-#define r2_checksum                        6052
-#define temperature_control_checksum       44054
-#define thermistor_pin_checksum            1788
-#define heater_pin_checksum                35619
-
-#define get_m_code_checksum                20746
-#define set_m_code_checksum                51478
-#define set_and_wait_m_code_checksum       4287
-
-#define designator_checksum                49716
-
-#define p_factor_checksum                   43089
-#define i_factor_checksum                   28746
-#define d_factor_checksum                   18501
-
-#define i_max_checksum                      4112
+#define thermistor_checksum                CHECKSUM("thermistor")
+#define r0_checksum                        CHECKSUM("r0")
+#define readings_per_second_checksum       CHECKSUM("readings_per_second")
+#define t0_checksum                        CHECKSUM("t0")
+#define beta_checksum                      CHECKSUM("beta")
+#define vadc_checksum                      CHECKSUM("vadc")
+#define vcc_checksum                       CHECKSUM("vcc")
+#define r1_checksum                        CHECKSUM("r1")
+#define r2_checksum                        CHECKSUM("r2")
+#define temperature_control_checksum       CHECKSUM("temperature_control")
+#define thermistor_pin_checksum            CHECKSUM("thermistor_pin")
+#define heater_pin_checksum                CHECKSUM("heater_pin")
+
+#define get_m_code_checksum                CHECKSUM("get_m_code")
+#define set_m_code_checksum                CHECKSUM("set_m_code")
+#define set_and_wait_m_code_checksum       CHECKSUM("set_and_wait_m_code")
+
+#define designator_checksum                CHECKSUM("designator")
+
+#define p_factor_checksum                  CHECKSUM("p_factor")
+#define i_factor_checksum                  CHECKSUM("i_factor")
+#define d_factor_checksum                  CHECKSUM("d_factor")
+
+#define i_max_checksum                     CHECKSUM("i_max")
 
 #define QUEUE_LEN 8
 
index 80a59c4..848f9e7 100644 (file)
@@ -14,8 +14,8 @@
 using namespace std;
 #include <vector>
 
-#define temperature_control_checksum 44054
-#define enable_checksum              29545
+#define temperature_control_checksum CHECKSUM("temperature_control")
+#define enable_checksum              CHECKSUM("enable")
 
 class TemperatureControlPool : public Module {
     public:
index b0214d5..e945126 100644 (file)
@@ -20,9 +20,9 @@
 #define CONF_SD         2
 #define CONF_EEPROM     3
 
-#define config_get_command_checksum        46310    // "config-get"
-#define config_set_command_checksum        55538    // "config-set"
-#define config_load_command_checksum       3143     // "config-load"
+#define config_get_command_checksum        CHECKSUM("config-get")
+#define config_set_command_checksum        CHECKSUM("config-set")
+#define config_load_command_checksum       CHECKSUM("config-load")
 
 class Configurator : public Module {
     public:
index 0a8946e..0ed03b3 100644 (file)
@@ -6,11 +6,11 @@
 #include "libs/utils.h"
 #include "libs/Pin.h"
 
-#define alpha_current_checksum   22381
-#define beta_current_checksum    60163
-#define gamma_current_checksum   12906
-#define delta_current_checksum   30321
-#define currentcontrol_module_enable_checksum 38842
+#define alpha_current_checksum                  CHECKSUM("alpha_current")
+#define beta_current_checksum                   CHECKSUM("beta_current")
+#define gamma_current_checksum                  CHECKSUM("gamma_current")
+#define delta_current_checksum                  CHECKSUM("delta_current")
+#define currentcontrol_module_enable_checksum   CHECKSUM("currentcontrol_module_enable")
 
 class CurrentControl : public Module {
     public:
index 50e0b9d..20203f3 100644 (file)
@@ -6,9 +6,9 @@
 #include "libs/utils.h"
 #include "libs/Pin.h"
 
-#define pause_button_enable_checksum 55526
-#define pause_button_pin_checksum 32709
-#define pause_led_pin_checksum    48477
+#define pause_button_enable_checksum CHECKSUM("pause_button_enable")
+#define pause_button_pin_checksum    CHECKSUM("pause_button_pin")
+#define pause_led_pin_checksum       CHECKSUM("pause_led_pin")
 
 class PauseButton : public Module {
     public:
index 0857638..9a0ee7e 100644 (file)
 #include "libs/StreamOutput.h"
 
 
-#define ls_command_checksum      19679
-#define cd_command_checksum      11207
-#define pwd_command_checksum     42060
-#define cat_command_checksum     24889
-#define play_command_checksum    17335
-#define reset_command_checksum   27429
-#define dfu_command_checksum     28480
+#define ls_command_checksum      CHECKSUM("ls")
+#define cd_command_checksum      CHECKSUM("cd")
+#define pwd_command_checksum     CHECKSUM("pwd")
+#define cat_command_checksum     CHECKSUM("cat")
+#define play_command_checksum    CHECKSUM("play")
+#define reset_command_checksum   CHECKSUM("reset")
+#define dfu_command_checksum     CHECKSUM("dfu")
 
 class SimpleShell : public Module {
     public: