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: mbed NyFileSystems mbed-rtos libMiMic
main.cpp@5:6a2a1644ea2c, 2013-04-28 (annotated)
- Committer:
- nyatla
- Date:
- Sun Apr 28 13:33:36 2013 +0000
- Revision:
- 5:6a2a1644ea2c
- Parent:
- 4:0a280ed0a848
- Child:
- 6:20dcb08e1b43
Add sdcard and local file configulation.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| nyatla | 4:0a280ed0a848 | 1 | /** |
| nyatla | 4:0a280ed0a848 | 2 | * @file * This is ModLocalFileSystem sample program. |
| nyatla | 4:0a280ed0a848 | 3 | * |
| nyatla | 4:0a280ed0a848 | 4 | * <pre> |
| nyatla | 4:0a280ed0a848 | 5 | * 1. Compile this program and write to your mbed. |
| nyatla | 4:0a280ed0a848 | 6 | * 2. Write files for testing to mbed disk. |
| nyatla | 4:0a280ed0a848 | 7 | * 2. Access via web browser to http://192.168.0.39/local/<filename> |
| nyatla | 4:0a280ed0a848 | 8 | * 3. You can see <filename> file on browser. |
| nyatla | 4:0a280ed0a848 | 9 | * </pre> |
| nyatla | 4:0a280ed0a848 | 10 | */ |
| nyatla | 5:6a2a1644ea2c | 11 | #include "mbed.h" |
| nyatla | 5:6a2a1644ea2c | 12 | #include "SDFileSystem.h" |
| nyatla | 0:ec1e45489427 | 13 | #include "mimic.h" |
| nyatla | 0:ec1e45489427 | 14 | |
| nyatla | 0:ec1e45489427 | 15 | |
| nyatla | 3:77431c2bd9cb | 16 | /** |
| nyatla | 3:77431c2bd9cb | 17 | * local filesystem support. |
| nyatla | 3:77431c2bd9cb | 18 | */ |
| nyatla | 3:77431c2bd9cb | 19 | LocalFileSystem lf("local"); |
| nyatla | 5:6a2a1644ea2c | 20 | SDFileSystem sd(p5, p6, p7, p8,"sd"); |
| nyatla | 0:ec1e45489427 | 21 | |
| nyatla | 0:ec1e45489427 | 22 | /** |
| nyatla | 0:ec1e45489427 | 23 | * MiMic RemoteMCU httpd.<br/> |
| nyatla | 5:6a2a1644ea2c | 24 | * Number of simultaneous connections:4 |
| nyatla | 0:ec1e45489427 | 25 | * <p>Service list</p> |
| nyatla | 0:ec1e45489427 | 26 | * <pre> |
| nyatla | 0:ec1e45489427 | 27 | * /local/ - mbed LocalFileSystem |
| nyatla | 0:ec1e45489427 | 28 | * </pre> |
| nyatla | 0:ec1e45489427 | 29 | */ |
| nyatla | 5:6a2a1644ea2c | 30 | class FsHttpd:public MiMic::Httpd |
| nyatla | 0:ec1e45489427 | 31 | { |
| nyatla | 0:ec1e45489427 | 32 | private: |
| nyatla | 5:6a2a1644ea2c | 33 | ModLocalFileSystem modlocal; |
| nyatla | 5:6a2a1644ea2c | 34 | ModLocalFileSystem modsd; |
| nyatla | 0:ec1e45489427 | 35 | public: |
| nyatla | 5:6a2a1644ea2c | 36 | FsHttpd():Httpd(80) |
| nyatla | 0:ec1e45489427 | 37 | { |
| nyatla | 3:77431c2bd9cb | 38 | //bind local file system path to /local/* |
| nyatla | 5:6a2a1644ea2c | 39 | modlocal.setParam("local"); |
| nyatla | 5:6a2a1644ea2c | 40 | modsd.setParam("sd"); |
| nyatla | 0:ec1e45489427 | 41 | } |
| nyatla | 0:ec1e45489427 | 42 | virtual void onRequest(HttpdConnection& i_connection) |
| nyatla | 0:ec1e45489427 | 43 | { |
| nyatla | 5:6a2a1644ea2c | 44 | //try to ModLocalFileSystem |
| nyatla | 5:6a2a1644ea2c | 45 | if(this->modlocal.execute(i_connection)){ |
| nyatla | 5:6a2a1644ea2c | 46 | return; |
| nyatla | 5:6a2a1644ea2c | 47 | } |
| nyatla | 5:6a2a1644ea2c | 48 | //try to ModLocalFileSystem(SD) |
| nyatla | 5:6a2a1644ea2c | 49 | if(this->modsd.execute(i_connection)){ |
| nyatla | 0:ec1e45489427 | 50 | return; |
| nyatla | 0:ec1e45489427 | 51 | } |
| nyatla | 5:6a2a1644ea2c | 52 | //Otherwise, Send simple top index page. |
| nyatla | 5:6a2a1644ea2c | 53 | i_connection.sendHeader(200,"text/html",NULL); |
| nyatla | 5:6a2a1644ea2c | 54 | if(i_connection.isMethodType(Http::MT_GET)){ |
| nyatla | 5:6a2a1644ea2c | 55 | i_connection.sendBodyF( |
| nyatla | 5:6a2a1644ea2c | 56 | "<!DOCTYPE html>" |
| nyatla | 5:6a2a1644ea2c | 57 | "<html lang=\"ja\">" |
| nyatla | 5:6a2a1644ea2c | 58 | "<head></head>" |
| nyatla | 5:6a2a1644ea2c | 59 | "<body>" |
| nyatla | 5:6a2a1644ea2c | 60 | "<h1>This is MiMic Server!</h1>" |
| nyatla | 5:6a2a1644ea2c | 61 | "<hr/>" |
| nyatla | 5:6a2a1644ea2c | 62 | "<ul>" |
| nyatla | 5:6a2a1644ea2c | 63 | "<li><a href=\"/local/\">mbed Local Filesystem</a></li>" |
| nyatla | 5:6a2a1644ea2c | 64 | "<li><a href=\"/sd/\">SDCard</a></li>" |
| nyatla | 5:6a2a1644ea2c | 65 | "</ul></body>"); |
| nyatla | 5:6a2a1644ea2c | 66 | } |
| nyatla | 0:ec1e45489427 | 67 | } |
| nyatla | 0:ec1e45489427 | 68 | }; |
| nyatla | 0:ec1e45489427 | 69 | |
| nyatla | 0:ec1e45489427 | 70 | int main() |
| nyatla | 0:ec1e45489427 | 71 | { |
| nyatla | 0:ec1e45489427 | 72 | NetConfig cfg; //create network configulation |
| nyatla | 0:ec1e45489427 | 73 | Net net(cfg); //create a net instance. |
| nyatla | 5:6a2a1644ea2c | 74 | //try to override setting by local file. |
| nyatla | 5:6a2a1644ea2c | 75 | if(!cfg.loadFromFile("/local/mimic.cfg")){ |
| nyatla | 5:6a2a1644ea2c | 76 | cfg.loadFromFile("/sd/mimic.cfg"); |
| nyatla | 5:6a2a1644ea2c | 77 | } |
| nyatla | 5:6a2a1644ea2c | 78 | FsHttpd httpd; //create a httpd instance. |
| nyatla | 0:ec1e45489427 | 79 | httpd.loop(); //start httpd loop. |
| nyatla | 0:ec1e45489427 | 80 | return 0; |
| nyatla | 0:ec1e45489427 | 81 | } |