Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf mbed
main.cpp@2:456410210d03, 2011-02-27 (annotated)
- Committer:
- ikon
- Date:
- Sun Feb 27 23:39:10 2011 +0000
- Revision:
- 2:456410210d03
- Parent:
- 1:c9dad7bc0795
1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ikon | 0:d6b0747774da | 1 | // ********************************************************************* |
ikon | 0:d6b0747774da | 2 | // |
ikon | 0:d6b0747774da | 3 | // Display driver for Solomon SSD2119 controller connected to mbed board |
ikon | 0:d6b0747774da | 4 | // with simple terminal program |
ikon | 0:d6b0747774da | 5 | // |
ikon | 0:d6b0747774da | 6 | // ** szdiditalsquare (eBay) display connected on SPI + control pins ** |
ikon | 0:d6b0747774da | 7 | // mbed SSD2219 (on szdigitalsquare board) |
ikon | 0:d6b0747774da | 8 | // p5 -mosi (28) SDA |
ikon | 0:d6b0747774da | 9 | // p6 -miso NC |
ikon | 0:d6b0747774da | 10 | // p7 -sck (26) SCL |
ikon | 0:d6b0747774da | 11 | // p8 -cs (19) CS |
ikon | 0:d6b0747774da | 12 | // p15-res (23) RESET |
ikon | 0:d6b0747774da | 13 | // p16-c/d (20) RS |
ikon | 0:d6b0747774da | 14 | // p17-rd (22) RD |
ikon | 0:d6b0747774da | 15 | // p18-wr (21) WR |
ikon | 0:d6b0747774da | 16 | // |
ikon | 0:d6b0747774da | 17 | // Pins PS0 - PS3 should be open on system board = 4bit SPI mode |
ikon | 0:d6b0747774da | 18 | // |
ikon | 0:d6b0747774da | 19 | // After sucessful init you'll see color bars on whole display and |
ikon | 0:d6b0747774da | 20 | // welcome message. Then you can start typing in your serial terminal |
ikon | 0:d6b0747774da | 21 | // and information will appear on the display |
ikon | 0:d6b0747774da | 22 | // |
ikon | 0:d6b0747774da | 23 | // 28.11.2010 port from CrystalFonts & Nokia LCD lib by Imrich Konkol |
ikon | 0:d6b0747774da | 24 | // 29.11.2010 ZX Spectrum SCR viewer added |
ikon | 0:d6b0747774da | 25 | // - to show test.scr from internal mbed drive type \\ at |
ikon | 0:d6b0747774da | 26 | // PC terminal prompt |
ikon | 1:c9dad7bc0795 | 27 | // 01.12.2010 bright fixed, slideshow added, terminal session start |
ikon | 1:c9dad7bc0795 | 28 | // after slideshow finish |
ikon | 2:456410210d03 | 29 | // 04.12.2010 fixed non bright values (3/4 of intensity instead of 1/2) |
ikon | 2:456410210d03 | 30 | // 08.12.2010 added ULA+ format for slideshow (6912 + 64 bytes palette) |
ikon | 0:d6b0747774da | 31 | // ********************************************************************* |
ikon | 0:d6b0747774da | 32 | #include "mbed.h" |
ikon | 2:456410210d03 | 33 | #include "EthernetNetIf.h" |
ikon | 2:456410210d03 | 34 | #include "HTTPClient.h" |
ikon | 2:456410210d03 | 35 | #include "Display.h" |
ikon | 0:d6b0747774da | 36 | |
ikon | 0:d6b0747774da | 37 | LocalFileSystem local("local"); |
ikon | 0:d6b0747774da | 38 | |
ikon | 2:456410210d03 | 39 | /* SPI definitions moved to Display.c module |
ikon | 0:d6b0747774da | 40 | SPI spi(p5, p6, p7); // mosi, miso, sclk |
ikon | 0:d6b0747774da | 41 | DigitalOut DCS(p8); // Display chip select |
ikon | 0:d6b0747774da | 42 | DigitalOut DRS(p15); // Display reset |
ikon | 0:d6b0747774da | 43 | DigitalOut DCD(p16); // Display command/data |
ikon | 0:d6b0747774da | 44 | DigitalOut DRD(p17); // Display read |
ikon | 0:d6b0747774da | 45 | DigitalOut DWR(p18); // Display write |
ikon | 2:456410210d03 | 46 | */ |
ikon | 0:d6b0747774da | 47 | DigitalOut myled(LED1); |
ikon | 0:d6b0747774da | 48 | |
ikon | 0:d6b0747774da | 49 | Serial pc(USBTX, USBRX); //debug info - see raw data being transferred back and forth as GBA is booting |
ikon | 0:d6b0747774da | 50 | |
ikon | 2:456410210d03 | 51 | EthernetNetIf eth; |
ikon | 2:456410210d03 | 52 | HTTPClient http; |
ikon | 2:456410210d03 | 53 | |
ikon | 0:d6b0747774da | 54 | /*----------------------------------------------------------------------------- |
ikon | 0:d6b0747774da | 55 | Global Variables |
ikon | 0:d6b0747774da | 56 | -----------------------------------------------------------------------------*/ |
ikon | 2:456410210d03 | 57 | extern uint16_t FOREGROUND, BACKGROUND; // Display back and foreground - defined in Display.h |
ikon | 2:456410210d03 | 58 | int ShowType = 0; // What images to display: 0 - local, 1 - internet |
ikon | 0:d6b0747774da | 59 | |
ikon | 0:d6b0747774da | 60 | unsigned char cat(char *filename) { |
ikon | 2:456410210d03 | 61 | int c; |
ikon | 0:d6b0747774da | 62 | unsigned int x,y; |
ikon | 0:d6b0747774da | 63 | |
ikon | 0:d6b0747774da | 64 | printf("Opening File...\n"); // Drive should be marked as removed |
ikon | 0:d6b0747774da | 65 | FILE *fp = fopen(filename, "r"); |
ikon | 0:d6b0747774da | 66 | if (!fp) { |
ikon | 0:d6b0747774da | 67 | printf("File %s could not be opened!\n",filename); |
ikon | 0:d6b0747774da | 68 | return(1); |
ikon | 0:d6b0747774da | 69 | } |
ikon | 0:d6b0747774da | 70 | cls(); |
ikon | 0:d6b0747774da | 71 | Display_Home(); |
ikon | 0:d6b0747774da | 72 | x = 0; |
ikon | 0:d6b0747774da | 73 | y = 0; |
ikon | 0:d6b0747774da | 74 | |
ikon | 0:d6b0747774da | 75 | while ( ( c=fgetc(fp) ) != EOF ) { |
ikon | 0:d6b0747774da | 76 | |
ikon | 0:d6b0747774da | 77 | LcdGotoXY(x,y); |
ikon | 0:d6b0747774da | 78 | |
ikon | 0:d6b0747774da | 79 | if (c == 13) { |
ikon | 0:d6b0747774da | 80 | y++; |
ikon | 0:d6b0747774da | 81 | x=0; |
ikon | 0:d6b0747774da | 82 | }; |
ikon | 0:d6b0747774da | 83 | if (c == 8) { |
ikon | 0:d6b0747774da | 84 | x--; |
ikon | 0:d6b0747774da | 85 | }; |
ikon | 0:d6b0747774da | 86 | |
ikon | 0:d6b0747774da | 87 | if (c > 31) LcdChr(c); |
ikon | 0:d6b0747774da | 88 | x++; |
ikon | 0:d6b0747774da | 89 | if (x>39) { |
ikon | 0:d6b0747774da | 90 | y++; |
ikon | 0:d6b0747774da | 91 | x=0; |
ikon | 0:d6b0747774da | 92 | if (y>39) y=0; |
ikon | 0:d6b0747774da | 93 | } |
ikon | 0:d6b0747774da | 94 | } |
ikon | 0:d6b0747774da | 95 | fclose(fp); |
ikon | 0:d6b0747774da | 96 | return(0); |
ikon | 0:d6b0747774da | 97 | } |
ikon | 0:d6b0747774da | 98 | |
ikon | 0:d6b0747774da | 99 | |
ikon | 0:d6b0747774da | 100 | |
ikon | 2:456410210d03 | 101 | void terminal() |
ikon | 1:c9dad7bc0795 | 102 | { |
ikon | 2:456410210d03 | 103 | int x, y, r=1; |
ikon | 2:456410210d03 | 104 | char c, xc=' '; |
ikon | 1:c9dad7bc0795 | 105 | |
ikon | 1:c9dad7bc0795 | 106 | FOREGROUND = GREEN; |
ikon | 1:c9dad7bc0795 | 107 | BACKGROUND = BLACK; |
ikon | 1:c9dad7bc0795 | 108 | display_rgb(BACKGROUND); |
ikon | 2:456410210d03 | 109 | |
ikon | 1:c9dad7bc0795 | 110 | LcdGotoXY(4,1); |
ikon | 0:d6b0747774da | 111 | LcdStr("Below you can see what you write"); |
ikon | 1:c9dad7bc0795 | 112 | LcdGotoXY(12,2); |
ikon | 0:d6b0747774da | 113 | LcdStr("in your PC terminal"); |
ikon | 2:456410210d03 | 114 | |
ikon | 0:d6b0747774da | 115 | x = 0; |
ikon | 1:c9dad7bc0795 | 116 | y = 3; |
ikon | 2:456410210d03 | 117 | while (r == 1) |
ikon | 2:456410210d03 | 118 | { |
ikon | 0:d6b0747774da | 119 | LcdGotoXY(x,y); |
ikon | 0:d6b0747774da | 120 | c = pc.getc(); |
ikon | 0:d6b0747774da | 121 | if (c == 13) { |
ikon | 0:d6b0747774da | 122 | y++; |
ikon | 0:d6b0747774da | 123 | x=0; |
ikon | 2:456410210d03 | 124 | }; // endif c==13 |
ikon | 2:456410210d03 | 125 | |
ikon | 0:d6b0747774da | 126 | if (c == 8) { |
ikon | 0:d6b0747774da | 127 | x--; |
ikon | 2:456410210d03 | 128 | }; // endif c==8 |
ikon | 0:d6b0747774da | 129 | |
ikon | 0:d6b0747774da | 130 | if (c > 31) { |
ikon | 0:d6b0747774da | 131 | LcdChr(c); |
ikon | 0:d6b0747774da | 132 | if ( (xc == '\\' ) && ( c == '\\' ) ) { |
ikon | 1:c9dad7bc0795 | 133 | //scr2lcd("test.scr"); |
ikon | 2:456410210d03 | 134 | //LCD_test(); |
ikon | 2:456410210d03 | 135 | //SldShw(); |
ikon | 2:456410210d03 | 136 | r=0; |
ikon | 0:d6b0747774da | 137 | } |
ikon | 0:d6b0747774da | 138 | |
ikon | 0:d6b0747774da | 139 | xc = c; |
ikon | 2:456410210d03 | 140 | } // endif c>31 |
ikon | 0:d6b0747774da | 141 | x++; |
ikon | 0:d6b0747774da | 142 | if (x>39) { |
ikon | 0:d6b0747774da | 143 | y++; |
ikon | 0:d6b0747774da | 144 | x=0; |
ikon | 0:d6b0747774da | 145 | if (y>39) y=0; |
ikon | 2:456410210d03 | 146 | } // endif x>39 |
ikon | 2:456410210d03 | 147 | } // endwhile |
ikon | 2:456410210d03 | 148 | |
ikon | 2:456410210d03 | 149 | } |
ikon | 2:456410210d03 | 150 | |
ikon | 2:456410210d03 | 151 | // Always print system messages on certain line of display |
ikon | 2:456410210d03 | 152 | void SysMsg(char *dataPtr) { |
ikon | 2:456410210d03 | 153 | |
ikon | 2:456410210d03 | 154 | LcdGotoXY8(0,29); |
ikon | 2:456410210d03 | 155 | LcdStr8x8( dataPtr ); |
ikon | 2:456410210d03 | 156 | } |
ikon | 2:456410210d03 | 157 | |
ikon | 2:456410210d03 | 158 | |
ikon | 2:456410210d03 | 159 | // Main loop starts here |
ikon | 2:456410210d03 | 160 | int main() { |
ikon | 2:456410210d03 | 161 | |
ikon | 2:456410210d03 | 162 | // Variable definitions |
ikon | 2:456410210d03 | 163 | uint8_t y; |
ikon | 2:456410210d03 | 164 | //unsigned int i; |
ikon | 2:456410210d03 | 165 | char str[40]; |
ikon | 2:456410210d03 | 166 | char err[40]; // Error message string |
ikon | 2:456410210d03 | 167 | char url[256]; // Remote URL |
ikon | 2:456410210d03 | 168 | char fname[80]; // Local filename |
ikon | 2:456410210d03 | 169 | int c,w; |
ikon | 2:456410210d03 | 170 | FILE *fl; |
ikon | 2:456410210d03 | 171 | unsigned int i, j, a, rnd, last, blast; |
ikon | 2:456410210d03 | 172 | const int num_files=300; |
ikon | 2:456410210d03 | 173 | int names[num_files]; |
ikon | 2:456410210d03 | 174 | int lenghts[num_files]; |
ikon | 2:456410210d03 | 175 | |
ikon | 2:456410210d03 | 176 | // Variable initialization |
ikon | 2:456410210d03 | 177 | a = 0; |
ikon | 2:456410210d03 | 178 | i = 0; |
ikon | 2:456410210d03 | 179 | last = 0; |
ikon | 2:456410210d03 | 180 | blast = 0; |
ikon | 2:456410210d03 | 181 | |
ikon | 2:456410210d03 | 182 | //Configure the Fastest Baud Rate |
ikon | 2:456410210d03 | 183 | pc.baud(115200); |
ikon | 2:456410210d03 | 184 | printf("Program start.\n"); |
ikon | 2:456410210d03 | 185 | |
ikon | 2:456410210d03 | 186 | myled = 0; |
ikon | 2:456410210d03 | 187 | initialization(); // Initialize LCD |
ikon | 2:456410210d03 | 188 | |
ikon | 2:456410210d03 | 189 | printf("SPI and display initialized.\n"); |
ikon | 2:456410210d03 | 190 | |
ikon | 2:456410210d03 | 191 | LCD_test(); // Draw border |
ikon | 2:456410210d03 | 192 | printf("Display test.\n"); |
ikon | 2:456410210d03 | 193 | |
ikon | 2:456410210d03 | 194 | wait(1.0); |
ikon | 2:456410210d03 | 195 | if (myled == 0) { |
ikon | 2:456410210d03 | 196 | myled = 1; |
ikon | 2:456410210d03 | 197 | } else { |
ikon | 2:456410210d03 | 198 | myled = 0; |
ikon | 2:456410210d03 | 199 | } |
ikon | 2:456410210d03 | 200 | |
ikon | 2:456410210d03 | 201 | // Show welcome message |
ikon | 2:456410210d03 | 202 | Display_Home(); |
ikon | 2:456410210d03 | 203 | LcdGotoXY8(12,10); |
ikon | 2:456410210d03 | 204 | LcdStr8x8("Welcome to mBed"); |
ikon | 2:456410210d03 | 205 | LcdGotoXY8(5,11); |
ikon | 2:456410210d03 | 206 | LcdStr8x8("Retro Computing Picture Frame"); |
ikon | 2:456410210d03 | 207 | LcdGotoXY8(0,13); |
ikon | 2:456410210d03 | 208 | LcdStr8x8("Based on SSD2119 controller& TFT 320x240"); |
ikon | 2:456410210d03 | 209 | |
ikon | 2:456410210d03 | 210 | SysMsg("Configuring Ethernet..."); |
ikon | 2:456410210d03 | 211 | |
ikon | 2:456410210d03 | 212 | // Configure ethernet interface |
ikon | 2:456410210d03 | 213 | EthernetErr ethErr = eth.setup(); |
ikon | 2:456410210d03 | 214 | if(ethErr) { |
ikon | 2:456410210d03 | 215 | sprintf(err,"Error %d in ETH setup.", ethErr); |
ikon | 2:456410210d03 | 216 | SysMsg(err); |
ikon | 2:456410210d03 | 217 | ShowType = 0; // Local slideshow only |
ikon | 2:456410210d03 | 218 | } else { |
ikon | 2:456410210d03 | 219 | IpAddr ip = eth.getIp(); |
ikon | 2:456410210d03 | 220 | sprintf(err, "Setup OK, local IP: %d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]); |
ikon | 2:456410210d03 | 221 | SysMsg(err); |
ikon | 2:456410210d03 | 222 | ShowType = 1; // Ethernet available - we can download pictures |
ikon | 0:d6b0747774da | 223 | } |
ikon | 0:d6b0747774da | 224 | |
ikon | 2:456410210d03 | 225 | // Do some common stuff for both ShowType modes |
ikon | 2:456410210d03 | 226 | LCD_test(); // Show colorfull border again |
ikon | 2:456410210d03 | 227 | wait(2.0); |
ikon | 2:456410210d03 | 228 | myled = 0; |
ikon | 2:456410210d03 | 229 | Display_Home(); |
ikon | 2:456410210d03 | 230 | LcdGotoXY(13,0); |
ikon | 2:456410210d03 | 231 | LcdChr('H'); |
ikon | 2:456410210d03 | 232 | LcdGotoXY(14,0); |
ikon | 2:456410210d03 | 233 | LcdChr('e'); |
ikon | 2:456410210d03 | 234 | LcdGotoXY(15,0); |
ikon | 2:456410210d03 | 235 | LcdChr('l'); |
ikon | 2:456410210d03 | 236 | LcdGotoXY(16,0); |
ikon | 2:456410210d03 | 237 | LcdChr('l'); |
ikon | 2:456410210d03 | 238 | LcdGotoXY(17,0); |
ikon | 2:456410210d03 | 239 | LcdChr('o'); |
ikon | 2:456410210d03 | 240 | |
ikon | 2:456410210d03 | 241 | LcdStr(" mBed World!"); |
ikon | 2:456410210d03 | 242 | |
ikon | 2:456410210d03 | 243 | y = 1; |
ikon | 2:456410210d03 | 244 | LcdGotoXY(0,y); |
ikon | 2:456410210d03 | 245 | LcdStr("Local filesystem contains these files:"); |
ikon | 2:456410210d03 | 246 | y++; |
ikon | 2:456410210d03 | 247 | LcdGotoXY(0,y); |
ikon | 2:456410210d03 | 248 | Dir(); // Show directory listing |
ikon | 2:456410210d03 | 249 | |
ikon | 2:456410210d03 | 250 | wait(1.0); |
ikon | 2:456410210d03 | 251 | |
ikon | 2:456410210d03 | 252 | ShowPalette256(); // Show actual 256 colors palette |
ikon | 2:456410210d03 | 253 | |
ikon | 2:456410210d03 | 254 | for (i=3;i>0;i--) |
ikon | 2:456410210d03 | 255 | { |
ikon | 2:456410210d03 | 256 | LcdGotoXY(0,38); |
ikon | 2:456410210d03 | 257 | sprintf(str, "Displaying images in %d seconds...", i); |
ikon | 2:456410210d03 | 258 | switch (i) { |
ikon | 2:456410210d03 | 259 | case 1: |
ikon | 2:456410210d03 | 260 | strcat(str,"/"); |
ikon | 2:456410210d03 | 261 | break; |
ikon | 2:456410210d03 | 262 | case 2: |
ikon | 2:456410210d03 | 263 | strcat(str,"|"); |
ikon | 2:456410210d03 | 264 | break; |
ikon | 2:456410210d03 | 265 | case 3: |
ikon | 2:456410210d03 | 266 | strcat(str,"\\"); |
ikon | 2:456410210d03 | 267 | break; |
ikon | 2:456410210d03 | 268 | case 4: |
ikon | 2:456410210d03 | 269 | strcat(str,"-"); |
ikon | 2:456410210d03 | 270 | break; |
ikon | 2:456410210d03 | 271 | default: |
ikon | 2:456410210d03 | 272 | break; |
ikon | 2:456410210d03 | 273 | } |
ikon | 2:456410210d03 | 274 | |
ikon | 2:456410210d03 | 275 | LcdStr(str); |
ikon | 2:456410210d03 | 276 | wait(1.0); |
ikon | 2:456410210d03 | 277 | } |
ikon | 2:456410210d03 | 278 | |
ikon | 2:456410210d03 | 279 | |
ikon | 2:456410210d03 | 280 | // Check if we have the list of files |
ikon | 2:456410210d03 | 281 | if ( (fl = fopen("/local/scrnpath.txt","r") ) == NULL ) { // Fl = FileList |
ikon | 2:456410210d03 | 282 | printf("Unable to open file list! Fallback to local.\n"); |
ikon | 2:456410210d03 | 283 | ShowType = 0; // Local |
ikon | 2:456410210d03 | 284 | } else { |
ikon | 2:456410210d03 | 285 | while ( ( ( c = fgetc(fl) ) != EOF ) && ( a < num_files) ) { |
ikon | 2:456410210d03 | 286 | i++; |
ikon | 2:456410210d03 | 287 | if ( c == '\n') { |
ikon | 2:456410210d03 | 288 | last = i; |
ikon | 2:456410210d03 | 289 | if ( a == 0 ) { |
ikon | 2:456410210d03 | 290 | names[a] = 0; |
ikon | 2:456410210d03 | 291 | lenghts[a] = last; |
ikon | 2:456410210d03 | 292 | } else { |
ikon | 2:456410210d03 | 293 | names[a] = blast; |
ikon | 2:456410210d03 | 294 | lenghts[a] = last - blast; |
ikon | 2:456410210d03 | 295 | } // If2 |
ikon | 2:456410210d03 | 296 | blast = last; |
ikon | 2:456410210d03 | 297 | a++; |
ikon | 2:456410210d03 | 298 | } // If2 |
ikon | 2:456410210d03 | 299 | |
ikon | 2:456410210d03 | 300 | } // while |
ikon | 2:456410210d03 | 301 | |
ikon | 2:456410210d03 | 302 | } // Else |
ikon | 2:456410210d03 | 303 | // Variable 'a' now holds number of pictures available |
ikon | 2:456410210d03 | 304 | |
ikon | 2:456410210d03 | 305 | srand ( 99 ); |
ikon | 2:456410210d03 | 306 | LCD_test(); // Restore rainbow background |
ikon | 2:456410210d03 | 307 | |
ikon | 2:456410210d03 | 308 | // Now distinguish between both modes and do different things |
ikon | 2:456410210d03 | 309 | if ( ShowType == 0 ) { |
ikon | 2:456410210d03 | 310 | while (1) { |
ikon | 2:456410210d03 | 311 | SldShw(); // Slide show from ZX screens |
ikon | 2:456410210d03 | 312 | |
ikon | 2:456410210d03 | 313 | if ( pc.readable() ) terminal(); // If key pressed start terminal |
ikon | 2:456410210d03 | 314 | |
ikon | 2:456410210d03 | 315 | wait(3.0); |
ikon | 2:456410210d03 | 316 | } // loop forever |
ikon | 2:456410210d03 | 317 | |
ikon | 2:456410210d03 | 318 | } else { |
ikon | 2:456410210d03 | 319 | |
ikon | 2:456410210d03 | 320 | while (1) { |
ikon | 2:456410210d03 | 321 | // We do picture show from the net |
ikon | 2:456410210d03 | 322 | for (j=0; j < 48; j++ ) { |
ikon | 2:456410210d03 | 323 | // Pseudo Random Picture file selection |
ikon | 2:456410210d03 | 324 | rnd = rand() % a; |
ikon | 2:456410210d03 | 325 | |
ikon | 2:456410210d03 | 326 | printf("Picture[%d] Names[%d] Lenghts[%d]\n", rnd, names[rnd], lenghts[rnd]); |
ikon | 2:456410210d03 | 327 | printf("Random file: %d\n", rnd); |
ikon | 2:456410210d03 | 328 | fseek(fl, names[rnd], SEEK_SET); |
ikon | 2:456410210d03 | 329 | |
ikon | 2:456410210d03 | 330 | w = fgetc(fl); |
ikon | 2:456410210d03 | 331 | |
ikon | 2:456410210d03 | 332 | sprintf(url, "http://wos.meulie.net/pub/spectrum/screens/load/%c/scr/%c", w+32, w); |
ikon | 2:456410210d03 | 333 | |
ikon | 2:456410210d03 | 334 | for (i=2; i<lenghts[rnd]; i++) { |
ikon | 2:456410210d03 | 335 | c = fgetc(fl); |
ikon | 2:456410210d03 | 336 | sprintf(url, "%s%c", url, c); |
ikon | 2:456410210d03 | 337 | } |
ikon | 2:456410210d03 | 338 | printf("URL: %s\n",url); |
ikon | 2:456410210d03 | 339 | |
ikon | 2:456410210d03 | 340 | // Open a file to write. |
ikon | 2:456410210d03 | 341 | sprintf(fname,"/local/%d.scr",j); |
ikon | 2:456410210d03 | 342 | printf("Local file name: %s\n", fname); |
ikon | 2:456410210d03 | 343 | HTTPFile file(fname); |
ikon | 2:456410210d03 | 344 | |
ikon | 2:456410210d03 | 345 | |
ikon | 2:456410210d03 | 346 | // Insert the search term into the URL |
ikon | 2:456410210d03 | 347 | //sprintf(url, "http://wos.meulie.net/pub/spectrum/screens/load/a/scr/ACZGeneralLedger2000.scr"); |
ikon | 2:456410210d03 | 348 | |
ikon | 2:456410210d03 | 349 | // Request a page and store it into a file. |
ikon | 2:456410210d03 | 350 | HTTPResult r = http.get(url, &file); |
ikon | 2:456410210d03 | 351 | |
ikon | 2:456410210d03 | 352 | if(r==HTTP_OK) |
ikon | 2:456410210d03 | 353 | { |
ikon | 2:456410210d03 | 354 | pc.printf("File fetched OK.\n"); //:\"%s\"\n", file.gets()); |
ikon | 2:456410210d03 | 355 | } else { |
ikon | 2:456410210d03 | 356 | pc.printf("Error fetching file %d\n", r); |
ikon | 2:456410210d03 | 357 | } |
ikon | 2:456410210d03 | 358 | |
ikon | 2:456410210d03 | 359 | sprintf(fname,"%d.scr",j); |
ikon | 2:456410210d03 | 360 | scr2lcd(fname); |
ikon | 2:456410210d03 | 361 | wait(2.0); |
ikon | 2:456410210d03 | 362 | |
ikon | 2:456410210d03 | 363 | } // For (j) |
ikon | 2:456410210d03 | 364 | |
ikon | 2:456410210d03 | 365 | } // Loop Forever |
ikon | 2:456410210d03 | 366 | |
ikon | 2:456410210d03 | 367 | fclose(fl); // Close index file |
ikon | 2:456410210d03 | 368 | |
ikon | 2:456410210d03 | 369 | } // Else (ShowType) |
ikon | 2:456410210d03 | 370 | |
ikon | 2:456410210d03 | 371 | } // End main() |
ikon | 2:456410210d03 | 372 |