Nathaniel Honka / Mbed 2 deprecated Data-Management-Honka

Dependencies:   ExoController MODSERIAL SDFileSystem_HelloWorld UI-Honka mbed

Fork of Data Management by HEL's Angels

Committer:
mzling
Date:
Wed Feb 18 01:11:47 2015 +0000
Revision:
9:26e200175e0e
Parent:
8:f8fd59fe3e11
Child:
10:057620949ce1
Removed print statements--SDCard checking functions complete.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
perr1940 0:cbb61997e231 1 #include "mbed.h"
perr1940 0:cbb61997e231 2 #include "MODSERIAL.h"
perr1940 0:cbb61997e231 3 #include "initDatabed.h"
mzling 8:f8fd59fe3e11 4 #include "UserInterface.h"
perr1940 0:cbb61997e231 5
perr1940 0:cbb61997e231 6 Timer t_debug;
mzling 8:f8fd59fe3e11 7 UserInterface userInterface;
mzling 8:f8fd59fe3e11 8
mzling 8:f8fd59fe3e11 9
mzling 8:f8fd59fe3e11 10 bool check_errfile()
mzling 8:f8fd59fe3e11 11 {
mzling 9:26e200175e0e 12 //printf("checking errfile\r\n");
mzling 8:f8fd59fe3e11 13 /* This line causes error, reason unknown */
mzling 8:f8fd59fe3e11 14 int *errors = new int[1];
mzling 8:f8fd59fe3e11 15 err.open_for_read("/sd/", "error.txt");
mzling 9:26e200175e0e 16
mzling 9:26e200175e0e 17 //printf("Opened ERR for reading\r\n");
mzling 8:f8fd59fe3e11 18 err.read_from_start(1, errors);
mzling 8:f8fd59fe3e11 19 err.close();
mzling 9:26e200175e0e 20 //printf("Errors[0]: %d\r\n", errors[0]);
mzling 8:f8fd59fe3e11 21 if (errors[0] == 1) {
mzling 8:f8fd59fe3e11 22 return false;
mzling 8:f8fd59fe3e11 23 }
mzling 9:26e200175e0e 24 // printf("Sucess--no errors detected\r\n");
mzling 8:f8fd59fe3e11 25 return true;
mzling 8:f8fd59fe3e11 26 }
mzling 8:f8fd59fe3e11 27
mzling 8:f8fd59fe3e11 28 bool check_sdcard()
mzling 8:f8fd59fe3e11 29 {
mzling 8:f8fd59fe3e11 30 int testArray[] = {1, 2, 3, 4};
mzling 8:f8fd59fe3e11 31 //int badArray[] = {1,2,3,3};
mzling 8:f8fd59fe3e11 32 int *output = new int[4];
mzling 9:26e200175e0e 33 //printf("created output array\r\n");
mzling 8:f8fd59fe3e11 34 testFile.write(4, testArray);
mzling 9:26e200175e0e 35 //printf("wrote to testfile\r\n");
mzling 8:f8fd59fe3e11 36 //testFile.write(4, badArray);
mzling 8:f8fd59fe3e11 37 testFile.read(4, output);
mzling 9:26e200175e0e 38 //printf("read to output\r\n");
mzling 8:f8fd59fe3e11 39 for (int i = 0; i < 4; i++) {
mzling 8:f8fd59fe3e11 40 if (testArray[i] != output[i]) {
mzling 9:26e200175e0e 41 //printf("ERROR--test read failed\r\n");
mzling 8:f8fd59fe3e11 42 int error[] = {0x0001};
mzling 8:f8fd59fe3e11 43 //err("/sd/", "error.txt", true);
mzling 8:f8fd59fe3e11 44 err.open_for_write("/sd/", "error.txt");
mzling 8:f8fd59fe3e11 45 err.write(1, error);
mzling 8:f8fd59fe3e11 46 int *check = new int[1];
mzling 8:f8fd59fe3e11 47 err.read_from_start(1, check);
mzling 8:f8fd59fe3e11 48 err.close();
mzling 9:26e200175e0e 49 //printf("%d writtten to ERR\r\n", check[0]);
mzling 8:f8fd59fe3e11 50 return false;
mzling 8:f8fd59fe3e11 51 }
mzling 8:f8fd59fe3e11 52 }
mzling 9:26e200175e0e 53 //pc.printf("Success! Test read worked\r\n");
mzling 8:f8fd59fe3e11 54 return true;
mzling 8:f8fd59fe3e11 55 }
mzling 8:f8fd59fe3e11 56 /**
mzling 9:26e200175e0e 57 void attachment() {
mzling 9:26e200175e0e 58 phone.attachment();
mzling 9:26e200175e0e 59 }
mzling 9:26e200175e0e 60
mzling 8:f8fd59fe3e11 61 int main() {
mzling 8:f8fd59fe3e11 62 // check_sdcard();
mzling 8:f8fd59fe3e11 63 // int[] errors = new int[10];
mzling 8:f8fd59fe3e11 64 // err.read(10, errors);
mzling 8:f8fd59fe3e11 65 //if (error.hasFlag) {
mzling 8:f8fd59fe3e11 66 //stop startup;
mzling 8:f8fd59fe3e11 67 //}
mzling 8:f8fd59fe3e11 68 printf("Hello world!\r\n");
mzling 9:26e200175e0e 69 // pc.baud(9600);
mzling 8:f8fd59fe3e11 70 interrupt.attach(&attachment, 0.002);
mzling 8:f8fd59fe3e11 71 }
mzling 9:26e200175e0e 72 /**
perr1940 0:cbb61997e231 73 int main()
perr1940 0:cbb61997e231 74 {
mzling 8:f8fd59fe3e11 75 pc.printf("ENTERING MAIN\r\n");
mzling 8:f8fd59fe3e11 76 if (!check_errfile() || !check_sdcard()) {
mzling 8:f8fd59fe3e11 77 pc.printf("Check failed...aborting power-on\r\n");
mzling 8:f8fd59fe3e11 78 return 1;
mzling 8:f8fd59fe3e11 79 }
mzling 8:f8fd59fe3e11 80 }
mzling 8:f8fd59fe3e11 81 */
mzling 8:f8fd59fe3e11 82
mzling 8:f8fd59fe3e11 83 int main()
mzling 8:f8fd59fe3e11 84 {
mzling 9:26e200175e0e 85 //printf("ENTERING MAIN\r\n");
mzling 8:f8fd59fe3e11 86 if (!check_errfile() || !check_sdcard()) {
mzling 9:26e200175e0e 87 //if (!check_sdcard()) {
mzling 8:f8fd59fe3e11 88 printf("Check failed...aborting power-on\r\n");
mzling 8:f8fd59fe3e11 89 return 1;
mzling 8:f8fd59fe3e11 90 }
mzling 8:f8fd59fe3e11 91 printf("ERRFILE/SDCARD checks passed!\r\n");
perr1940 3:ef7e0cbade6d 92 int dataIn[4], dataOut[4], buffer;
perr1940 1:78452728a306 93 dataOut[0]=7;
perr1940 1:78452728a306 94 dataOut[1]=30;
perr1940 2:b87aaf1bc803 95 mainPower=1;//Don't turn on for initial testing
perr1940 0:cbb61997e231 96 initializeDatabed();
perr1940 0:cbb61997e231 97 comm.reply(dataOut[0]);//make this the first message
mzling 8:f8fd59fe3e11 98 printf("DataBed On!\r\n");
perr1940 0:cbb61997e231 99 int counter=0;
perr1940 3:ef7e0cbade6d 100 int ii=0;
perr1940 0:cbb61997e231 101 //float blah=1;
perr1940 0:cbb61997e231 102 //t_debug.start();
perr1940 0:cbb61997e231 103 while (1) { //Run these functions as fast as possible
perr1940 1:78452728a306 104
mzling 8:f8fd59fe3e11 105 if(comm.receive()) {
perr1940 2:b87aaf1bc803 106 dataIn[0] = comm.read();
perr1940 2:b87aaf1bc803 107 comm.reply(UI); // Make this the next reply
perr1940 2:b87aaf1bc803 108 while(dataIn[0]==7) {
perr1940 1:78452728a306 109 if(comm.receive()) {
perr1940 2:b87aaf1bc803 110 dataIn[1]=comm.read();
perr1940 2:b87aaf1bc803 111 comm.reply(22);
perr1940 2:b87aaf1bc803 112 break;
perr1940 2:b87aaf1bc803 113 dataIn[0]=0;
perr1940 2:b87aaf1bc803 114 }
perr1940 2:b87aaf1bc803 115 }
perr1940 2:b87aaf1bc803 116 while(dataIn[1]==30) {
perr1940 2:b87aaf1bc803 117 if(comm.receive()) {
perr1940 2:b87aaf1bc803 118 dataIn[2]=comm.read();
perr1940 2:b87aaf1bc803 119 comm.reply(5);
perr1940 2:b87aaf1bc803 120 pc.printf("Fault: %d, %d ", leftFault.read(), rightFault.read());
perr1940 2:b87aaf1bc803 121 pc.printf("Data1: %u, Data2: %u, Data3: %u\r\n", dataIn[0], dataIn[1], dataIn[2]);
perr1940 2:b87aaf1bc803 122 dataIn[1]=0;
perr1940 1:78452728a306 123 break;
perr1940 1:78452728a306 124 }
mzling 8:f8fd59fe3e11 125 }
perr1940 3:ef7e0cbade6d 126 if(comm.receive()) {
perr1940 3:ef7e0cbade6d 127 buffer = comm.read();
perr1940 3:ef7e0cbade6d 128 if(buffer==0xFE) { //end of message
perr1940 3:ef7e0cbade6d 129 ii=0;
perr1940 3:ef7e0cbade6d 130 dataIn[3]=buffer;
perr1940 3:ef7e0cbade6d 131 comm.reply(5);
perr1940 3:ef7e0cbade6d 132 counter++;
perr1940 3:ef7e0cbade6d 133 if(BMS.read(msg)) {
perr1940 3:ef7e0cbade6d 134 if(msg.id==0x18FF8320) {
perr1940 4:46d4917f2464 135 //pc.printf("%x\r\n",msg.data[0]);
perr1940 3:ef7e0cbade6d 136 }
perr1940 3:ef7e0cbade6d 137 }
perr1940 3:ef7e0cbade6d 138 phone.attachment();
perr1940 3:ef7e0cbade6d 139 } else if(buffer==0xFF) { //beginning of message
perr1940 3:ef7e0cbade6d 140 ii=1;
perr1940 3:ef7e0cbade6d 141 dataIn[0]=buffer;
perr1940 3:ef7e0cbade6d 142 comm.reply(UI);
perr1940 3:ef7e0cbade6d 143 } else if(ii==1) {
perr1940 3:ef7e0cbade6d 144 ii++;
perr1940 3:ef7e0cbade6d 145 dataIn[1]=buffer;
perr1940 3:ef7e0cbade6d 146 comm.reply(52);
perr1940 3:ef7e0cbade6d 147 } else if(ii==2) {
perr1940 3:ef7e0cbade6d 148 ii++;
perr1940 3:ef7e0cbade6d 149 dataIn[2]=buffer;
perr1940 3:ef7e0cbade6d 150 comm.reply(25);
perr1940 0:cbb61997e231 151 }
perr1940 3:ef7e0cbade6d 152
perr1940 0:cbb61997e231 153 }
mzling 8:f8fd59fe3e11 154 if(counter>=15) {
perr1940 3:ef7e0cbade6d 155 UI=0;//set the UI to 0 unless it's changed in checkUI_Xbee()
mzling 8:f8fd59fe3e11 156 userInterface.readBuffer();
mzling 8:f8fd59fe3e11 157 userInterface.checkUI_XBee(); //check UI from Xbee
perr1940 3:ef7e0cbade6d 158 xbeeUI.rxBufferFlush();
perr1940 3:ef7e0cbade6d 159 counter=0;
mzling 8:f8fd59fe3e11 160 // pc.printf("UI: %d\r\n", UI);
perr1940 3:ef7e0cbade6d 161 }
mzling 8:f8fd59fe3e11 162 counter++;
mzling 8:f8fd59fe3e11 163 }
perr1940 2:b87aaf1bc803 164
perr1940 0:cbb61997e231 165 }
perr1940 0:cbb61997e231 166 }