Fork of Smoothie to port to mbed non-LPC targets.
Fork of Smoothie by
Planner.h
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 #ifndef PLANNER_H 00009 #define PLANNER_H 00010 00011 #include <vector> 00012 #include "libs/RingBuffer.h" 00013 #include "../communication/utils/Gcode.h" 00014 #include "Block.h" 00015 00016 using namespace std; 00017 00018 class Planner : public Module { 00019 public: 00020 Planner(); 00021 void append_block( float target[], float rate_mm_s, float distance, float unit_vec[] ); 00022 float max_allowable_speed( float acceleration, float target_velocity, float distance); 00023 void recalculate(); 00024 Block* get_current_block(); 00025 void cleanup_queue(); 00026 void on_module_loaded(); 00027 void on_config_reload(void* argument); 00028 00029 float previous_unit_vec[3]; 00030 Block last_deleted_block; // Item -1 in the queue, TODO: Grbl does not need this, but Smoothie won't work without it, we are probably doing something wrong 00031 bool has_deleted_block; // Flag for above value 00032 00033 float acceleration; // Setting 00034 float junction_deviation; // Setting 00035 float minimum_planner_speed; // Setting 00036 }; 00037 00038 00039 00040 #endif
Generated on Tue Jul 12 2022 20:09:02 by 1.7.2