fs and ftg working. bent forward not working

Fork of dataComm by Bradley Perry

Committer:
perr1940
Date:
Wed May 20 21:37:51 2015 +0000
Revision:
10:d245feb52be2
Parent:
6:502959ea39e4
Child:
12:1ee85e9d75a3
Child:
15:2acd4990e442
I don't know how this is different

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 /**
mzling 0:f0dc2775ec68 9 * @file dataComm.h
mzling 2:53547eb587fb 10 * @brief This header file describes dataComm, an object that receives and processes messages sent to the controlbed via SPI.
mzling 6:502959ea39e4 11 * shares many functions with BluetoothComm on the controlbed
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 set_values(std::map<string, short> newValues);
mzling 4:86d9e33652b6 24
mzling 2:53547eb587fb 25
mzling 0:f0dc2775ec68 26 void send_values(char* paramList);
mzling 0:f0dc2775ec68 27 void send_read_only_values();
mzling 0:f0dc2775ec68 28 bool msg_check(char* msg, int len);
mzling 0:f0dc2775ec68 29 void process_write(short int *message, int len);
mzling 0:f0dc2775ec68 30 int main();
mzling 0:f0dc2775ec68 31 short generic_get(string var);
mzling 0:f0dc2775ec68 32 void generic_set(string var, short newval);
mzling 4:86d9e33652b6 33
mzling 0:f0dc2775ec68 34 private:
mzling 4:86d9e33652b6 35
mzling 0:f0dc2775ec68 36 //Map containing values of Exo parameters
mzling 0:f0dc2775ec68 37 std::map<std::string, short> _paramMap;
mzling 0:f0dc2775ec68 38 //Maps parameter indices to param names
mzling 0:f0dc2775ec68 39 std::string _indexMap[50];
mzling 0:f0dc2775ec68 40 //Last received MSG
mzling 0:f0dc2775ec68 41 char _msg[50];
mzling 2:53547eb587fb 42
mzling 0:f0dc2775ec68 43 char _curMsg[50];
mzling 0:f0dc2775ec68 44 int _numVars;
mzling 0:f0dc2775ec68 45 //Last sent command
mzling 0:f0dc2775ec68 46 char _lastCmd[50];
mzling 0:f0dc2775ec68 47 int _failures;
mzling 0:f0dc2775ec68 48 //Readonly Parameters
mzling 0:f0dc2775ec68 49 int _numReadOnlyParams;
mzling 0:f0dc2775ec68 50 short _readOnlyParams[12];
mzling 0:f0dc2775ec68 51 //Indices where an escape char. is needed
mzling 0:f0dc2775ec68 52 int _escapeNeeded[9];
mzling 0:f0dc2775ec68 53 int _escapesNeeded;
mzling 0:f0dc2775ec68 54 int _len;
mzling 0:f0dc2775ec68 55 int _counter;
mzling 0:f0dc2775ec68 56 bool _inMsg;
mzling 0:f0dc2775ec68 57 int _data;
mzling 4:86d9e33652b6 58
mzling 0:f0dc2775ec68 59 //START/END bytes, parameter indices
mzling 0:f0dc2775ec68 60 static const char START = 0xff;
mzling 0:f0dc2775ec68 61 static const char END = 0xfe;
mzling 0:f0dc2775ec68 62 static const char KPSTANCE_IND = 0x0;
mzling 0:f0dc2775ec68 63 static const char KPSWING_IND = 0x1;
mzling 0:f0dc2775ec68 64 static const char KPSTAND_IND = 0x2;
mzling 0:f0dc2775ec68 65 static const char KPSIT_IND = 0x3;
mzling 0:f0dc2775ec68 66 static const char KPUP_IND = 0x4;
mzling 0:f0dc2775ec68 67 static const char KPDOWN_IND = 0x5;
mzling 0:f0dc2775ec68 68 static const char KDSTANCE_IND = 0x6;
mzling 0:f0dc2775ec68 69 static const char KDSWING_IND = 0x7;
mzling 0:f0dc2775ec68 70 static const char KDSTAND_IND = 0x8;
mzling 0:f0dc2775ec68 71 static const char KDSIT_IND = 0x9;
mzling 0:f0dc2775ec68 72 static const char KDUP_IND = 0xa;
mzling 0:f0dc2775ec68 73 static const char KDDOWN_IND = 0xb;
mzling 0:f0dc2775ec68 74 static const char STAND_IND = 0xc;
mzling 0:f0dc2775ec68 75 static const char SIT_IND = 0xd;
mzling 0:f0dc2775ec68 76 static const char BENT_IND = 0xe;
mzling 0:f0dc2775ec68 77 static const char FORWARD_IND = 0xf;
mzling 0:f0dc2775ec68 78 static const char REAR_IND = 0x10;
mzling 0:f0dc2775ec68 79 static const char IMU_IND = 0x11;
mzling 0:f0dc2775ec68 80 static const char RETRACT_IND = 0x12;
mzling 0:f0dc2775ec68 81 static const char EXTEND_IND = 0x13;
mzling 0:f0dc2775ec68 82 static const char LOCK_IND = 0x14;
mzling 0:f0dc2775ec68 83 static const char RATE_IND = 0x15;
mzling 0:f0dc2775ec68 84 static const char SUASST_IND = 0x16;
mzling 0:f0dc2775ec68 85 static const char SUTIME_IND = 0x17;
mzling 0:f0dc2775ec68 86 static const char SDASST_IND = 0x18;
mzling 0:f0dc2775ec68 87 static const char SDTIME_IND = 0x19;
mzling 0:f0dc2775ec68 88 static const char WALK_IND = 0x1a;
mzling 3:2091104c9b61 89 static const char STEPLEN_IND = 0x1b;
mzling 3:2091104c9b61 90 static const char STEPTIME_IND = 0x1c;
mzling 6:502959ea39e4 91 static const char HIPFLEX_IND = 0x1d;
mzling 6:502959ea39e4 92 static const char PHASESHIFT_IND = 0x1e;
mzling 6:502959ea39e4 93 static const char MAXAMP_IND = 0x1f;
mzling 6:502959ea39e4 94 static const char STANCESTART_IND = 0x20;
mzling 6:502959ea39e4 95 static const char STANCEEND_IND = 0x21;
mzling 4:86d9e33652b6 96
mzling 6:502959ea39e4 97
mzling 6:502959ea39e4 98 //MIN and MAX values for the various parameters
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 6:502959ea39e4 111 static const float MIN_WALK = 0;
mzling 6:502959ea39e4 112 static const float MAX_WALK = 10;
mzling 6:502959ea39e4 113 static const float MIN_STEPTIME = 700;
mzling 6:502959ea39e4 114 static const float MAX_STEPTIME = 1300;
mzling 6:502959ea39e4 115 static const float MIN_STANDUPTIME = 0.5;
mzling 6:502959ea39e4 116 static const float MAX_STANDUPTIME = 1.5;
mzling 6:502959ea39e4 117
perr1940 10:d245feb52be2 118 static const float MIN_STEPLEN = -32;
perr1940 10:d245feb52be2 119 static const float MAX_STEPLEN = -12;
mzling 6:502959ea39e4 120 static const float MIN_HIPFLEX = 20;
mzling 6:502959ea39e4 121 static const float MAX_HIPFLEX = 40;
mzling 6:502959ea39e4 122 static const float MIN_PHASESHIFT = 400;
mzling 6:502959ea39e4 123 static const float MAX_PHASESHIFT = 600;
mzling 4:86d9e33652b6 124
mzling 0:f0dc2775ec68 125 //Indicates a readonly request
mzling 3:2091104c9b61 126 static const char READONLY_IND = 0x3f;
mzling 4:86d9e33652b6 127
mzling 0:f0dc2775ec68 128 //Error codes
mzling 0:f0dc2775ec68 129 static const char START_ERR = 1;
mzling 0:f0dc2775ec68 130 static const char END_ERR = 2;
mzling 0:f0dc2775ec68 131 static const char PARITY_ERR = 3;
mzling 0:f0dc2775ec68 132 static const char CHECKSUM_ERR = 4;
mzling 0:f0dc2775ec68 133 static const char VAR_ERR = 5;
mzling 0:f0dc2775ec68 134 static const char DATA_ERR = 6;
mzling 0:f0dc2775ec68 135 static const char RW_ERR = 7;
mzling 4:86d9e33652b6 136
mzling 0:f0dc2775ec68 137 };
mzling 0:f0dc2775ec68 138 #endif