Public data does not need to be a module or have an instance, it is just a library.
authorJim Morris <morris@wolfman.com>
Sat, 14 Jun 2014 08:11:53 +0000 (01:11 -0700)
committerJim Morris <morris@wolfman.com>
Sat, 14 Jun 2014 08:11:53 +0000 (01:11 -0700)
12 files changed:
src/libs/Kernel.cpp
src/libs/Kernel.h
src/libs/PublicData.h
src/modules/tools/temperaturecontrol/PID_Autotuner.cpp
src/modules/tools/temperaturecontrol/TemperatureControl.cpp
src/modules/tools/zprobe/ZProbe.cpp
src/modules/utils/panel/Panel.cpp
src/modules/utils/panel/screens/ControlScreen.cpp
src/modules/utils/panel/screens/MainMenuScreen.cpp
src/modules/utils/panel/screens/PrepareScreen.cpp
src/modules/utils/panel/screens/WatchScreen.cpp
src/modules/utils/simpleshell/SimpleShell.cpp

index ebc2458..31bb5fd 100644 (file)
@@ -131,7 +131,6 @@ Kernel::Kernel(){
     this->add_module( this->planner        = new Planner()       );
     this->add_module( this->conveyor       = new Conveyor()      );
     this->add_module( this->pauser         = new Pauser()        );
-    this->add_module( this->public_data    = new PublicData()    );
 }
 
 // Add a module to Kernel. We don't actually hold a list of modules, we just tell it where Kernel is
index 728800a..e33b868 100644 (file)
@@ -58,7 +58,6 @@ class Kernel {
         SlowTicker*       slow_ticker;
         StepTicker*       step_ticker;
         Adc*              adc;
-        PublicData*       public_data;
         bool              use_leds;
         std::string       current_path;
 
index 62b3855..fe52e10 100644 (file)
@@ -8,19 +8,17 @@
 #ifndef PUBLICDATA_H
 #define PUBLICDATA_H
 
-#include "Module.h"
-
-class PublicData : public Module {
+class PublicData {
     public:
-        bool get_value(uint16_t csa, void **data) { return get_value(csa, 0, 0, data); }
-        bool get_value(uint16_t csa, uint16_t csb, void **data) { return get_value(csa, csb, 0, data); }
-        bool get_value(uint16_t cs[3], void **data) { return get_value(cs[0], cs[1], cs[2], data); };
-        bool get_value(uint16_t csa, uint16_t csb, uint16_t csc, void **data);
+        static bool get_value(uint16_t csa, void **data) { return get_value(csa, 0, 0, data); }
+        static bool get_value(uint16_t csa, uint16_t csb, void **data) { return get_value(csa, csb, 0, data); }
+        static bool get_value(uint16_t cs[3], void **data) { return get_value(cs[0], cs[1], cs[2], data); };
+        static bool get_value(uint16_t csa, uint16_t csb, uint16_t csc, void **data);
 
-        bool set_value(uint16_t csa, void *data) { return set_value(csa, 0, 0, data); }
-        bool set_value(uint16_t csa, uint16_t csb, void *data) { return set_value(csa, csb, 0, data); }
-        bool set_value(uint16_t cs[3], void *data) { return set_value(cs[0], cs[1], cs[2], data); }
-        bool set_value(uint16_t csa, uint16_t csb, uint16_t csc, void *data);
+        static bool set_value(uint16_t csa, void *data) { return set_value(csa, 0, 0, data); }
+        static bool set_value(uint16_t csa, uint16_t csb, void *data) { return set_value(csa, csb, 0, data); }
+        static bool set_value(uint16_t cs[3], void *data) { return set_value(cs[0], cs[1], cs[2], data); }
+        static bool set_value(uint16_t csa, uint16_t csb, uint16_t csc, void *data);
 };
 
 #endif
index b0ea006..353ded4 100644 (file)
@@ -106,7 +106,7 @@ void PID_Autotuner::on_gcode_received(void *argument)
 
             // get the temperature control instance with this pool index
             void *returned_data;
-            bool ok = THEKERNEL->public_data->get_value( temperature_control_checksum, pool_index_checksum, pool_index, &returned_data );
+            bool ok = PublicData::get_value( temperature_control_checksum, pool_index_checksum, pool_index, &returned_data );
 
             if (ok) {
                 this->temp_control =  *static_cast<TemperatureControl **>(returned_data);
index f53e351..aecc8b0 100644 (file)
@@ -202,7 +202,7 @@ void TemperatureControl::on_gcode_received(void *argument)
             // this is safe as old configs as well as single extruder configs the toolmanager will not be running so will return false
             // this will also ignore anything that the tool manager is not controlling and return false, otherwise it returns the active tool
             void *returned_data;
-            bool ok = THEKERNEL->public_data->get_value( tool_manager_checksum, is_active_tool_checksum, this->name_checksum, &returned_data );
+            bool ok = PublicData::get_value( tool_manager_checksum, is_active_tool_checksum, this->name_checksum, &returned_data );
             if (ok) {
                 uint16_t active_tool_name =  *static_cast<uint16_t *>(returned_data);
                 this->active = (active_tool_name == this->name_checksum);
index b310668..552d6f0 100644 (file)
@@ -560,7 +560,7 @@ void ZProbe::home()
 bool ZProbe::set_trim(float x, float y, float z, StreamOutput *stream)
 {
     float t[3]{x, y, z};
-    bool ok= THEKERNEL->public_data->set_value( endstops_checksum, trim_checksum, t);
+    bool ok= PublicData::set_value( endstops_checksum, trim_checksum, t);
 
     if (ok) {
         stream->printf("set trim to X:%f Y:%f Z:%f\n", x, y, z);
@@ -574,7 +574,7 @@ bool ZProbe::set_trim(float x, float y, float z, StreamOutput *stream)
 bool ZProbe::get_trim(float& x, float& y, float& z)
 {
     void *returned_data;
-    bool ok = THEKERNEL->public_data->get_value( endstops_checksum, trim_checksum, &returned_data );
+    bool ok = PublicData::get_value( endstops_checksum, trim_checksum, &returned_data );
 
     if (ok) {
         float *trim = static_cast<float *>(returned_data);
index 7e49046..71f663d 100644 (file)
@@ -563,7 +563,7 @@ bool Panel::is_playing() const
 {
     void *returned_data;
 
-    bool ok = THEKERNEL->public_data->get_value( player_checksum, is_playing_checksum, &returned_data );
+    bool ok = PublicData::get_value( player_checksum, is_playing_checksum, &returned_data );
     if (ok) {
         bool b = *static_cast<bool *>(returned_data);
         return b;
@@ -583,7 +583,7 @@ void  Panel::set_playing_file(string f)
 static float getTargetTemperature(uint16_t heater_cs)
 {
     void *returned_data;
-    bool ok = THEKERNEL->public_data->get_value( temperature_control_checksum, heater_cs, current_temperature_checksum, &returned_data );
+    bool ok = PublicData::get_value( temperature_control_checksum, heater_cs, current_temperature_checksum, &returned_data );
 
     if (ok) {
         struct pad_temperature temp =  *static_cast<struct pad_temperature *>(returned_data);
@@ -606,7 +606,7 @@ void Panel::setup_temperature_screen()
     for(auto i : modules) {
         if (!THEKERNEL->config->value(temperature_control_checksum, i, enable_checksum )->as_bool()) continue;
         void *returned_data;
-        bool ok = THEKERNEL->public_data->get_value( temperature_control_checksum, i, current_temperature_checksum, &returned_data );
+        bool ok = PublicData::get_value( temperature_control_checksum, i, current_temperature_checksum, &returned_data );
         if (!ok) continue;
 
         struct pad_temperature t =  *static_cast<struct pad_temperature *>(returned_data);
@@ -619,7 +619,7 @@ void Panel::setup_temperature_screen()
 
         mvs->addMenuItem(name, // menu name
             [i]() -> float { return getTargetTemperature(i); }, // getter
-            [i](float t) { THEKERNEL->public_data->set_value( temperature_control_checksum, i, &t ); }, // setter
+            [i](float t) { PublicData::set_value( temperature_control_checksum, i, &t ); }, // setter
             1.0F, // increment
             0.0F, // Min
             500.0F // Max
index 000edd4..c84cae0 100644 (file)
@@ -125,7 +125,7 @@ void ControlScreen::get_current_pos(float *cp)
 {
     void *returned_data;
 
-    bool ok = THEKERNEL->public_data->get_value( robot_checksum, current_position_checksum, &returned_data );
+    bool ok = PublicData::get_value( robot_checksum, current_position_checksum, &returned_data );
     if (ok) {
         float *p = static_cast<float *>(returned_data);
         cp[0] = p[0];
index ce8019a..9ae6cc1 100644 (file)
@@ -80,7 +80,7 @@ PanelScreen* MainMenuScreen::setupConfigureScreen()
 
     mvs->addMenuItem("E steps/mm",
         // gets steps/mm for currently active extruder
-        []() -> float { float *rd; if(THEKERNEL->public_data->get_value( extruder_checksum, (void **)&rd )) return *rd; else return 0.0F; },
+        []() -> float { float *rd; if(PublicData::get_value( extruder_checksum, (void **)&rd )) return *rd; else return 0.0F; },
         [this](float v) { send_gcode("M92", 'E', v); },
         0.1F,
         1.0F
@@ -88,7 +88,7 @@ PanelScreen* MainMenuScreen::setupConfigureScreen()
 
     mvs->addMenuItem("Filament diameter",
         // gets filament diameter for currently active extruder
-        []() -> float { float *rd; if(THEKERNEL->public_data->get_value( extruder_checksum, (void **)&rd )) return *(rd+1); else return 0.0F; },
+        []() -> float { float *rd; if(PublicData::get_value( extruder_checksum, (void **)&rd )) return *(rd+1); else return 0.0F; },
         [this](float v) { send_gcode("M200", 'D', v); },
         0.01F,
         0.0F,
@@ -96,7 +96,7 @@ PanelScreen* MainMenuScreen::setupConfigureScreen()
         );
 
     mvs->addMenuItem("Z Home Ofs",
-        []() -> float { void *rd; THEKERNEL->public_data->get_value( endstops_checksum, home_offset_checksum, &rd ); return rd==nullptr ? 0.0F : ((float*)rd)[2]; },
+        []() -> float { void *rd; PublicData::get_value( endstops_checksum, home_offset_checksum, &rd ); return rd==nullptr ? 0.0F : ((float*)rd)[2]; },
         [this](float v) { send_gcode("M206", 'Z', v); },
         0.1F
         );
@@ -150,7 +150,7 @@ void MainMenuScreen::clicked_menu_entry(uint16_t line)
 
 void MainMenuScreen::abort_playing()
 {
-    THEKERNEL->public_data->set_value(player_checksum, abort_play_checksum, NULL);
+    PublicData::set_value(player_checksum, abort_play_checksum, NULL);
     THEPANEL->enter_screen(this->watch_screen);
 }
 
index cb45b34..2682684 100644 (file)
@@ -78,16 +78,16 @@ void PrepareScreen::clicked_menu_entry(uint16_t line)
 void PrepareScreen::preheat()
 {
     float t = THEPANEL->get_default_hotend_temp();
-    THEKERNEL->public_data->set_value( temperature_control_checksum, hotend_checksum, &t );
+    PublicData::set_value( temperature_control_checksum, hotend_checksum, &t );
     t = THEPANEL->get_default_bed_temp();
-    THEKERNEL->public_data->set_value( temperature_control_checksum, bed_checksum, &t );
+    PublicData::set_value( temperature_control_checksum, bed_checksum, &t );
 }
 
 void PrepareScreen::cooldown()
 {
     float t = 0;
-    THEKERNEL->public_data->set_value( temperature_control_checksum, hotend_checksum, &t );
-    THEKERNEL->public_data->set_value( temperature_control_checksum, bed_checksum, &t );
+    PublicData::set_value( temperature_control_checksum, hotend_checksum, &t );
+    PublicData::set_value( temperature_control_checksum, bed_checksum, &t );
 }
 
 // queuing commands needs to be done from main loop
index ea8d38a..eeb012c 100644 (file)
@@ -152,7 +152,7 @@ void WatchScreen::get_temp_data()
     void *returned_data;
     bool ok;
 
-    ok = THEKERNEL->public_data->get_value( temperature_control_checksum, bed_checksum, current_temperature_checksum, &returned_data );
+    ok = PublicData::get_value( temperature_control_checksum, bed_checksum, current_temperature_checksum, &returned_data );
     if (ok) {
         struct pad_temperature temp =  *static_cast<struct pad_temperature *>(returned_data);
         this->bedtemp = round(temp.current_temperature);
@@ -166,7 +166,7 @@ void WatchScreen::get_temp_data()
     }
 
 
-    ok = THEKERNEL->public_data->get_value( temperature_control_checksum, hotend_checksum, current_temperature_checksum, &returned_data );
+    ok = PublicData::get_value( temperature_control_checksum, hotend_checksum, current_temperature_checksum, &returned_data );
     if (ok) {
         struct pad_temperature temp =  *static_cast<struct pad_temperature *>(returned_data);
         this->hotendtemp = round(temp.current_temperature);
@@ -180,7 +180,7 @@ void WatchScreen::get_temp_data()
     }
 
     // get fan status
-    ok = THEKERNEL->public_data->get_value( switch_checksum, fan_checksum, 0, &returned_data );
+    ok = PublicData::get_value( switch_checksum, fan_checksum, 0, &returned_data );
     if (ok) {
         struct pad_switch s = *static_cast<struct pad_switch *>(returned_data);
         this->fan_state = s.state;
@@ -195,7 +195,7 @@ float WatchScreen::get_current_speed()
 {
     void *returned_data;
 
-    bool ok = THEKERNEL->public_data->get_value( robot_checksum, speed_override_percent_checksum, &returned_data );
+    bool ok = PublicData::get_value( robot_checksum, speed_override_percent_checksum, &returned_data );
     if (ok) {
         float cs = *static_cast<float *>(returned_data);
         return cs;
@@ -207,7 +207,7 @@ void WatchScreen::get_current_pos(float *cp)
 {
     void *returned_data;
 
-    bool ok = THEKERNEL->public_data->get_value( robot_checksum, current_position_checksum, &returned_data );
+    bool ok = PublicData::get_value( robot_checksum, current_position_checksum, &returned_data );
     if (ok) {
         float *p = static_cast<float *>(returned_data);
         cp[0] = p[0];
@@ -219,7 +219,7 @@ void WatchScreen::get_current_pos(float *cp)
 void WatchScreen::get_sd_play_info()
 {
     void *returned_data;
-    bool ok = THEKERNEL->public_data->get_value( player_checksum, get_progress_checksum, &returned_data );
+    bool ok = PublicData::get_value( player_checksum, get_progress_checksum, &returned_data );
     if (ok) {
         struct pad_progress p =  *static_cast<struct pad_progress *>(returned_data);
         this->elapsed_time = p.elapsed_secs;
@@ -276,7 +276,7 @@ const char *WatchScreen::get_network()
 {
     void *returned_data;
 
-    bool ok = THEKERNEL->public_data->get_value( network_checksum, get_ip_checksum, &returned_data );
+    bool ok = PublicData::get_value( network_checksum, get_ip_checksum, &returned_data );
     if (ok) {
         uint8_t *ipaddr = (uint8_t *)returned_data;
         char buf[20];
index b948775..3d69f66 100644 (file)
@@ -388,7 +388,7 @@ static uint32_t getDeviceType()
 void SimpleShell::net_command( string parameters, StreamOutput *stream)
 {
     void *returned_data;
-    bool ok= THEKERNEL->public_data->get_value( network_checksum, get_ipconfig_checksum, &returned_data );
+    bool ok= PublicData::get_value( network_checksum, get_ipconfig_checksum, &returned_data );
     if(ok) {
         char *str= (char *)returned_data;
         stream->printf("%s\r\n", str);
@@ -437,7 +437,7 @@ void SimpleShell::get_command( string parameters, StreamOutput *stream)
 
     if (what == "temp") {
         string type = shift_parameter( parameters );
-        bool ok = THEKERNEL->public_data->get_value( temperature_control_checksum, get_checksum(type), current_temperature_checksum, &returned_data );
+        bool ok = PublicData::get_value( temperature_control_checksum, get_checksum(type), current_temperature_checksum, &returned_data );
 
         if (ok) {
             struct pad_temperature temp =  *static_cast<struct pad_temperature *>(returned_data);
@@ -447,7 +447,7 @@ void SimpleShell::get_command( string parameters, StreamOutput *stream)
         }
 
     } else if (what == "pos") {
-        bool ok = THEKERNEL->public_data->get_value( robot_checksum, current_position_checksum, &returned_data );
+        bool ok = PublicData::get_value( robot_checksum, current_position_checksum, &returned_data );
 
         if (ok) {
             float *pos = static_cast<float *>(returned_data);
@@ -465,7 +465,7 @@ void SimpleShell::set_temp_command( string parameters, StreamOutput *stream)
     string type = shift_parameter( parameters );
     string temp = shift_parameter( parameters );
     float t = temp.empty() ? 0.0 : strtof(temp.c_str(), NULL);
-    bool ok = THEKERNEL->public_data->set_value( temperature_control_checksum, get_checksum(type), &t );
+    bool ok = PublicData::set_value( temperature_control_checksum, get_checksum(type), &t );
 
     if (ok) {
         stream->printf("%s temp set to: %3.1f\r\n", type.c_str(), t);