farmbot-arduino-firmware/src/ParameterList.h

126 lines
2.6 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
2016-05-06 15:15:38 -06:00
const int PARAM_NR_OF_PARAMS = 300;
2014-08-06 16:04:40 -06:00
enum ParamListEnum
{
PARAM_VERSION = 0,
PARAM_TEST = 1,
2014-08-07 15:05:30 -06:00
2016-01-02 15:21:01 -07:00
// stepper motor settings
MOVEMENT_TIMEOUT_X = 11,
MOVEMENT_TIMEOUT_Y = 12,
MOVEMENT_TIMEOUT_Z = 13,
2014-08-07 15:05:30 -06:00
MOVEMENT_INVERT_ENDPOINTS_X = 21,
MOVEMENT_INVERT_ENDPOINTS_Y = 22,
MOVEMENT_INVERT_ENDPOINTS_Z = 23,
2014-08-07 15:05:30 -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
MOVEMENT_SECONDARY_MOTOR_X = 36,
MOVEMENT_SECONDARY_MOTOR_INVERT_X = 37,
2014-08-07 15:05:30 -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
MOVEMENT_HOME_UP_X = 51,
MOVEMENT_HOME_UP_Y = 52,
MOVEMENT_HOME_UP_Z = 53,
2014-08-07 15:05:30 -06:00
MOVEMENT_MIN_SPD_X = 61,
MOVEMENT_MIN_SPD_Y = 62,
MOVEMENT_MIN_SPD_Z = 63,
MOVEMENT_MAX_SPD_X = 71,
MOVEMENT_MAX_SPD_Y = 72,
MOVEMENT_MAX_SPD_Z = 73,
2015-08-07 15:30:24 -06:00
2016-01-02 15:21:01 -07:00
// encoder settings
ENCODER_ENABLED_X = 101,
ENCODER_ENABLED_Y = 102,
ENCODER_ENABLED_Z = 103,
2016-01-02 15:21:01 -07:00
ENCODER_MISSED_STEPS_MAX_X = 111,
ENCODER_MISSED_STEPS_MAX_Y = 112,
ENCODER_MISSED_STEPS_MAX_Z = 113,
2016-01-02 15:21:01 -07:00
ENCODER_MISSED_STEPS_DECAY_X = 121,
ENCODER_MISSED_STEPS_DECAY_Y = 122,
ENCODER_MISSED_STEPS_DECAY_Z = 123,
2016-01-02 15:21:01 -07: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
// 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
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
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
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
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
*/
class ParameterList {
ParamListEnum paramListEnum;
public:
static ParameterList* getInstance();
2016-01-11 15:07:41 -07:00
int writeValue(int id, int value);
2014-08-07 15:05:30 -06:00
int readValue(int id);
2016-01-11 15:07:41 -07:00
int getValue(int id);
2016-01-02 15:21:01 -07:00
bool validParam(int id);
2016-01-11 15:07:41 -07:00
void loadDefaultValue(int id);
int readAllValues();
int readAllValuesFromEeprom();
int writeAllValuesToEeprom();
int setAllValuesToDefault();
int readValueEeprom(int id);
int writeValueEeprom(int id, int value);
void sendConfigToModules();
2014-08-06 16:04:40 -06:00
private:
ParameterList();
2014-08-17 14:15:05 -06:00
ParameterList(ParameterList const&);
void operator=(ParameterList const&);
2014-08-06 16:04:40 -06:00
};
#endif /* PARAMETERLIST_H_ */