Merge pull request #219 from wolfmanjm/fix/pid2
[clinton/Smoothieware.git] / src / modules / robot / arm_solutions / CartesianSolution.cpp
CommitLineData
4cff3ded
AW
1#include "CartesianSolution.h"
2#include <math.h>
3
4CartesianSolution::CartesianSolution(Config* passed_config) : config(passed_config){
b66fb830
AW
5 this->alpha_steps_per_mm = this->config->value(alpha_steps_per_mm_checksum)->as_number();
6 this->beta_steps_per_mm = this->config->value( beta_steps_per_mm_checksum)->as_number();
7 this->gamma_steps_per_mm = this->config->value(gamma_steps_per_mm_checksum)->as_number();
4cff3ded
AW
8}
9
10void CartesianSolution::millimeters_to_steps( double millimeters[], int steps[] ){
11 steps[ALPHA_STEPPER] = lround( millimeters[X_AXIS] * this->alpha_steps_per_mm );
12 steps[BETA_STEPPER ] = lround( millimeters[Y_AXIS] * this->beta_steps_per_mm );
13 steps[GAMMA_STEPPER] = lround( millimeters[Z_AXIS] * this->gamma_steps_per_mm );
14}
15
db35a152
BG
16void CartesianSolution::steps_to_millimeters( int steps[], double millimeters[] ){
17 millimeters[ALPHA_STEPPER] = steps[X_AXIS] / this->alpha_steps_per_mm;
18 millimeters[BETA_STEPPER ] = steps[Y_AXIS] / this->beta_steps_per_mm;
eabe1910 19 millimeters[GAMMA_STEPPER] = steps[Z_AXIS] / this->gamma_steps_per_mm;
db35a152 20}
0fb5b438
MM
21
22void CartesianSolution::set_steps_per_millimeter( double steps[] )
23{
24 this->alpha_steps_per_mm = steps[0];
25 this->beta_steps_per_mm = steps[1];
26 this->gamma_steps_per_mm = steps[2];
27}
28
29void CartesianSolution::get_steps_per_millimeter( double steps[] )
30{
31 steps[0] = this->alpha_steps_per_mm;
32 steps[1] = this->beta_steps_per_mm;
33 steps[2] = this->gamma_steps_per_mm;
34}