Test fork nhi
Dependencies: SDFileSystem mbed-rtos mbed emic2
Fork of BAT_senior_design by
Diff: buttonArray.cpp
- Revision:
- 22:6931917c70cd
- Parent:
- 21:c5df903f068a
- Child:
- 23:23970cf718ee
--- a/buttonArray.cpp Wed Nov 01 15:22:13 2017 +0000 +++ b/buttonArray.cpp Fri Nov 03 18:56:01 2017 +0000 @@ -1,6 +1,8 @@ #include "mbed.h" #include "buttonArray.h" +// type mode + // buttonArray constructor buttonArray::buttonArray(button b1, button b2, button b3, button b4, button b5, button b6) : button1(b1), button2(b2), button3(b3), button4(b4), button5(b5), button6(b6) {} @@ -11,21 +13,82 @@ // braille respresentation here - https://en.wikipedia.org/wiki/Braille_ASCII char buttonArray::checkVal() { - char* input; + char* braille; char val = NULL; - sprintf(input, "%d%d%d%d%d%d", button1.getPress(), button2.getPress(), + sprintf(braille, "%d%d%d%d%d%d", button1.getPress(), button2.getPress(), button3.getPress(), button4.getPress(), button5.getPress(), button6.getPress()); - if (strcmp(input, "000000") == 0) val = NULL; - if (strcmp(input, "011111") == 0) val = 'A'; - if (strcmp(input, "001101") == 0) val = 'M'; - if (strcmp(input, "011001") == 0) val = 'O'; + if (strcmp(braille, "000000") == 0) val = '@'; + if (strcmp(braille, "011111") == 0) val = 'A'; + if (strcmp(braille, "001111") == 0) val = 'B'; + if (strcmp(braille, "011011") == 0) val = 'C'; + if (strcmp(braille, "011001") == 0) val = 'D'; + if (strcmp(braille, "011101") == 0) val = 'E'; + if (strcmp(braille, "001011") == 0) val = 'F'; + if (strcmp(braille, "001001") == 0) val = 'G'; + if (strcmp(braille, "001101") == 0) val = 'H'; + if (strcmp(braille, "101101") == 0) val = 'I'; + if (strcmp(braille, "101001") == 0) val = 'J'; + /*if (strcmp(braille, "011111") == 0) val = 'K'; + if (strcmp(braille, "011111") == 0) val = 'L'; + if (strcmp(braille, "011111") == 0) val = 'N'; + if (strcmp(braille, "011111") == 0) val = 'P'; + if (strcmp(braille, "011111") == 0) val = 'Q'; + if (strcmp(braille, "011111") == 0) val = 'R'; + if (strcmp(braille, "011111") == 0) val = 'S'; + if (strcmp(braille, "011111") == 0) val = 'T'; + if (strcmp(braille, "011111") == 0) val = 'U'; + if (strcmp(braille, "011111") == 0) val = 'V'; + if (strcmp(braille, "011111") == 0) val = 'W'; + if (strcmp(braille, "011111") == 0) val = 'X'; + if (strcmp(braille, "011111") == 0) val = 'Y'; + if (strcmp(braille, "011111") == 0) val = 'Z'; + if (strcmp(braille, "010101") == 0) val = 'O';*/ // check if reset - if (strcmp(input, "111111") == 0) val = ' '; + if (strcmp(braille, "111111") == 0) val = '!'; return val; } -// return feedback on which pin to correct +// get braille represention of char +char* buttonArray::getBraille(char val) +{ + char* braille; + if (val == NULL) braille = "000000"; + if (val == 'A') braille = "011111"; + if (val == 'M') braille = "010011"; + if (val == 'O') braille = "010101"; + // check if reset + if (val == ' ') braille = "111111"; + return braille; +} +// return an array of which pins need to be up +int* buttonArray::pinsToPress(char val) +{ + int* pinstopress; + char* braille = getBraille(val); + int j = 0; + for (int i = 0; i < 6; i++) { + if (braille[i] == '0') { + pinstopress[j] = i; + j++; + } + } + return pinstopress; +} + +// return feedback on which pins need to be corrected +// takes in current and actual char as input and returns status of each char +int* buttonArray::wrongPins(char input, char actual) +{ + if (input == NULL) return NULL; + int wrong[6]; + char* inarr = getBraille(input); + char* actarr = getBraille(actual); + for (int i = 0; i < 6; i++) { + wrong[i] = (inarr[i] != actarr[i]); + } + return wrong; +} // release buttons void buttonArray::releaseButtons() @@ -36,5 +99,3 @@ button1.setPress(0); } } -// -