Suspended plotter for the skaperfest
Dependencies: mbed HTTPServer EthernetNetIf FatFileSystemCpp
main.cpp@0:602ff2b2d41c, 2022-08-22 (annotated)
- Committer:
- rengro01
- Date:
- Mon Aug 22 10:24:23 2022 +0000
- Revision:
- 0:602ff2b2d41c
skaperfest
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rengro01 | 0:602ff2b2d41c | 1 | #include "mbed.h" |
rengro01 | 0:602ff2b2d41c | 2 | #include "MSCFileSystem.h" |
rengro01 | 0:602ff2b2d41c | 3 | #include "EthernetNetIf.h" |
rengro01 | 0:602ff2b2d41c | 4 | #include "HTTPServer.h" |
rengro01 | 0:602ff2b2d41c | 5 | #include "UploadHandler.hpp" |
rengro01 | 0:602ff2b2d41c | 6 | #include "HomePageHandler.hpp" |
rengro01 | 0:602ff2b2d41c | 7 | |
rengro01 | 0:602ff2b2d41c | 8 | MSCFileSystem msc("usb"); |
rengro01 | 0:602ff2b2d41c | 9 | Serial pc(USBTX, USBRX); |
rengro01 | 0:602ff2b2d41c | 10 | DigitalOut myled(LED1); |
rengro01 | 0:602ff2b2d41c | 11 | |
rengro01 | 0:602ff2b2d41c | 12 | #if 0 |
rengro01 | 0:602ff2b2d41c | 13 | IpAddr ip(10,0,0,85); |
rengro01 | 0:602ff2b2d41c | 14 | IpAddr netmask(255,255,255,0); |
rengro01 | 0:602ff2b2d41c | 15 | IpAddr nullip(0,0,0,0); |
rengro01 | 0:602ff2b2d41c | 16 | EthernetNetIf eth(ip, netmask, nullip, nullip); |
rengro01 | 0:602ff2b2d41c | 17 | #else |
rengro01 | 0:602ff2b2d41c | 18 | EthernetNetIf eth; |
rengro01 | 0:602ff2b2d41c | 19 | #endif |
rengro01 | 0:602ff2b2d41c | 20 | |
rengro01 | 0:602ff2b2d41c | 21 | HTTPServer svr; |
rengro01 | 0:602ff2b2d41c | 22 | |
rengro01 | 0:602ff2b2d41c | 23 | int main() |
rengro01 | 0:602ff2b2d41c | 24 | { |
rengro01 | 0:602ff2b2d41c | 25 | pc.baud(115200); |
rengro01 | 0:602ff2b2d41c | 26 | printf("Suspended Plotter\n\r"); |
rengro01 | 0:602ff2b2d41c | 27 | |
rengro01 | 0:602ff2b2d41c | 28 | printf("Setting up...\n\r"); |
rengro01 | 0:602ff2b2d41c | 29 | EthernetErr ethErr = eth.setup(); |
rengro01 | 0:602ff2b2d41c | 30 | if(ethErr) |
rengro01 | 0:602ff2b2d41c | 31 | { |
rengro01 | 0:602ff2b2d41c | 32 | printf("Error %d in setup.\n\r", ethErr); |
rengro01 | 0:602ff2b2d41c | 33 | return -1; |
rengro01 | 0:602ff2b2d41c | 34 | } |
rengro01 | 0:602ff2b2d41c | 35 | printf("Setup OK\n\r"); |
rengro01 | 0:602ff2b2d41c | 36 | |
rengro01 | 0:602ff2b2d41c | 37 | svr.addHandler<HomePageHandler>("/"); |
rengro01 | 0:602ff2b2d41c | 38 | svr.addHandler<UploadHandler>("/upload"); |
rengro01 | 0:602ff2b2d41c | 39 | svr.bind(80); |
rengro01 | 0:602ff2b2d41c | 40 | |
rengro01 | 0:602ff2b2d41c | 41 | printf("Listening...\n\r"); |
rengro01 | 0:602ff2b2d41c | 42 | |
rengro01 | 0:602ff2b2d41c | 43 | Timer tm; |
rengro01 | 0:602ff2b2d41c | 44 | tm.start(); |
rengro01 | 0:602ff2b2d41c | 45 | |
rengro01 | 0:602ff2b2d41c | 46 | while (true) |
rengro01 | 0:602ff2b2d41c | 47 | { |
rengro01 | 0:602ff2b2d41c | 48 | IpAddr ip = eth.getIp(); |
rengro01 | 0:602ff2b2d41c | 49 | printf("Connected as: %d.%d.%d.%d\n\r", ip[0], ip[1], ip[2], ip[3]); |
rengro01 | 0:602ff2b2d41c | 50 | Net::poll(); |
rengro01 | 0:602ff2b2d41c | 51 | if(tm.read()>.5) |
rengro01 | 0:602ff2b2d41c | 52 | { |
rengro01 | 0:602ff2b2d41c | 53 | //Show that we are alive |
rengro01 | 0:602ff2b2d41c | 54 | myled=!myled; |
rengro01 | 0:602ff2b2d41c | 55 | tm.start(); |
rengro01 | 0:602ff2b2d41c | 56 | } |
rengro01 | 0:602ff2b2d41c | 57 | |
rengro01 | 0:602ff2b2d41c | 58 | } |
rengro01 | 0:602ff2b2d41c | 59 | } |