Fork of original senior design repo

Dependencies:   SDFileSystem mbed-rtos mbed wave_player emic2

Fork of BAT_senior_design by BAT

Revision:
21:6931917c70cd
Parent:
20:c5df903f068a
Child:
22: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);
     }
 }
-//
-