starboard_orange test code for TextLCD, SD, USB and Ethernet

Dependencies:   mbed MSCFileSystem_Lib SDFileSystem

Files at this revision

API Documentation at this revision

Comitter:
nxpfan
Date:
Wed Aug 04 05:09:28 2010 +0000
Commit message:

Changed in this revision

EthernetNetIf.lib Show annotated file Show diff for this revision Revisions of this file
FATFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
HTTPServer.lib Show annotated file Show diff for this revision Revisions of this file
MSCFileSystem_Lib.lib Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
TextLCD.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r bdbcdf6f3e8a EthernetNetIf.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EthernetNetIf.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/EthernetNetIf/#bc7df6da7589
diff -r 000000000000 -r bdbcdf6f3e8a FATFileSystem.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FATFileSystem.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_unsupported/code/fatfilesystem/
\ No newline at end of file
diff -r 000000000000 -r bdbcdf6f3e8a HTTPServer.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HTTPServer.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/donatien/code/HTTPServer/#d753966e4d97
diff -r 000000000000 -r bdbcdf6f3e8a MSCFileSystem_Lib.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MSCFileSystem_Lib.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/chris/code/MSCFileSystem_Lib/#f4e330489777
diff -r 000000000000 -r bdbcdf6f3e8a SDFileSystem.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/SDFileSystem/#b1ddfc9a9b25
diff -r 000000000000 -r bdbcdf6f3e8a TextLCD.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TextLCD.lib	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/TextLCD/#44f34c09bd37
diff -r 000000000000 -r bdbcdf6f3e8a main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,163 @@
+#include "mbed.h"
+
+////////////////////////////////////////
+////////    general setting     ////////
+////////////////////////////////////////
+//#define     USE_TextLCD_20x4
+#define     USE_FIXED_IP
+
+////////////////////////////////////////
+////////    For TextLCD         ////////
+////////////////////////////////////////
+#include "TextLCD.h"
+#ifdef  USE_TextLCD_20x4
+//TextLCD     lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3
+#else
+TextLCD     lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3
+#endif
+
+////////////////////////////////////////
+////////    For SD_card         ////////
+////////////////////////////////////////
+#include "SDFileSystem.h"
+//SDFileSystem    sd(p5, p6, p7, p13, "sd");  //  mosi, miso, sclk, cs, name
+SDFileSystem  sd(p5, p6, p7, p8,  "sd");  //  mosi, miso, sclk, cs, name  (HW modification candidate)
+
+////////////////////////////////////////
+////////    For USB storage     ////////
+////////////////////////////////////////
+#include "MSCFileSystem.h"
+MSCFileSystem   usb("usb");
+
+////////////////////////////////////////
+////////    For Ethernet test   ////////
+////////////////////////////////////////
+#include "EthernetNetIf.h"
+#include "HTTPServer.h"
+#ifdef      USE_FIXED_IP
+EthernetNetIf   eth(
+    IpAddr(192,168,0,7), //IP Address
+    IpAddr(255,255,255,0), //Network Mask
+    IpAddr(192,168,0,1), //Gateway
+    IpAddr(192,168,0,1)  //DNS
+);
+#else
+EthernetNetIf   eth;
+#endif
+HTTPServer svr;
+LocalFileSystem web("local");
+
+
+void test_TextLCD( void );
+void test_file_write( char *title, char *path );
+void test_httpserver( void );
+int  position( void );
+
+int main() {
+    test_TextLCD();
+    wait( 1 );
+    test_file_write( "SD card", "/sd/star_bd.txt" );
+    wait( 1 );
+    test_file_write( "USB storage", "/usb/star_bd.txt" );
+    wait( 1 );
+    test_httpserver();
+}
+
+
+void test_TextLCD( void ) {
+    //  TextLCD test
+
+#ifdef  USE_TextLCD_20x4
+    lcd.locate( 0, 0 );
+    for ( int i = 0, c = '0'; i < 20; i++, c++ )
+        lcd.putc( c );
+
+    for ( int i = 0, c = 'A'; i < 20; i++, c++ )
+        lcd.putc( c );
+            
+    for ( int i = 0, c = 'a'; i < 20; i++, c++ )
+        lcd.putc( c );
+    for ( int i = 0, c = '0' - 10; i < 20; i++, c++ )
+        lcd.putc( c );
+    exit( 0 );
+    wait( 300 );
+    lcd.cls();
+#endif  //  USE_TextLCD_20x4
+
+    lcd.locate( 0, 0 );
+    lcd.printf( "TextLCD: OK?" );
+    lcd.locate( 0, 1 );
+    lcd.printf( "" );
+
+}
+
+void test_file_write( char *title, char *path ) {
+    //  SD card test
+    lcd.locate( 0, position() );
+    lcd.printf( "%s: ", title );
+
+    FILE *fp = fopen( path, "w" );
+    if ( fp == NULL ) {
+        lcd.printf( "error" );
+        error( "Could not open file for write\n" );
+    }
+    fprintf( fp, "The mbed writing a file through the star board orange (%s)!", title );
+    fclose( fp );
+
+    lcd.printf( "OK." );
+}
+
+
+void test_httpserver( void ) {
+    DigitalOut  led1( LED1 );
+
+    lcd.locate( 0, position() );
+    lcd.printf( "HTTP srv: " );
+
+    Base::add_rpc_class<DigitalOut>();
+
+    printf("Setting up...n");
+    EthernetErr ethErr = eth.setup();
+    if ( ethErr ) {
+        lcd.printf( "error" );
+        error( "error @ eth.setup()\n" );
+    }
+    lcd.printf("OK ");
+
+    FSHandler::mount("/local", "/");  //Mount /webfs path on web root path
+    FSHandler::mount("/sd", "/sd");   //Mount /webfs path on web sd path
+    FSHandler::mount("/usb", "/usb"); //Mount /webfs path on web usb path
+
+    svr.addHandler<FSHandler>("/");      //Default handler
+    svr.addHandler<FSHandler>("/sd");  
+    svr.addHandler<FSHandler>("/usb"); 
+    //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
+
+    svr.bind(80);
+
+    lcd.locate( 5, position() -1 );
+    lcd.printf("Listening");
+
+    Timer tm;
+    tm.start();
+    //Listen indefinitely
+    while (true) {
+        Net::poll();
+        if (tm.read()>.5) {
+            led1=!led1; //Show that we are alive
+            tm.start();
+        }
+    }
+}
+
+
+int position( void ) {
+    static int  p   = 0;
+
+#ifdef  USE_TextLCD_20x4
+    return( ++p % 4 );
+#else
+    return( ++p % 2 );
+#endif
+}
+
diff -r 000000000000 -r bdbcdf6f3e8a mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Aug 04 05:09:28 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/9114680c05da