fs and ftg working. bent forward not working

Fork of dataComm by Bradley Perry

Committer:
mzling
Date:
Fri Mar 20 23:08:01 2015 +0000
Revision:
1:ad39c297a768
Parent:
0:f0dc2775ec68
Child:
2:53547eb587fb
Added range arguments for new variables

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mzling 0:f0dc2775ec68 1 #ifndef DATACOMM_H
mzling 0:f0dc2775ec68 2 #define DATACOMM_H
mzling 0:f0dc2775ec68 3
mzling 0:f0dc2775ec68 4 #include <map>
mzling 0:f0dc2775ec68 5 #include <string>
mzling 0:f0dc2775ec68 6
mzling 0:f0dc2775ec68 7 #include "mbed.h"
mzling 0:f0dc2775ec68 8 //#include "MODSERIAL.h"
mzling 0:f0dc2775ec68 9 /**
mzling 0:f0dc2775ec68 10 * @file dataComm.h
mzling 0:f0dc2775ec68 11 * @brief This header file describes dataComm, an object that receives and processes messages through Bluetooth.
mzling 0:f0dc2775ec68 12 * @author Michael Ling
mzling 0:f0dc2775ec68 13 * @date 2/4/2015
mzling 0:f0dc2775ec68 14 */
mzling 0:f0dc2775ec68 15
mzling 0:f0dc2775ec68 16 class dataComm
mzling 0:f0dc2775ec68 17 {
mzling 0:f0dc2775ec68 18 public:
mzling 0:f0dc2775ec68 19 dataComm();
mzling 0:f0dc2775ec68 20
mzling 0:f0dc2775ec68 21 bool parity(short c);
mzling 0:f0dc2775ec68 22 char* get_checksum(char* b, int len);
mzling 0:f0dc2775ec68 23 //void send_error(char errCode);
mzling 0:f0dc2775ec68 24 //void setCharge(short level);
mzling 0:f0dc2775ec68 25 void set_values(std::map<string, short> newValues);
mzling 0:f0dc2775ec68 26
mzling 0:f0dc2775ec68 27 //void send(char* cmd);
mzling 0:f0dc2775ec68 28 void send_values(char* paramList);
mzling 0:f0dc2775ec68 29 void send_read_only_values();
mzling 0:f0dc2775ec68 30 bool msg_check(char* msg, int len);
mzling 0:f0dc2775ec68 31 //void process_read_only(char* message, int len);
mzling 0:f0dc2775ec68 32 //void process_read(char* message, int len);
mzling 0:f0dc2775ec68 33 //void process_write(short* message, int len);
mzling 0:f0dc2775ec68 34 void process_write(short int *message, int len);
mzling 0:f0dc2775ec68 35 char *convert_to_char_array(short int *message, int len);
mzling 0:f0dc2775ec68 36 //void process(char* message, int len);
mzling 0:f0dc2775ec68 37 //void attachment();
mzling 0:f0dc2775ec68 38 int main();
mzling 0:f0dc2775ec68 39 short generic_get(string var);
mzling 0:f0dc2775ec68 40 void generic_set(string var, short newval);
mzling 0:f0dc2775ec68 41
mzling 0:f0dc2775ec68 42 private:
mzling 0:f0dc2775ec68 43 //MODSERIAL _rn42; // serial object to read data coming in
mzling 0:f0dc2775ec68 44 //Map containing values of Exo parameters
mzling 0:f0dc2775ec68 45 std::map<std::string, short> _paramMap;
mzling 0:f0dc2775ec68 46 //Maps parameter indices to param names
mzling 0:f0dc2775ec68 47 std::string _indexMap[50];
mzling 0:f0dc2775ec68 48 //Last received MSG
mzling 0:f0dc2775ec68 49 char _msg[50];
mzling 0:f0dc2775ec68 50 //Value of Exo parameters, stored locally
mzling 0:f0dc2775ec68 51 // _localValues[50];
mzling 0:f0dc2775ec68 52 char _curMsg[50];
mzling 0:f0dc2775ec68 53 int _numVars;
mzling 0:f0dc2775ec68 54 //Last sent command
mzling 0:f0dc2775ec68 55 char _lastCmd[50];
mzling 0:f0dc2775ec68 56 int _failures;
mzling 0:f0dc2775ec68 57 //Readonly Parameters
mzling 0:f0dc2775ec68 58 int _numReadOnlyParams;
mzling 0:f0dc2775ec68 59 short _readOnlyParams[12];
mzling 0:f0dc2775ec68 60 //Indices where an escape char. is needed
mzling 0:f0dc2775ec68 61 int _escapeNeeded[9];
mzling 0:f0dc2775ec68 62 int _escapesNeeded;
mzling 0:f0dc2775ec68 63 int _len;
mzling 0:f0dc2775ec68 64 int _counter;
mzling 0:f0dc2775ec68 65 bool _inMsg;
mzling 0:f0dc2775ec68 66 int _data;
mzling 0:f0dc2775ec68 67
mzling 0:f0dc2775ec68 68 //START/END bytes, parameter indices
mzling 0:f0dc2775ec68 69 static const char START = 0xff;
mzling 0:f0dc2775ec68 70 static const char END = 0xfe;
mzling 0:f0dc2775ec68 71 static const char KPSTANCE_IND = 0x0;
mzling 0:f0dc2775ec68 72 static const char KPSWING_IND = 0x1;
mzling 0:f0dc2775ec68 73 static const char KPSTAND_IND = 0x2;
mzling 0:f0dc2775ec68 74 static const char KPSIT_IND = 0x3;
mzling 0:f0dc2775ec68 75 static const char KPUP_IND = 0x4;
mzling 0:f0dc2775ec68 76 static const char KPDOWN_IND = 0x5;
mzling 0:f0dc2775ec68 77 static const char KDSTANCE_IND = 0x6;
mzling 0:f0dc2775ec68 78 static const char KDSWING_IND = 0x7;
mzling 0:f0dc2775ec68 79 static const char KDSTAND_IND = 0x8;
mzling 0:f0dc2775ec68 80 static const char KDSIT_IND = 0x9;
mzling 0:f0dc2775ec68 81 static const char KDUP_IND = 0xa;
mzling 0:f0dc2775ec68 82 static const char KDDOWN_IND = 0xb;
mzling 0:f0dc2775ec68 83 static const char STAND_IND = 0xc;
mzling 0:f0dc2775ec68 84 static const char SIT_IND = 0xd;
mzling 0:f0dc2775ec68 85 static const char BENT_IND = 0xe;
mzling 0:f0dc2775ec68 86 static const char FORWARD_IND = 0xf;
mzling 0:f0dc2775ec68 87 static const char REAR_IND = 0x10;
mzling 0:f0dc2775ec68 88 static const char IMU_IND = 0x11;
mzling 0:f0dc2775ec68 89 static const char RETRACT_IND = 0x12;
mzling 0:f0dc2775ec68 90 static const char EXTEND_IND = 0x13;
mzling 0:f0dc2775ec68 91 static const char LOCK_IND = 0x14;
mzling 0:f0dc2775ec68 92 static const char RATE_IND = 0x15;
mzling 0:f0dc2775ec68 93 static const char SUASST_IND = 0x16;
mzling 0:f0dc2775ec68 94 static const char SUTIME_IND = 0x17;
mzling 0:f0dc2775ec68 95 static const char SDASST_IND = 0x18;
mzling 0:f0dc2775ec68 96 static const char SDTIME_IND = 0x19;
mzling 0:f0dc2775ec68 97 static const char WALK_IND = 0x1a;
mzling 0:f0dc2775ec68 98
mzling 1:ad39c297a768 99 static const float MIN_STAND = -15;
mzling 1:ad39c297a768 100 static const float MAX_STAND = 15;
mzling 1:ad39c297a768 101 static const float MIN_SIT = 70;
mzling 1:ad39c297a768 102 static const float MAX_SIT = 110;
mzling 1:ad39c297a768 103 static const float MIN_BENT = 90;
mzling 1:ad39c297a768 104 static const float MAX_BENT = 140;
mzling 1:ad39c297a768 105 static const float MIN_SUASST = -.17;
mzling 1:ad39c297a768 106 static const float MAX_SUASST = -.11;
mzling 1:ad39c297a768 107 static const float MIN_SDASST = -.03;
mzling 1:ad39c297a768 108 static const float MAX_SDASST = -.02;
mzling 1:ad39c297a768 109 static const float MIN_SDTIME = 3.2;
mzling 1:ad39c297a768 110 static const float MAX_SDTIME = 4.8;
mzling 1:ad39c297a768 111 static const float MIN_WALK = 4.8;
mzling 1:ad39c297a768 112 static const float MAX_WALK = 7.2;
mzling 1:ad39c297a768 113
mzling 0:f0dc2775ec68 114 //Indicates a readonly request
mzling 0:f0dc2775ec68 115 static const char READONLY_IND = 0x1f;
mzling 0:f0dc2775ec68 116
mzling 0:f0dc2775ec68 117 //Error codes
mzling 0:f0dc2775ec68 118 static const char START_ERR = 1;
mzling 0:f0dc2775ec68 119 static const char END_ERR = 2;
mzling 0:f0dc2775ec68 120 static const char PARITY_ERR = 3;
mzling 0:f0dc2775ec68 121 static const char CHECKSUM_ERR = 4;
mzling 0:f0dc2775ec68 122 static const char VAR_ERR = 5;
mzling 0:f0dc2775ec68 123 static const char DATA_ERR = 6;
mzling 0:f0dc2775ec68 124 static const char RW_ERR = 7;
mzling 0:f0dc2775ec68 125
mzling 0:f0dc2775ec68 126 };
mzling 0:f0dc2775ec68 127 #endif