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

FTSE100.cpp

Committer:
d_worrall
Date:
2011-07-07
Revision:
2:0fa458722bc3
Parent:
1:10d951807d06
Child:
3:4ccc72cfec87

File content as of revision 2:0fa458722bc3:

#include "mbed.h"
#include "EthernetNetIf.h"
#include "HTTPClient.h"
#include "dispBoB.h"

EthernetNetIf eth; 
HTTPClient http;
Serial pc(USBTX, USBRX);
dispBoB db(p28, p27, p26);
  
int main() {

    printf("Start\n\r");
    printf("\r\nSetting up...\r\n");
    
    EthernetErr ethErr = eth.setup();                   //Setup ethernet connection
    if(ethErr) { 
        printf("Error %d in setup.\n\r", ethErr);
        return -1;
    }
    printf("\r\nSetup OK\r\n");
    
    db.init();                                          //initialise screen
    db.cls();
    
    HTTPText txt;                                       //instantiate HTTPStream object
    while(1){
        HTTPResult r = http.get("http://www.mbed.webatu.com/dispBoBApp.php", &txt);   //load page into buffer
        if(r==HTTP_OK){
            string str = txt.gets();                    //fetch string and store in str
             
            size_t length;                              //make some variables
            char buffer[20];
             
            size_t found=str.find("<");                 //tell me where '<' first appears
            if(found!=string::npos){   
                length=str.copy(buffer,int(found),0);   //copy everything from start of string up until '<' character and return length
                buffer[length]='\0';                    //null terminate my buffer
                string dispString = buffer;             //convert buffer from type char* to string
                db.scroll("FTSE100", 0.2);              //scroll "FTSE100" across the screen
                db.locate(0);
                db.printf("%s", dispString);            //then print FTSE100 value to screen
            }   
        } else {
            pc.printf("Error\n\r");                     //just in case
        }
        wait(2);                                        //wait 2 seconds before looping, so we don't pester the servers too much
    }
}