ECE4180 lab4
Dependencies: EthernetNetIf HTTPServer Motordriver NetServicesSource mbed
Fork of HTTPServerExample by
HTTPServerExample.cpp@3:97ed1391b2fc, 2016-11-03 (annotated)
- Committer:
- tianyeapply
- Date:
- Thu Nov 03 21:45:57 2016 +0000
- Revision:
- 3:97ed1391b2fc
- Parent:
- 1:114e347434c1
Code for ECE 4180 Lab4, remote control a Moto
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
donatien | 0:0b1369ae8b74 | 1 | #include "mbed.h" |
donatien | 0:0b1369ae8b74 | 2 | #include "EthernetNetIf.h" |
donatien | 0:0b1369ae8b74 | 3 | #include "HTTPServer.h" |
tianyeapply | 3:97ed1391b2fc | 4 | #include "motordriver.h" |
donatien | 0:0b1369ae8b74 | 5 | DigitalOut led1(LED1, "led1"); |
donatien | 0:0b1369ae8b74 | 6 | DigitalOut led2(LED2, "led2"); |
donatien | 0:0b1369ae8b74 | 7 | DigitalOut led3(LED3, "led3"); |
donatien | 0:0b1369ae8b74 | 8 | DigitalOut led4(LED4, "led4"); |
tianyeapply | 3:97ed1391b2fc | 9 | AnalogIn pot(p20); |
donatien | 0:0b1369ae8b74 | 10 | |
donatien | 0:0b1369ae8b74 | 11 | LocalFileSystem fs("webfs"); |
donatien | 0:0b1369ae8b74 | 12 | |
donatien | 0:0b1369ae8b74 | 13 | EthernetNetIf eth; |
donatien | 0:0b1369ae8b74 | 14 | HTTPServer svr; |
donatien | 0:0b1369ae8b74 | 15 | |
tianyeapply | 3:97ed1391b2fc | 16 | // Magician robot motor test |
tianyeapply | 3:97ed1391b2fc | 17 | |
tianyeapply | 3:97ed1391b2fc | 18 | //Connections to dual H-brdige driver for the two drive motors |
tianyeapply | 3:97ed1391b2fc | 19 | Motor left(p21, p22, p23, 1); // pwm, fwd, rev, has brake feature |
tianyeapply | 3:97ed1391b2fc | 20 | |
tianyeapply | 3:97ed1391b2fc | 21 | |
donatien | 0:0b1369ae8b74 | 22 | int main() { |
donatien | 0:0b1369ae8b74 | 23 | Base::add_rpc_class<DigitalOut>(); |
donatien | 0:0b1369ae8b74 | 24 | |
donatien | 1:114e347434c1 | 25 | printf("Setting up...\n"); |
donatien | 0:0b1369ae8b74 | 26 | EthernetErr ethErr = eth.setup(); |
donatien | 0:0b1369ae8b74 | 27 | if(ethErr) |
donatien | 0:0b1369ae8b74 | 28 | { |
donatien | 0:0b1369ae8b74 | 29 | printf("Error %d in setup.\n", ethErr); |
donatien | 0:0b1369ae8b74 | 30 | return -1; |
donatien | 0:0b1369ae8b74 | 31 | } |
donatien | 0:0b1369ae8b74 | 32 | printf("Setup OK\n"); |
donatien | 0:0b1369ae8b74 | 33 | |
donatien | 0:0b1369ae8b74 | 34 | FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path |
donatien | 0:0b1369ae8b74 | 35 | FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path |
donatien | 0:0b1369ae8b74 | 36 | |
donatien | 0:0b1369ae8b74 | 37 | svr.addHandler<SimpleHandler>("/hello"); |
donatien | 0:0b1369ae8b74 | 38 | svr.addHandler<RPCHandler>("/rpc"); |
donatien | 0:0b1369ae8b74 | 39 | svr.addHandler<FSHandler>("/files"); |
donatien | 0:0b1369ae8b74 | 40 | svr.addHandler<FSHandler>("/"); //Default handler |
donatien | 0:0b1369ae8b74 | 41 | //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm |
donatien | 0:0b1369ae8b74 | 42 | |
donatien | 0:0b1369ae8b74 | 43 | svr.bind(80); |
donatien | 0:0b1369ae8b74 | 44 | |
donatien | 0:0b1369ae8b74 | 45 | printf("Listening...\n"); |
donatien | 0:0b1369ae8b74 | 46 | |
donatien | 0:0b1369ae8b74 | 47 | Timer tm; |
donatien | 0:0b1369ae8b74 | 48 | tm.start(); |
donatien | 0:0b1369ae8b74 | 49 | //Listen indefinitely |
tianyeapply | 3:97ed1391b2fc | 50 | |
tianyeapply | 3:97ed1391b2fc | 51 | float speed; |
donatien | 0:0b1369ae8b74 | 52 | while(true) |
tianyeapply | 3:97ed1391b2fc | 53 | { |
donatien | 0:0b1369ae8b74 | 54 | Net::poll(); |
tianyeapply | 3:97ed1391b2fc | 55 | speed = pot.read(); |
tianyeapply | 3:97ed1391b2fc | 56 | if(led1==1){ |
tianyeapply | 3:97ed1391b2fc | 57 | left.speed(speed); |
tianyeapply | 3:97ed1391b2fc | 58 | led1=0; |
tianyeapply | 3:97ed1391b2fc | 59 | //start |
tianyeapply | 3:97ed1391b2fc | 60 | } |
tianyeapply | 3:97ed1391b2fc | 61 | else if(led2 ==1){ |
tianyeapply | 3:97ed1391b2fc | 62 | //stop |
tianyeapply | 3:97ed1391b2fc | 63 | left.speed(0); |
tianyeapply | 3:97ed1391b2fc | 64 | led2=0; |
tianyeapply | 3:97ed1391b2fc | 65 | } |
tianyeapply | 3:97ed1391b2fc | 66 | else if(led3==1){ |
tianyeapply | 3:97ed1391b2fc | 67 | //reverse |
tianyeapply | 3:97ed1391b2fc | 68 | left.speed(-speed); |
tianyeapply | 3:97ed1391b2fc | 69 | led3 =0; |
tianyeapply | 3:97ed1391b2fc | 70 | } |
tianyeapply | 3:97ed1391b2fc | 71 | |
donatien | 0:0b1369ae8b74 | 72 | if(tm.read()>.5) |
donatien | 0:0b1369ae8b74 | 73 | { |
tianyeapply | 3:97ed1391b2fc | 74 | led4=!led4; //Show that we are alive |
donatien | 0:0b1369ae8b74 | 75 | tm.start(); |
donatien | 0:0b1369ae8b74 | 76 | } |
donatien | 0:0b1369ae8b74 | 77 | } |
donatien | 0:0b1369ae8b74 | 78 | |
donatien | 0:0b1369ae8b74 | 79 | return 0; |
donatien | 0:0b1369ae8b74 | 80 | |
donatien | 0:0b1369ae8b74 | 81 | } |