Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Smoothie by
ExtruderMaker.cpp
00001 /* 00002 This file is part of Smoothie (http://smoothieware.org/). The motion control part is heavily based on Grbl (https://github.com/simen/grbl). 00003 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. 00004 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. 00005 You should have received a copy of the GNU General Public License along with Smoothie. If not, see <http://www.gnu.org/licenses/>. 00006 */ 00007 00008 #include "libs/Module.h" 00009 #include "libs/Kernel.h" 00010 #include <math.h> 00011 using namespace std; 00012 #include <vector> 00013 #include "ExtruderMaker.h" 00014 #include "Extruder.h" 00015 00016 ExtruderMaker::ExtruderMaker(){} 00017 00018 void ExtruderMaker::on_module_loaded(){ 00019 00020 // If there is a "single" extruder configured ( old config syntax from when there was only one extruder module, no pool/maker 00021 if( THEKERNEL->config->value( extruder_module_enable_checksum )->by_default(false)->as_bool() == true ){ 00022 00023 // Make a new extruder module 00024 Extruder* extruder = new Extruder(0); 00025 00026 // Signal the extruder it will have to read config as an alone extruder 00027 extruder->single_config = true; 00028 00029 // Add the module to the kernel 00030 THEKERNEL->add_module( extruder ); 00031 00032 // Add the module to the ToolsManager 00033 THEKERNEL->toolsmanager->add_tool( extruder ); 00034 00035 } 00036 00037 // Get every "declared" extruder module ( new, multiextruder syntax ) 00038 vector<uint16_t> modules; 00039 THEKERNEL->config->get_module_list( &modules, extruder_checksum ); 00040 00041 // For every extruder found 00042 for( unsigned int i = 0; i < modules.size(); i++ ){ 00043 00044 // If module is enabled 00045 if( THEKERNEL->config->value(extruder_checksum, modules[i], enable_checksum )->as_bool() == true ){ 00046 00047 // Make a new extruder module 00048 Extruder* extruder = new Extruder(modules[i]); 00049 00050 // Add the module to the kernel 00051 THEKERNEL->add_module( extruder ); 00052 00053 // Add the module to the ToolsManager 00054 THEKERNEL->toolsmanager->add_tool( extruder ); 00055 00056 } 00057 00058 } 00059 00060 } 00061 00062 00063 00064 00065
Generated on Tue Jul 12 2022 20:09:01 by
1.7.2
