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.
Revision 0:f7f626c40ef8, committed 2009-12-09
- Comitter:
- loopsva
- Date:
- Wed Dec 09 18:52:41 2009 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r f7f626c40ef8 lwip.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lwip.lib Wed Dec 09 18:52:41 2009 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_unsupported/code/lwip/ \ No newline at end of file
diff -r 000000000000 -r f7f626c40ef8 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Dec 09 18:52:41 2009 +0000
@@ -0,0 +1,212 @@
+#include "mbed.h"
+#include "HTTPServer.h"
+#include "HTTPRPC.h"
+#include "HTTPFS.h"
+
+#include "TextLCD.h" //kb
+#include "myrpc.h"
+
+
+HTTPServer http;
+
+DigitalOut led1(LED1, "led1");
+DigitalOut led2(LED2, "led2");
+DigitalOut led3(LED3, "led3");
+DigitalOut led4(LED4, "led4");
+
+TextLCD lcd(p24, p25, p26, p27, p28, p29, p30); // rs, rw, e, d0, d1, d2, d3
+
+myrpc myrpc1(LED1, "myrpc1");
+myrpc myrpc2(LED2, "myrpc2");
+myrpc myrpc3(LED3, "myrpc3");
+myrpc myrpc4(LED4, "myrpc4");
+
+LocalFileSystem local("local");
+Ethernet eth2;
+
+float const DISP_SLOW(2.0);
+float const DISP_FAST(0.5);
+
+// Once running, try this web page -> http://192.168.1.102/rpc/led3/write+1
+
+/* Display the MAC address on the Text LCD */
+void disp_mac() {
+ lcd.cls();
+ lcd.printf("MAC: ");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ char dispchar, mac_addr[6], i;
+ eth2.address(mac_addr);
+ for(i = 0; i < 3; i++) {
+ dispchar = mac_addr[i];
+ if(dispchar < 16) { lcd.printf("0", dispchar);
+ }
+ lcd.printf("%x", dispchar);
+ }
+ for(i = i; i < 6; i++) {
+ dispchar = mac_addr[i];
+ lcd.printf(":", dispchar);
+ if(dispchar < 16) { lcd.printf("0", dispchar);
+ }
+ lcd.printf("%x", dispchar);
+ }
+/* Display done */
+}
+
+/* Display Waiting for Link */
+void disp_linkStat() {
+ lcd.cls();
+ while(eth2.link() == 0) {
+ led2 = !led2;
+ wait(DISP_FAST);
+ lcd.cls();
+ lcd.printf("Link DOWN");
+ }
+ led2 = 0;
+ lcd.cls();
+ lcd.printf("Link UP");
+/* Display done */
+}
+
+/* Display the IP Address on the Text LCD */
+void disp_ipAddr() {
+ NetServer *net = NetServer::get();
+ struct ip_addr ip = net->getIPAddr();
+ lcd.cls();
+ lcd.printf("IP:");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ lcd.printf("%hhu.%hhu.%hhu.%hhu\n", (ip.addr)&0xFF, (ip.addr>>8)&0xFF, (ip.addr>>16)&0xFF, (ip.addr>>24)&0xFF);
+/* Display done */
+}
+
+/* Display the IP Address Mask on the Text LCD */
+void disp_ipMask() {
+ NetServer *net = NetServer::get();
+ struct ip_addr nm = net->getNetmask();
+ lcd.cls();
+ lcd.printf("Mask:");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ lcd.printf("%hhu.%hhu.%hhu.%hhu\n", (nm.addr)&0xFF, (nm.addr>>8)&0xFF, (nm.addr>>16)&0xFF, (nm.addr>>24)&0xFF);
+/* Display done */
+}
+
+/* Display the IP Gateway Address on the Text LCD */
+void disp_ipGateway() {
+ NetServer *net = NetServer::get();
+ struct ip_addr gw = net->getGateway();
+ lcd.cls();
+ lcd.printf("GW:");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ lcd.printf("%hhu.%hhu.%hhu.%hhu\n", (gw.addr)&0xFF, (gw.addr>>8)&0xFF, (gw.addr>>16)&0xFF, (gw.addr>>24)&0xFF);
+/* Display done */
+}
+
+/* Display the DNS IP Address on the Text LCD */
+void disp_ipDNS() {
+ NetServer *net = NetServer::get();
+ struct ip_addr dns = net->getDNS1();
+ lcd.cls();
+ lcd.printf("DNS:");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ lcd.printf("%hhu.%hhu.%hhu.%hhu\n", (dns.addr)&0xFF, (dns.addr>>8)&0xFF, (dns.addr>>16)&0xFF, (dns.addr>>24)&0xFF);
+/* Display done */
+}
+
+
+int main(void) {
+
+ /* Init the LCD */
+ lcd.cls();
+ lcd.locate(0,0); //column(0-15), row(0-1)
+ lcd.printf("Init HTTP Serv 9");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+ lcd.printf("K Braun");
+ wait(DISP_SLOW);
+ /* Display done */
+
+ char time_buff[32];
+ lcd.cls();
+ time_t seconds = time(NULL);
+ strftime(time_buff, 32, "%a %m/%d/%y\n" /*%I:%M:%S %p\n"*/, localtime(&seconds));
+ lcd.printf("%s", time_buff);
+ strftime(time_buff, 32, /*"%a %m/%d/%y\n"*/ "%I:%M:%S %p\n", localtime(&seconds));
+ lcd.printf("%s", time_buff);
+ wait(DISP_SLOW);
+
+ Base::add_rpc_class<AnalogIn>();
+ Base::add_rpc_class<AnalogOut>();
+ Base::add_rpc_class<BusIn>();
+ Base::add_rpc_class<BusInOut>();
+ Base::add_rpc_class<BusOut>();
+// Base::add_rpc_class<CAN>();
+ Base::add_rpc_class<DigitalIn>();
+ Base::add_rpc_class<DigitalInOut>();
+ Base::add_rpc_class<DigitalOut>();
+// Base::add_rpc_class<Ethernet>();
+// Base::add_rpc_class<I2C>();
+// Base::add_rpc_class<InterruptIn>();
+// Base::add_rpc_class<LocalFileSystem>();
+ Base::add_rpc_class<PwmOut>();
+ Base::add_rpc_class<SPI>();
+ Base::add_rpc_class<Serial>();
+// Base::add_rpc_class<Ticker>();
+// Base::add_rpc_class<Timeout>();
+ Base::add_rpc_class<Timer>();
+// Base::add_rpc_class<error>();
+// Base::add_rpc_class<rtc_time>();
+
+ Base::add_rpc_class<myrpc>();
+
+ disp_mac(); //put MAC address on LCD
+ wait (DISP_SLOW);
+ disp_linkStat(); //show link status on LCD, wait for valid link
+ wait (DISP_FAST);
+ lcd.cls();
+ lcd.printf("Looking for...\n");
+ lcd.printf("DHCP Server");
+ http.addHandler(new HTTPRPC());
+ http.addHandler(new HTTPFileSystemHandler("/", "/local/"));
+ http.bind();
+
+// server.addHandler(new HTTPFS("/", "/local/"));
+// server.bind();
+// NetServer *net = NULL;
+ NetServer *net = NetServer::get();
+// struct ip_addr ip = net->getIPAddr();
+// struct ip_addr gw = net->getGateway();
+// struct ip_addr nm = net->getNetmask();
+// struct ip_addr dns = net->getDNS1();
+// struct ip_addr hn = net->getHostname();
+ // ...
+
+ /* Display the Host Name on the Text LCD */
+ lcd.cls();
+ lcd.printf("Host:");
+ lcd.locate(0,1); //column(0-15), row(0-1)
+// hn((char *)net->getHostname);
+ lcd.printf("mbed-c3p0"); //<<until I can find out "how-to", force feed "mbed-c3p0"
+// lcd.printf("%s", (const char)net->getHostname));
+ wait(DISP_FAST);
+ /* Display done */
+
+ disp_ipAddr(); //put IP address on LCD
+ wait (DISP_FAST);
+ disp_ipMask(); //put IP Mask on LCD
+ wait (DISP_FAST);
+ disp_ipGateway(); //put Gateway address on LCD
+ wait (DISP_FAST);
+ disp_ipDNS(); //put DNS address on LCD
+ wait (DISP_FAST);
+ disp_ipAddr(); //put IP address on LCD...again
+ lcd.printf("mbed-c3p0"); //<<until I can find out "how-to", force feed "mbed-c3p0"
+
+ while(1) {
+ http.poll();
+ disp_ipAddr(); //put IP address on LCD...again
+ lcd.printf("mbed-c3p0"); //<<until I can find out "how-to", force feed "mbed-c3p0"
+ time_t seconds = time(NULL);
+ strftime(time_buff, 32, /*"%a %m/%d/%y\n"*/ " %H:%M\n", localtime(&seconds));
+ lcd.printf("%s", time_buff);
+ wait(0.01);
+ }
+}
+
diff -r 000000000000 -r f7f626c40ef8 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Dec 09 18:52:41 2009 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0