farmbot-arduino-firmware/src/ParameterList.h

143 lines
2.9 KiB
C
Raw Normal View History

2014-08-06 16:04:40 -06:00
#ifndef PARAMETERLIST_H_
#define PARAMETERLIST_H_
#include "Arduino.h"
#include "Config.h"
#include "PinGuard.h"
2016-10-02 15:43:39 -06:00
#include "CurrentState.h"
2014-08-06 16:04:40 -06:00
//#define NULL 0
2017-03-27 13:58:25 -06:00
const int PARAM_NR_OF_PARAMS = 225;
2014-08-06 16:04:40 -06:00
enum ParamListEnum
{
2017-04-19 08:12:12 -06:00
PARAM_VERSION = 0,
PARAM_TEST = 1,
PARAM_CONFIG_OK = 2,
PARAM_USE_EEPROM = 3,
2016-01-02 15:21:01 -07:00
2017-04-19 08:12:12 -06:00
// stepper motor settings
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_TIMEOUT_X = 11,
MOVEMENT_TIMEOUT_Y = 12,
MOVEMENT_TIMEOUT_Z = 13,
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_INVERT_ENDPOINTS_X = 21,
MOVEMENT_INVERT_ENDPOINTS_Y = 22,
MOVEMENT_INVERT_ENDPOINTS_Z = 23,
2017-02-28 14:48:46 -07:00
2017-04-19 08:12:12 -06:00
MOVEMENT_ENABLE_ENDPOINTS_X = 25,
MOVEMENT_ENABLE_ENDPOINTS_Y = 26,
MOVEMENT_ENABLE_ENDPOINTS_Z = 27,
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_INVERT_MOTOR_X = 31,
MOVEMENT_INVERT_MOTOR_Y = 32,
MOVEMENT_INVERT_MOTOR_Z = 33,
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_SECONDARY_MOTOR_X = 36,
MOVEMENT_SECONDARY_MOTOR_INVERT_X = 37,
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_STEPS_ACC_DEC_X = 41,
MOVEMENT_STEPS_ACC_DEC_Y = 42,
MOVEMENT_STEPS_ACC_DEC_Z = 43,
2014-08-07 15:05:30 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_HOME_UP_X = 51,
MOVEMENT_HOME_UP_Y = 52,
MOVEMENT_HOME_UP_Z = 53,
2017-04-19 08:12:12 -06:00
MOVEMENT_MIN_SPD_X = 61,
MOVEMENT_MIN_SPD_Y = 62,
MOVEMENT_MIN_SPD_Z = 63,
2015-08-07 15:30:24 -06:00
2017-04-19 08:12:12 -06:00
MOVEMENT_MAX_SPD_X = 71,
MOVEMENT_MAX_SPD_Y = 72,
MOVEMENT_MAX_SPD_Z = 73,
2016-01-02 15:21:01 -07:00
2017-04-19 08:12:12 -06:00
// encoder settings
ENCODER_ENABLED_X = 101,
ENCODER_ENABLED_Y = 102,
ENCODER_ENABLED_Z = 103,
2017-04-19 08:12:12 -06:00
ENCODER_TYPE_X = 105,
ENCODER_TYPE_Y = 106,
ENCODER_TYPE_Z = 107,
2016-01-02 15:21:01 -07:00
2017-04-19 08:12:12 -06:00
ENCODER_MISSED_STEPS_MAX_X = 111,
ENCODER_MISSED_STEPS_MAX_Y = 112,
ENCODER_MISSED_STEPS_MAX_Z = 113,
2017-04-19 08:12:12 -06:00
ENCODER_SCALING_X = 115,
ENCODER_SCALING_Y = 116,
ENCODER_SCALING_Z = 117,
2016-01-02 15:21:01 -07:00
2017-04-19 08:12:12 -06:00
ENCODER_MISSED_STEPS_DECAY_X = 121,
ENCODER_MISSED_STEPS_DECAY_Y = 122,
ENCODER_MISSED_STEPS_DECAY_Z = 123,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
// not used in software at this time
MOVEMENT_AXIS_NR_STEPS_X = 141,
MOVEMENT_AXIS_NR_STEPS_Y = 142,
MOVEMENT_AXIS_NR_STEPS_Z = 143,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
// pin guard settings
PIN_GUARD_1_PIN_NR = 201,
PIN_GUARD_1_TIME_OUT = 202,
PIN_GUARD_1_ACTIVE_STATE = 203,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
PIN_GUARD_2_PIN_NR = 205,
PIN_GUARD_2_TIME_OUT = 206,
PIN_GUARD_2_ACTIVE_STATE = 207,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
PIN_GUARD_3_PIN_NR = 211,
PIN_GUARD_3_TIME_OUT = 212,
PIN_GUARD_3_ACTIVE_STATE = 213,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
PIN_GUARD_4_PIN_NR = 215,
PIN_GUARD_4_TIME_OUT = 216,
PIN_GUARD_4_ACTIVE_STATE = 217,
2016-04-08 16:19:45 -06:00
2017-04-19 08:12:12 -06:00
PIN_GUARD_5_PIN_NR = 221,
PIN_GUARD_5_TIME_OUT = 222,
PIN_GUARD_5_ACTIVE_STATE = 223
2014-08-06 16:04:40 -06:00
};
/*
#define NULL 0
*/
2017-04-19 08:12:12 -06:00
class ParameterList
{
ParamListEnum paramListEnum;
2014-08-06 16:04:40 -06:00
public:
2017-04-19 08:12:12 -06:00
static ParameterList *getInstance();
int writeValue(int id, int value);
int readValue(int id);
int getValue(int id);
2016-01-11 15:07:41 -07:00
2017-04-19 08:12:12 -06:00
bool validParam(int id);
void loadDefaultValue(int id);
2016-01-11 15:07:41 -07:00
2017-04-19 08:12:12 -06:00
int readAllValues();
int readAllValuesFromEeprom();
int writeAllValuesToEeprom();
int setAllValuesToDefault();
2016-01-11 15:07:41 -07:00
2017-04-19 08:12:12 -06:00
int readValueEeprom(int id);
int writeValueEeprom(int id, int value);
2017-04-19 08:12:12 -06:00
void sendConfigToModules();
2017-04-19 08:12:12 -06:00
int paramChangeNumber();
2014-08-06 16:04:40 -06:00
private:
2017-04-19 08:12:12 -06:00
ParameterList();
ParameterList(ParameterList const &);
void operator=(ParameterList const &);
2017-04-19 08:12:12 -06:00
int paramChangeNr;
2014-08-06 16:04:40 -06:00
};
#endif /* PARAMETERLIST_H_ */