kernel->add_module( new SimpleShell() );
kernel->add_module( new Configurator() );
kernel->add_module( new CurrentControl() );
- kernel->add_module( new SwitchPool() );
kernel->add_module( new PauseButton() );
kernel->add_module( new PlayLed() );
kernel->add_module( new Endstops() );
kernel->add_module( new Player() );
+
// these modules can be completely disabled in the Makefile by adding to EXCLUDE_MODULES
+ #ifndef NO_TOOLS_SWITCH
+ SwitchPool *sp= new SwitchPool();
+ sp->load_tools();
+ delete sp;
+ #endif
#ifndef NO_TOOLS_EXTRUDER
- kernel->add_module( new ExtruderMaker() );
+ ExtruderMaker *em= new ExtruderMaker();
+ em->load_tools();
+ delete em;
#endif
#ifndef NO_TOOLS_TEMPERATURECONTROL
// Note order is important here must be after extruder
- kernel->add_module( new TemperatureControlPool() );
+ TemperatureControlPool *tp= new TemperatureControlPool();
+ tp->load_tools();
+ delete tp;
#endif
#ifndef NO_TOOLS_LASER
kernel->add_module( new Laser() );
You should have received a copy of the GNU General Public License along with Smoothie. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "ExtruderMaker.h"
#include "libs/Module.h"
#include "libs/Kernel.h"
-#include "ExtruderMaker.h"
#include "Extruder.h"
#include "Config.h"
#include "ToolManager.h"
#define extruder_checksum CHECKSUM("extruder")
#define enable_checksum CHECKSUM("enable")
-void ExtruderMaker::on_module_loaded(){
+void ExtruderMaker::load_tools(){
// If there is a "single" extruder configured ( old config syntax from when there was only one extruder module, no pool/maker
if( THEKERNEL->config->value( extruder_module_enable_checksum )->by_default(false)->as_bool() ){
if(modules.size() == 0) {
THEKERNEL->streams->printf("NOTE: No extruders configured\n");
- // no extruders
- delete this;
return;
}
if(cnt == 0) {
THEKERNEL->streams->printf("NOTE: No extruders enabled\n");
- delete this;
return;
}
#ifndef EXTRUDERMAKER_H
#define EXTRUDERMAKER_H
-class ExtruderMaker : public Module {
+class ExtruderMaker {
public:
- ExtruderMaker(){}
- void on_module_loaded();
+ void load_tools();
};
#define switch_checksum CHECKSUM("switch")
#define enable_checksum CHECKSUM("enable")
-SwitchPool::SwitchPool(){}
-
-void SwitchPool::on_module_loaded(){
-
+void SwitchPool::load_tools()
+{
vector<uint16_t> modules;
THEKERNEL->config->get_module_list( &modules, switch_checksum );
- for( unsigned int i = 0; i < modules.size(); i++ ){
+ for( unsigned int i = 0; i < modules.size(); i++ ) {
// If module is enabled
- if( THEKERNEL->config->value(switch_checksum, modules[i], enable_checksum )->as_bool() == true ){
- Switch* controller = new Switch(modules[i]);
+ if( THEKERNEL->config->value(switch_checksum, modules[i], enable_checksum )->as_bool() == true ) {
+ Switch *controller = new Switch(modules[i]);
THEKERNEL->add_module(controller);
- //this->controllers.push_back( controller );
}
}
#ifndef SWITCHPOOL_H
#define SWITCHPOOL_H
-#include "Switch.h"
-#include <math.h>
-using namespace std;
-#include <vector>
-
-class SwitchPool : public Module {
+class SwitchPool{
public:
- SwitchPool();
-
- void on_module_loaded();
-
- private:
- //vector<Switch*> controllers;
+ void load_tools();
};
-
-
#endif // SWITCHPOOL_H
#define enable_checksum CHECKSUM("enable")
-TemperatureControlPool::TemperatureControlPool(){}
-
-void TemperatureControlPool::on_module_loaded(){
+void TemperatureControlPool::load_tools(){
vector<uint16_t> modules;
THEKERNEL->config->get_module_list( &modules, temperature_control_checksum );
PID_Autotuner* pidtuner = new PID_Autotuner();
THEKERNEL->add_module( pidtuner );
}
-
- // no need to keep this around once it is done
- delete this;
}
#ifndef TEMPERATURECONTROLPOOL_H
#define TEMPERATURECONTROLPOOL_H
-class TemperatureControl;
-
-class TemperatureControlPool : public Module {
+class TemperatureControlPool {
public:
- TemperatureControlPool();
-
- void on_module_loaded();
-
- private:
- //vector<TemperatureControl*> controllers;
+ void load_tools();
};