Code for RFID Robot

Dependencies:   DebounceIn HTTPClient ID12RFID SDFileSystem TextLCD WiflyInterface iniparser mbed

Committer:
4180skrw
Date:
Tue Dec 10 02:17:48 2013 +0000
Revision:
0:9fd64882c5aa
initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
4180skrw 0:9fd64882c5aa 1 #include "LCDText.h"
4180skrw 0:9fd64882c5aa 2
4180skrw 0:9fd64882c5aa 3 void clearLCD() {
4180skrw 0:9fd64882c5aa 4 char buff[33];
4180skrw 0:9fd64882c5aa 5 memset(buff, ' ', 32);
4180skrw 0:9fd64882c5aa 6 buff[32] = '\0';
4180skrw 0:9fd64882c5aa 7 mylcd.printf(buff);
4180skrw 0:9fd64882c5aa 8 }
4180skrw 0:9fd64882c5aa 9
4180skrw 0:9fd64882c5aa 10 //clears LCD and prints the two strings centered on each line
4180skrw 0:9fd64882c5aa 11 //max length of each string is 16
4180skrw 0:9fd64882c5aa 12 void printLCD(const char* string1, const char* string2) {
4180skrw 0:9fd64882c5aa 13 char buff[33];
4180skrw 0:9fd64882c5aa 14 memset(buff, ' ', 32);
4180skrw 0:9fd64882c5aa 15 buff[32] = '\0';
4180skrw 0:9fd64882c5aa 16 //clear LCD
4180skrw 0:9fd64882c5aa 17 clearLCD();
4180skrw 0:9fd64882c5aa 18
4180skrw 0:9fd64882c5aa 19 //print to LCD
4180skrw 0:9fd64882c5aa 20 if(string1) {
4180skrw 0:9fd64882c5aa 21 memcpy(buff+(16-strlen(string1))/2, string1, strlen(string1));
4180skrw 0:9fd64882c5aa 22 }
4180skrw 0:9fd64882c5aa 23 if(string2) {
4180skrw 0:9fd64882c5aa 24 memcpy(buff+16+(16-strlen(string2))/2, string2, strlen(string2));
4180skrw 0:9fd64882c5aa 25 }
4180skrw 0:9fd64882c5aa 26 mylcd.printf(buff);
4180skrw 0:9fd64882c5aa 27 }
4180skrw 0:9fd64882c5aa 28
4180skrw 0:9fd64882c5aa 29 //creates a menu with with a title, controlled by the up/down/select buttons
4180skrw 0:9fd64882c5aa 30 //returns index of option selected
4180skrw 0:9fd64882c5aa 31 int displayMenu(const char* menuTitle, const char** menuOptions, int numOptions) {
4180skrw 0:9fd64882c5aa 32 int curSelection = 0;
4180skrw 0:9fd64882c5aa 33
4180skrw 0:9fd64882c5aa 34 printLCD(menuTitle, menuOptions[curSelection]);
4180skrw 0:9fd64882c5aa 35 if(!up || !down || !select || !back) wait(.3);
4180skrw 0:9fd64882c5aa 36 while(1) {
4180skrw 0:9fd64882c5aa 37 if(!up) {
4180skrw 0:9fd64882c5aa 38 curSelection = (curSelection == numOptions-1) ? 0 : (curSelection + 1);
4180skrw 0:9fd64882c5aa 39 printLCD(menuTitle, menuOptions[curSelection]);
4180skrw 0:9fd64882c5aa 40 if(!up) wait(.2);
4180skrw 0:9fd64882c5aa 41 }
4180skrw 0:9fd64882c5aa 42 if(!down) {
4180skrw 0:9fd64882c5aa 43 curSelection = (curSelection == 0) ? (numOptions - 1) : (curSelection - 1);
4180skrw 0:9fd64882c5aa 44 printLCD(menuTitle, menuOptions[curSelection]);
4180skrw 0:9fd64882c5aa 45 if(!down) wait(.2);
4180skrw 0:9fd64882c5aa 46 }
4180skrw 0:9fd64882c5aa 47 if(!select) {
4180skrw 0:9fd64882c5aa 48 clearLCD();
4180skrw 0:9fd64882c5aa 49 return curSelection;
4180skrw 0:9fd64882c5aa 50 }
4180skrw 0:9fd64882c5aa 51 if(!back) {
4180skrw 0:9fd64882c5aa 52 clearLCD();
4180skrw 0:9fd64882c5aa 53 return -1;
4180skrw 0:9fd64882c5aa 54 }
4180skrw 0:9fd64882c5aa 55 }
4180skrw 0:9fd64882c5aa 56 }