ControllerBox directs electromechanical equipment in restaurants to display information.

Dependencies:   TextLCD MbedJSONValue libMotiv picojson mbed-rtos mbed

Fork of Mbed_MotiVControllerBox by Tim Wöstemeier

Committer:
TimWoo
Date:
Sat Oct 25 00:11:12 2014 +0000
Revision:
0:2279181caaa1
Child:
1:d54aed10ddf3
Initial Version,; Bare classes made for the main application and the devices that will be controlled.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TimWoo 0:2279181caaa1 1 #include "mbed.h"
TimWoo 0:2279181caaa1 2 //the library "TextLCD.h" was slightly altered to work with the GDM2004D LCD
TimWoo 0:2279181caaa1 3 #include "TextLCD/TextLCD.h"
TimWoo 0:2279181caaa1 4 #include "Controller.h"
TimWoo 0:2279181caaa1 5 #include "MODSERIAL.h"
TimWoo 0:2279181caaa1 6 #include <string>
TimWoo 0:2279181caaa1 7
TimWoo 0:2279181caaa1 8 //the object "lcd" is initialized to act as a TextLCD with 20x4 characters
TimWoo 0:2279181caaa1 9 TextLCD lcd(p26, p25, p24, p23, p22, p20, p19, TextLCD::LCD20x4);
TimWoo 0:2279181caaa1 10
TimWoo 0:2279181caaa1 11
TimWoo 0:2279181caaa1 12 //inputs
TimWoo 0:2279181caaa1 13 DigitalIn Up(p8);
TimWoo 0:2279181caaa1 14 DigitalIn Down(p14);
TimWoo 0:2279181caaa1 15
TimWoo 0:2279181caaa1 16 //outputs
TimWoo 0:2279181caaa1 17 DigitalOut led(p6);
TimWoo 0:2279181caaa1 18
TimWoo 0:2279181caaa1 19 //Comms
TimWoo 0:2279181caaa1 20 Serial pc(USBTX, USBRX); //tx, rx
TimWoo 0:2279181caaa1 21 MODSERIAL rfd(p9, p10); //tx, rx
TimWoo 0:2279181caaa1 22
TimWoo 0:2279181caaa1 23 //
TimWoo 0:2279181caaa1 24 string displayLines[26] = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
TimWoo 0:2279181caaa1 25
TimWoo 0:2279181caaa1 26 //Main functionality in here
TimWoo 0:2279181caaa1 27 Controller c(&lcd);
TimWoo 0:2279181caaa1 28
TimWoo 0:2279181caaa1 29 void setup(); //Called once to setup
TimWoo 0:2279181caaa1 30 void runProgram(); //Program with loop
TimWoo 0:2279181caaa1 31
TimWoo 0:2279181caaa1 32 int main()
TimWoo 0:2279181caaa1 33 {
TimWoo 0:2279181caaa1 34 setup();
TimWoo 0:2279181caaa1 35
TimWoo 0:2279181caaa1 36 //the LCD is cleared using function .cls()
TimWoo 0:2279181caaa1 37 lcd.cls();
TimWoo 0:2279181caaa1 38 //a "\n" in a text string causes a line feed
TimWoo 0:2279181caaa1 39 lcd.printf("HELLO WORLDZ\n");
TimWoo 0:2279181caaa1 40 //if the end of a line is reached, the text is written to the next line automatically
TimWoo 0:2279181caaa1 41 //lcd.printf("Testbed for mbed\nLCD example software with altered library");
TimWoo 0:2279181caaa1 42
TimWoo 0:2279181caaa1 43 pc.printf("Entering loop\r\n");
TimWoo 0:2279181caaa1 44
TimWoo 0:2279181caaa1 45 //the endless loop keeps mbed in low power mode
TimWoo 0:2279181caaa1 46 runProgram();
TimWoo 0:2279181caaa1 47 }
TimWoo 0:2279181caaa1 48
TimWoo 0:2279181caaa1 49
TimWoo 0:2279181caaa1 50 void setup()
TimWoo 0:2279181caaa1 51 {
TimWoo 0:2279181caaa1 52 pc.printf("Setup Controller Box\r\n");
TimWoo 0:2279181caaa1 53 rfd.baud(9600);
TimWoo 0:2279181caaa1 54 }
TimWoo 0:2279181caaa1 55
TimWoo 0:2279181caaa1 56 void runProgram()
TimWoo 0:2279181caaa1 57 {
TimWoo 0:2279181caaa1 58 c._lcd->cls();
TimWoo 0:2279181caaa1 59 c._lcd->locate(0,0);
TimWoo 0:2279181caaa1 60 c.displayStatus();
TimWoo 0:2279181caaa1 61
TimWoo 0:2279181caaa1 62 if(!rfd.writeable())
TimWoo 0:2279181caaa1 63 {
TimWoo 0:2279181caaa1 64 c._lcd->locate(0,1);
TimWoo 0:2279181caaa1 65 c._lcd->clearLine();
TimWoo 0:2279181caaa1 66 c._lcd->printf("rfd not writeable");
TimWoo 0:2279181caaa1 67 } else {
TimWoo 0:2279181caaa1 68 c._lcd->locate(0,1);
TimWoo 0:2279181caaa1 69 c._lcd->clearLine();
TimWoo 0:2279181caaa1 70 c._lcd->printf("rfd writeable");
TimWoo 0:2279181caaa1 71 if(!rfd.txBufferSane())
TimWoo 0:2279181caaa1 72 {
TimWoo 0:2279181caaa1 73 c._lcd->locate(0,3);
TimWoo 0:2279181caaa1 74 c._lcd->printf("buffer not sane");
TimWoo 0:2279181caaa1 75 }
TimWoo 0:2279181caaa1 76 }
TimWoo 0:2279181caaa1 77
TimWoo 0:2279181caaa1 78 char received = 'a';
TimWoo 0:2279181caaa1 79
TimWoo 0:2279181caaa1 80
TimWoo 0:2279181caaa1 81 while(1) {
TimWoo 0:2279181caaa1 82 // rfd.printf("aaiPoesjes"); //TEST broadcast text
TimWoo 0:2279181caaa1 83 received = rfd.txGetLastChar();
TimWoo 0:2279181caaa1 84 c.displWriteLine(3, 'a');
TimWoo 0:2279181caaa1 85 pc.printf("%c", received);
TimWoo 0:2279181caaa1 86 received = 'b';
TimWoo 0:2279181caaa1 87 if(!Up)
TimWoo 0:2279181caaa1 88 {
TimWoo 0:2279181caaa1 89 c.setStatus(c.BUSY);
TimWoo 0:2279181caaa1 90 wait(1);
TimWoo 0:2279181caaa1 91 rfd.printf("%s","161;");
TimWoo 0:2279181caaa1 92 wait_ms(100);
TimWoo 0:2279181caaa1 93 rfd.printf("%s","308;");
TimWoo 0:2279181caaa1 94 } else {
TimWoo 0:2279181caaa1 95 c.setStatus(c.READY);
TimWoo 0:2279181caaa1 96 }
TimWoo 0:2279181caaa1 97 wait_ms(1000);
TimWoo 0:2279181caaa1 98 //__WFI();
TimWoo 0:2279181caaa1 99 }
TimWoo 0:2279181caaa1 100 }