This application translates HTTP GET requests into the proper RS232 commands to control a Sharp Aquos TV

Dependencies:   EthernetInterface mbed-rtos mbed

Committer:
davisw00
Date:
Sat Sep 06 23:47:21 2014 +0000
Revision:
2:3637af74f7f0
Parent:
0:427a14ebab60
Implemented Channel commands.  Wait for response is not working; therefore commands are followed by a 50ms wait

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davisw00 0:427a14ebab60 1 #include "mbed.h"
davisw00 0:427a14ebab60 2 #include "EthernetInterface.h"
davisw00 0:427a14ebab60 3 #include "rtos.h"
davisw00 0:427a14ebab60 4 #include "DebugPort.h"
davisw00 0:427a14ebab60 5 #include "AquosHTTP.h"
davisw00 0:427a14ebab60 6 #include "AquosTV.h"
davisw00 0:427a14ebab60 7 #include <string.h>
davisw00 0:427a14ebab60 8
davisw00 0:427a14ebab60 9 #define DBG 1
davisw00 0:427a14ebab60 10
davisw00 0:427a14ebab60 11 const char ip[] = "192.168.16.36";
davisw00 0:427a14ebab60 12 const char mask[] = "255.255.255.0";
davisw00 0:427a14ebab60 13 const char gateway[] = "192.168.16.1";
davisw00 0:427a14ebab60 14
davisw00 0:427a14ebab60 15 int main() {
davisw00 0:427a14ebab60 16 bool loop=true;
davisw00 0:427a14ebab60 17 DebugPort dbg;
davisw00 2:3637af74f7f0 18 while(true) {
davisw00 2:3637af74f7f0 19 loop=true;
davisw00 2:3637af74f7f0 20 dbg.setLED(1,1,0); //yellow for init
davisw00 2:3637af74f7f0 21 wait(0.1);
davisw00 0:427a14ebab60 22
davisw00 2:3637af74f7f0 23 AquosTV tv(&dbg);
davisw00 2:3637af74f7f0 24 AquosHTTP server(&dbg,&tv);
davisw00 2:3637af74f7f0 25 server.init(ip,mask,gateway);
davisw00 0:427a14ebab60 26
davisw00 2:3637af74f7f0 27 while(loop) {
davisw00 2:3637af74f7f0 28 dbg.setLED(0,0,0); //off while waiting
davisw00 2:3637af74f7f0 29 server.waitForRequest();
davisw00 2:3637af74f7f0 30 dbg.setLED(0,0,1); //blue in progress
davisw00 2:3637af74f7f0 31 if( strncmp(server.getRequest(),"GET /help",9)==0) {
davisw00 2:3637af74f7f0 32 dbg.setLED(0,1,0);
davisw00 2:3637af74f7f0 33 server.returnHelp();
davisw00 2:3637af74f7f0 34 }
davisw00 2:3637af74f7f0 35 else {
davisw00 2:3637af74f7f0 36 if( tv.processCommand( server.getRequest() )) {
davisw00 2:3637af74f7f0 37 dbg.setLED(0,1,0);
davisw00 2:3637af74f7f0 38 dbg.send("Command Success!\n\r");
davisw00 2:3637af74f7f0 39 server.returnSuccess();
davisw00 2:3637af74f7f0 40 }
davisw00 2:3637af74f7f0 41 else {
davisw00 2:3637af74f7f0 42 dbg.setLED(1,0,0);
davisw00 2:3637af74f7f0 43 dbg.send("Command Fail!\n\r");
davisw00 2:3637af74f7f0 44 server.returnFailure();
davisw00 2:3637af74f7f0 45 }
davisw00 2:3637af74f7f0 46 }
davisw00 2:3637af74f7f0 47 loop=(dbg.level()==0);
davisw00 0:427a14ebab60 48 }
davisw00 0:427a14ebab60 49 }
davisw00 0:427a14ebab60 50 }