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.
Revision 0:4321ae746746, committed 2017-03-05
- Comitter:
- captainsmiley
- Date:
- Sun Mar 05 09:59:01 2017 +0000
- Commit message:
- tgtest
Changed in this revision
Parameters.cpp | Show annotated file Show diff for this revision Revisions of this file |
Parameters.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 4321ae746746 Parameters.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Parameters.cpp Sun Mar 05 09:59:01 2017 +0000 @@ -0,0 +1,91 @@ +/* + * Parameters.cpp + * + * Created on: 28 jan. 2017 + * Author: tgtob + */ + + +#include <Parameters.h> + +Parameters::Parameters() { + // TODO Auto-generated constructor stub + +} + +Parameters pms; + +int Parameters::m_turn = 0; +int Parameters::m_speed = 1000; +bool Parameters::m_drive = 0; +int Parameters::m_client_mode = 0; +#define GEN_INT_COUNT 5 +int Parameters::m_genInt[GEN_INT_COUNT] = {}; +const char* Parameters::m_parameter_names[N_P] {"turn","speed","drive","c_mode"}; + +bool Parameters::try_write(char* key, char* value) +{ + PARAMETER_INDEX i = find_index(key); + switch (i) + { + case TURN_P: + m_turn = atoi(value); + return true; + case SPEED_P: + m_speed = atoi(value); + break; + case DRIVE_P: + m_drive = (bool) atoi(value); + break; + case CLIENT_MODE_P: + m_client_mode = atoi(value); + break; + + case N_P: + return false; + default: + return false; + } + + return false; +} + +bool Parameters::try_write_gen_int(int index,int value) +{ + if(index<GEN_INT_COUNT) + { + m_genInt[index] = value; + return true; + } + return false; +} + +int Parameters::getGenInt(int index) +{ + int tmp; + if(index<GEN_INT_COUNT) + { + tmp = m_genInt[index]; + } + else tmp = -1; + + return tmp; +} + +Parameters::PARAMETER_INDEX Parameters::find_index(char * str) +{ + for(int i=0 ; i<int(N_P) ; ++i) + { + if(strcmp(str,m_parameter_names[i])) + { + return static_cast<PARAMETER_INDEX>(i); + } + } + return N_P; +} + + +Parameters::~Parameters() { + // TODO Auto-generated destructor stub +} +
diff -r 000000000000 -r 4321ae746746 Parameters.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Parameters.h Sun Mar 05 09:59:01 2017 +0000 @@ -0,0 +1,46 @@ +/* Parameters.h + * + * Created on: 28 jan. 2017 + * Author: tgtob + */ + +#ifndef SRC_PARAMETERS_H_ +#define SRC_PARAMETERS_H_ + +#include "mbed.h" + +class Parameters { +public: + Parameters(); + bool try_write(char* key, char* value); + bool try_write_gen_int(int index,int value); + virtual ~Parameters(); + + /* ********** read functions ******** */ + int getGenInt(int index); + int getTurn() {int tmp;tmp = m_turn;return tmp;} + int getSpeed() {int tmp;tmp = m_speed;return tmp;} + bool getDrive() {bool tmp;tmp = m_drive;return tmp;} + enum ClientMode {OFFLINE,TURN_AND_DRIVE,TURN,DRIVE}; + ClientMode getClientMode() {ClientMode tmp;tmp = static_cast<ClientMode>(m_speed);return tmp;} + + /* ********** write functions ********* */ + void setClientMode(ClientMode m ) {m_client_mode = m;} + void setTurn(int t ) {m_turn = t;} + void setSpeed(int s ) {m_speed = s;} + +private: + enum PARAMETER_INDEX {TURN_P,SPEED_P,DRIVE_P,CLIENT_MODE_P,N_P}; + PARAMETER_INDEX find_index(char * str); + static const char* m_parameter_names[]; // = {"turn","speed","drive"} const; + static int m_turn; + static int m_speed; + static bool m_drive; + static int m_client_mode; + static int m_genInt[]; + +}; + +extern Parameters pms; + +#endif /* SRC_PARAMETERS_H_ */