BAT / Mbed 2 deprecated BAT_Read_Final

Dependencies:   SDFileSystem emic2 mbed-rtos mbed

Fork of BAT_senior_design_Testnew by BAT

Committer:
nnguyen45
Date:
Tue Dec 05 03:31:58 2017 +0000
Revision:
43:82d67fb53e61
Parent:
42:44a898adef26
Working with mode button

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nnguyen45 0:5887cb744114 1 #include "mbed.h"
nnguyen45 0:5887cb744114 2 #include "buttonArray.h"
nnguyen45 0:5887cb744114 3
nnguyen45 43:82d67fb53e61 4 // type mode
nnguyen45 43:82d67fb53e61 5
nnguyen45 0:5887cb744114 6 // buttonArray constructor
nnguyen45 0:5887cb744114 7 buttonArray::buttonArray(button b1, button b2, button b3, button b4, button b5, button b6)
nnguyen45 0:5887cb744114 8 : button1(b1), button2(b2), button3(b3), button4(b4), button5(b5), button6(b6) {}
nnguyen45 0:5887cb744114 9
nnguyen45 43:82d67fb53e61 10 //Serial pc(USBTX, USBRX);
nnguyen45 43:82d67fb53e61 11
nnguyen45 0:5887cb744114 12 // FUNCTIONS
nnguyen45 0:5887cb744114 13
nnguyen45 0:5887cb744114 14 // map input braille to ascii
nnguyen45 0:5887cb744114 15 // braille respresentation here - https://en.wikipedia.org/wiki/Braille_ASCII
nnguyen45 0:5887cb744114 16 char buttonArray::checkVal(char* braille)
nnguyen45 0:5887cb744114 17 {
nnguyen45 43:82d67fb53e61 18 //pc.printf(" checkVal \n");
nnguyen45 43:82d67fb53e61 19 //char* braille;
nnguyen45 0:5887cb744114 20 char val = 'K';
nnguyen45 43:82d67fb53e61 21 /*int test = button1.getPress();
nnguyen45 43:82d67fb53e61 22 sprintf(braille, "%d%d%d%d%d%d", test, button2.getPress(),
nnguyen45 43:82d67fb53e61 23 button3.getPress(), button4.getPress(), button5.getPress(), button6.getPress());*/
nnguyen45 43:82d67fb53e61 24 //pc.printf(" %s \n", braille);
nnguyen45 0:5887cb744114 25 if (strcmp(braille, "000000") == 0) val = 'X';
nnguyen45 0:5887cb744114 26 if (strcmp(braille, "011111") == 0) val = 'A';
nnguyen45 0:5887cb744114 27 if (strcmp(braille, "001111") == 0) val = 'B';
nnguyen45 0:5887cb744114 28 if (strcmp(braille, "011011") == 0) val = 'C';
nnguyen45 0:5887cb744114 29 if (strcmp(braille, "011001") == 0) val = 'D';
nnguyen45 0:5887cb744114 30 if (strcmp(braille, "011101") == 0) val = 'E';
nnguyen45 0:5887cb744114 31 if (strcmp(braille, "001011") == 0) val = 'F';
nnguyen45 0:5887cb744114 32 if (strcmp(braille, "001001") == 0) val = 'G';
nnguyen45 0:5887cb744114 33 if (strcmp(braille, "001101") == 0) val = 'H';
nnguyen45 1:f3d363ca2343 34 if (strcmp(braille, "101011") == 0) val = 'I';
nnguyen45 0:5887cb744114 35 if (strcmp(braille, "101001") == 0) val = 'J';
nnguyen45 43:82d67fb53e61 36 /*if (strcmp(braille, "011111") == 0) val = 'K';
nnguyen45 43:82d67fb53e61 37 if (strcmp(braille, "000111") == 0) val = 'L';*/
nnguyen45 0:5887cb744114 38 if (strcmp(braille, "010011") == 0) val = 'M';
nnguyen45 1:f3d363ca2343 39 if (strcmp(braille, "010001") == 0) val = 'N';
nnguyen45 0:5887cb744114 40 if (strcmp(braille, "010101") == 0) val = 'O';
nnguyen45 43:82d67fb53e61 41 /*if (strcmp(braille, "000011") == 0) val = 'P';
nnguyen45 1:f3d363ca2343 42 if (strcmp(braille, "000001") == 0) val = 'Q';
nnguyen45 1:f3d363ca2343 43 if (strcmp(braille, "000101") == 0) val = 'R';
nnguyen45 1:f3d363ca2343 44 if (strcmp(braille, "100011") == 0) val = 'S';
nnguyen45 1:f3d363ca2343 45 if (strcmp(braille, "100001") == 0) val = 'T';
nnguyen45 1:f3d363ca2343 46 if (strcmp(braille, "010110") == 0) val = 'U';
nnguyen45 1:f3d363ca2343 47 if (strcmp(braille, "000110") == 0) val = 'V';
nnguyen45 1:f3d363ca2343 48 if (strcmp(braille, "101000") == 0) val = 'W';
nnguyen45 43:82d67fb53e61 49 if (strcmp(braille, "010010") == 0) val = 'X';
nnguyen45 1:f3d363ca2343 50 if (strcmp(braille, "010000") == 0) val = 'Y';
nnguyen45 43:82d67fb53e61 51 if (strcmp(braille, "010100") == 0) val = 'Z';*/
nnguyen45 0:5887cb744114 52 // check if reset
nnguyen45 0:5887cb744114 53 if (strcmp(braille, "111111") == 0) val = 'Z';
nnguyen45 43:82d67fb53e61 54 //pc.printf(" %c \n", val);
nnguyen45 0:5887cb744114 55 return val;
nnguyen45 0:5887cb744114 56 }
nnguyen45 0:5887cb744114 57
nnguyen45 0:5887cb744114 58 // get braille represention of char
nnguyen45 0:5887cb744114 59 char* buttonArray::getBraille(char val)
nnguyen45 0:5887cb744114 60 {
nnguyen45 0:5887cb744114 61 char* braille;
nnguyen45 0:5887cb744114 62 if (val == 'A') braille = "011111";
nnguyen45 42:44a898adef26 63 if (val == 'B') braille = "001111";
nnguyen45 42:44a898adef26 64 if (val == 'C') braille = "011011";
nnguyen45 42:44a898adef26 65 if (val == 'D') braille = "011001";
nnguyen45 42:44a898adef26 66 if (val == 'E') braille = "011101";
nnguyen45 42:44a898adef26 67 if (val == 'F') braille = "001011";
nnguyen45 42:44a898adef26 68 if (val == 'G') braille = "001001";
nnguyen45 42:44a898adef26 69 if (val == 'H') braille = "001101";
nnguyen45 42:44a898adef26 70 if (val == 'I') braille = "101011";
nnguyen45 42:44a898adef26 71 if (val == 'J') braille = "101001";
nnguyen45 43:82d67fb53e61 72 /*if (val == 'K') braille = "011111";
nnguyen45 43:82d67fb53e61 73 if (val == 'L') braille = "000111";*/
nnguyen45 0:5887cb744114 74 if (val == 'M') braille = "010011";
nnguyen45 42:44a898adef26 75 if (val == 'N') braille = "010001";
nnguyen45 0:5887cb744114 76 if (val == 'O') braille = "010101";
nnguyen45 43:82d67fb53e61 77 /*if (val == 'P') braille = "000011";
nnguyen45 42:44a898adef26 78 if (val == 'Q') braille = "000001";
nnguyen45 42:44a898adef26 79 if (val == 'R') braille = "000101";
nnguyen45 42:44a898adef26 80 if (val == 'S') braille = "100011";
nnguyen45 42:44a898adef26 81 if (val == 'T') braille = "100001";
nnguyen45 42:44a898adef26 82 if (val == 'U') braille = "010110";
nnguyen45 42:44a898adef26 83 if (val == 'V') braille = "000110";
nnguyen45 42:44a898adef26 84 if (val == 'W') braille = "101000";
nnguyen45 43:82d67fb53e61 85 if (val == 'X') braille = "010010";
nnguyen45 42:44a898adef26 86 if (val == 'Y') braille = "010000";
nnguyen45 43:82d67fb53e61 87 if (val == 'Z') braille = "010100";*/
nnguyen45 0:5887cb744114 88 // check if reset
nnguyen45 0:5887cb744114 89 if (val == ' ') braille = "111111";
nnguyen45 0:5887cb744114 90 return braille;
nnguyen45 0:5887cb744114 91 }
nnguyen45 0:5887cb744114 92
nnguyen45 0:5887cb744114 93 // return an array of which pins need to be up
nnguyen45 0:5887cb744114 94 int* buttonArray::pinsUp(char val)
nnguyen45 0:5887cb744114 95 {
nnguyen45 0:5887cb744114 96 int* pinsup;
nnguyen45 43:82d67fb53e61 97 //pinsup = new int[7];
nnguyen45 0:5887cb744114 98 char* braille = getBraille(val);
nnguyen45 0:5887cb744114 99 int j = 1;
nnguyen45 0:5887cb744114 100 for (int i = 0; i < 6; i++) {
nnguyen45 0:5887cb744114 101 if (braille[i] == '0') {
nnguyen45 0:5887cb744114 102 pinsup[j] = i+1;
nnguyen45 0:5887cb744114 103 j++;
nnguyen45 0:5887cb744114 104 }
nnguyen45 0:5887cb744114 105 }
nnguyen45 0:5887cb744114 106 // record size of array in the first element
nnguyen45 0:5887cb744114 107 pinsup[0] = j;
nnguyen45 0:5887cb744114 108 return pinsup;
nnguyen45 0:5887cb744114 109 }
nnguyen45 0:5887cb744114 110
nnguyen45 0:5887cb744114 111 // return feedback on which pins need to be corrected
nnguyen45 0:5887cb744114 112 // takes in current and actual char as input and returns status of each char
nnguyen45 0:5887cb744114 113 int* buttonArray::wrongPins(char* inarr, char actual)
nnguyen45 0:5887cb744114 114 {
nnguyen45 43:82d67fb53e61 115 // TODO check initial value of wrong
nnguyen45 0:5887cb744114 116 int* wrong;
nnguyen45 0:5887cb744114 117 wrong = new int[7];
nnguyen45 0:5887cb744114 118 char* actarr = getBraille(actual);
nnguyen45 43:82d67fb53e61 119 //pc.printf("wrong pins");
nnguyen45 0:5887cb744114 120 int j = 1;
nnguyen45 0:5887cb744114 121 for (int i = 0; i < 6; i++) {
nnguyen45 0:5887cb744114 122 if(inarr[i] != actarr[i]) {
nnguyen45 0:5887cb744114 123 wrong[j] = i+1;
nnguyen45 43:82d67fb53e61 124 //pc.printf("%d ", wrong[j]);
nnguyen45 0:5887cb744114 125 j++;
nnguyen45 0:5887cb744114 126 }
nnguyen45 0:5887cb744114 127 }
nnguyen45 0:5887cb744114 128 // record size of array in the first element
nnguyen45 0:5887cb744114 129 wrong[0] = j;
nnguyen45 0:5887cb744114 130 return wrong;
nnguyen45 0:5887cb744114 131 }
nnguyen45 0:5887cb744114 132
nnguyen45 0:5887cb744114 133 // release buttons
nnguyen45 0:5887cb744114 134 void buttonArray::releaseButtons()
nnguyen45 0:5887cb744114 135 {
nnguyen45 0:5887cb744114 136 if (button1.getPress()) {
nnguyen45 0:5887cb744114 137 button1.moveServoOut();
nnguyen45 0:5887cb744114 138 button1.setState(3);
nnguyen45 0:5887cb744114 139 button1.setPress(0);
nnguyen45 0:5887cb744114 140 }
nnguyen45 0:5887cb744114 141 if (button2.getPress()) {
nnguyen45 0:5887cb744114 142 button2.moveServoOut();
nnguyen45 0:5887cb744114 143 button2.setState(3);
nnguyen45 0:5887cb744114 144 button2.setPress(0);
nnguyen45 0:5887cb744114 145 }
nnguyen45 0:5887cb744114 146 if (button3.getPress()) {
nnguyen45 0:5887cb744114 147 button3.moveServoOut();
nnguyen45 0:5887cb744114 148 button3.setState(3);
nnguyen45 0:5887cb744114 149 button3.setPress(0);
nnguyen45 0:5887cb744114 150 }
nnguyen45 0:5887cb744114 151 if (button4.getPress()) {
nnguyen45 0:5887cb744114 152 button4.moveServoOut();
nnguyen45 0:5887cb744114 153 button4.setState(3);
nnguyen45 0:5887cb744114 154 button4.setPress(0);
nnguyen45 0:5887cb744114 155 }
nnguyen45 0:5887cb744114 156 if (button5.getPress()) {
nnguyen45 0:5887cb744114 157 button5.moveServoOut();
nnguyen45 0:5887cb744114 158 button5.setState(3);
nnguyen45 0:5887cb744114 159 button5.setPress(0);
nnguyen45 0:5887cb744114 160 }
nnguyen45 0:5887cb744114 161 if (button6.getPress()) {
nnguyen45 0:5887cb744114 162 button6.moveServoOut();
nnguyen45 0:5887cb744114 163 button6.setState(3);
nnguyen45 0:5887cb744114 164 button6.setPress(0);
nnguyen45 0:5887cb744114 165 }
nnguyen45 0:5887cb744114 166 }
nnguyen45 0:5887cb744114 167
nnguyen45 0:5887cb744114 168 void buttonArray::setup()
nnguyen45 0:5887cb744114 169 {
nnguyen45 43:82d67fb53e61 170 // servos begin at 30 degrees
nnguyen45 43:82d67fb53e61 171 // replace with a button setup function
nnguyen45 0:5887cb744114 172 button1.setup();
nnguyen45 0:5887cb744114 173 button2.setup();
nnguyen45 0:5887cb744114 174 button3.setup();
nnguyen45 0:5887cb744114 175 button4.setup();
nnguyen45 0:5887cb744114 176 button5.setup();
nnguyen45 0:5887cb744114 177 button6.setup();
nnguyen45 0:5887cb744114 178 }