fs and ftg working. bent forward not working
Fork of dataComm by
Diff: dataComm.h
- Revision:
- 0:f0dc2775ec68
- Child:
- 1:ad39c297a768
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dataComm.h Fri Mar 20 20:25:34 2015 +0000 @@ -0,0 +1,112 @@ +#ifndef DATACOMM_H +#define DATACOMM_H + +#include <map> +#include <string> + +#include "mbed.h" +//#include "MODSERIAL.h" +/** +* @file dataComm.h +* @brief This header file describes dataComm, an object that receives and processes messages through Bluetooth. +* @author Michael Ling +* @date 2/4/2015 +*/ + +class dataComm +{ +public: + dataComm(); + + bool parity(short c); + char* get_checksum(char* b, int len); + //void send_error(char errCode); + //void setCharge(short level); + void set_values(std::map<string, short> newValues); + + //void send(char* cmd); + void send_values(char* paramList); + void send_read_only_values(); + bool msg_check(char* msg, int len); + //void process_read_only(char* message, int len); + //void process_read(char* message, int len); + //void process_write(short* message, int len); + void process_write(short int *message, int len); + char *convert_to_char_array(short int *message, int len); + //void process(char* message, int len); + //void attachment(); + int main(); + short generic_get(string var); + void generic_set(string var, short newval); + +private: + //MODSERIAL _rn42; // serial object to read data coming in + //Map containing values of Exo parameters + std::map<std::string, short> _paramMap; + //Maps parameter indices to param names + std::string _indexMap[50]; + //Last received MSG + char _msg[50]; + //Value of Exo parameters, stored locally + // _localValues[50]; + char _curMsg[50]; + int _numVars; + //Last sent command + char _lastCmd[50]; + int _failures; + //Readonly Parameters + int _numReadOnlyParams; + short _readOnlyParams[12]; + //Indices where an escape char. is needed + int _escapeNeeded[9]; + int _escapesNeeded; + int _len; + int _counter; + bool _inMsg; + int _data; + + //START/END bytes, parameter indices + static const char START = 0xff; + static const char END = 0xfe; + static const char KPSTANCE_IND = 0x0; + static const char KPSWING_IND = 0x1; + static const char KPSTAND_IND = 0x2; + static const char KPSIT_IND = 0x3; + static const char KPUP_IND = 0x4; + static const char KPDOWN_IND = 0x5; + static const char KDSTANCE_IND = 0x6; + static const char KDSWING_IND = 0x7; + static const char KDSTAND_IND = 0x8; + static const char KDSIT_IND = 0x9; + static const char KDUP_IND = 0xa; + static const char KDDOWN_IND = 0xb; + static const char STAND_IND = 0xc; + static const char SIT_IND = 0xd; + static const char BENT_IND = 0xe; + static const char FORWARD_IND = 0xf; + static const char REAR_IND = 0x10; + static const char IMU_IND = 0x11; + static const char RETRACT_IND = 0x12; + static const char EXTEND_IND = 0x13; + static const char LOCK_IND = 0x14; + static const char RATE_IND = 0x15; + static const char SUASST_IND = 0x16; + static const char SUTIME_IND = 0x17; + static const char SDASST_IND = 0x18; + static const char SDTIME_IND = 0x19; + static const char WALK_IND = 0x1a; + + //Indicates a readonly request + static const char READONLY_IND = 0x1f; + + //Error codes + static const char START_ERR = 1; + static const char END_ERR = 2; + static const char PARITY_ERR = 3; + static const char CHECKSUM_ERR = 4; + static const char VAR_ERR = 5; + static const char DATA_ERR = 6; + static const char RW_ERR = 7; + +}; +#endif