mbed publishes real time up-to-date FTSE100 index data and posts it to a 7 segment multipurpose mbed breakout board

Dependencies:   EthernetNetIf dispBoB mbed

Committer:
d_worrall
Date:
Thu Jul 07 08:39:50 2011 +0000
Revision:
2:0fa458722bc3
Parent:
1:10d951807d06
Child:
3:4ccc72cfec87
version2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
d_worrall 0:60eb2e98d56c 1 #include "mbed.h"
d_worrall 0:60eb2e98d56c 2 #include "EthernetNetIf.h"
d_worrall 0:60eb2e98d56c 3 #include "HTTPClient.h"
d_worrall 0:60eb2e98d56c 4 #include "dispBoB.h"
d_worrall 0:60eb2e98d56c 5
d_worrall 0:60eb2e98d56c 6 EthernetNetIf eth;
d_worrall 0:60eb2e98d56c 7 HTTPClient http;
d_worrall 0:60eb2e98d56c 8 Serial pc(USBTX, USBRX);
d_worrall 0:60eb2e98d56c 9 dispBoB db(p28, p27, p26);
d_worrall 0:60eb2e98d56c 10
d_worrall 0:60eb2e98d56c 11 int main() {
d_worrall 0:60eb2e98d56c 12
d_worrall 0:60eb2e98d56c 13 printf("Start\n\r");
d_worrall 0:60eb2e98d56c 14 printf("\r\nSetting up...\r\n");
d_worrall 0:60eb2e98d56c 15
d_worrall 1:10d951807d06 16 EthernetErr ethErr = eth.setup(); //Setup ethernet connection
d_worrall 0:60eb2e98d56c 17 if(ethErr) {
d_worrall 0:60eb2e98d56c 18 printf("Error %d in setup.\n\r", ethErr);
d_worrall 0:60eb2e98d56c 19 return -1;
d_worrall 0:60eb2e98d56c 20 }
d_worrall 0:60eb2e98d56c 21 printf("\r\nSetup OK\r\n");
d_worrall 0:60eb2e98d56c 22
d_worrall 2:0fa458722bc3 23 db.init(); //initialise screen
d_worrall 0:60eb2e98d56c 24 db.cls();
d_worrall 0:60eb2e98d56c 25
d_worrall 1:10d951807d06 26 HTTPText txt; //instantiate HTTPStream object
d_worrall 0:60eb2e98d56c 27 while(1){
d_worrall 0:60eb2e98d56c 28 HTTPResult r = http.get("http://www.mbed.webatu.com/dispBoBApp.php", &txt); //load page into buffer
d_worrall 0:60eb2e98d56c 29 if(r==HTTP_OK){
d_worrall 1:10d951807d06 30 string str = txt.gets(); //fetch string and store in str
d_worrall 0:60eb2e98d56c 31
d_worrall 1:10d951807d06 32 size_t length; //make some variables
d_worrall 0:60eb2e98d56c 33 char buffer[20];
d_worrall 0:60eb2e98d56c 34
d_worrall 1:10d951807d06 35 size_t found=str.find("<"); //tell me where '<' first appears
d_worrall 0:60eb2e98d56c 36 if(found!=string::npos){
d_worrall 1:10d951807d06 37 length=str.copy(buffer,int(found),0); //copy everything from start of string up until '<' character and return length
d_worrall 1:10d951807d06 38 buffer[length]='\0'; //null terminate my buffer
d_worrall 1:10d951807d06 39 string dispString = buffer; //convert buffer from type char* to string
d_worrall 1:10d951807d06 40 db.scroll("FTSE100", 0.2); //scroll "FTSE100" across the screen
d_worrall 0:60eb2e98d56c 41 db.locate(0);
d_worrall 1:10d951807d06 42 db.printf("%s", dispString); //then print FTSE100 value to screen
d_worrall 0:60eb2e98d56c 43 }
d_worrall 0:60eb2e98d56c 44 } else {
d_worrall 1:10d951807d06 45 pc.printf("Error\n\r"); //just in case
d_worrall 0:60eb2e98d56c 46 }
d_worrall 1:10d951807d06 47 wait(2); //wait 2 seconds before looping, so we don't pester the servers too much
d_worrall 0:60eb2e98d56c 48 }
d_worrall 0:60eb2e98d56c 49 }
d_worrall 0:60eb2e98d56c 50
d_worrall 0:60eb2e98d56c 51
d_worrall 0:60eb2e98d56c 52
d_worrall 0:60eb2e98d56c 53
d_worrall 0:60eb2e98d56c 54
d_worrall 0:60eb2e98d56c 55
d_worrall 0:60eb2e98d56c 56
d_worrall 0:60eb2e98d56c 57