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@2:0fa458722bc3, 2011-07-07 (annotated)
- 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?
User | Revision | Line number | New 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 |