Marco Oehler
/
Lab5
Main.cpp@0:893a1e710078, 2020-04-28 (annotated)
- Committer:
- oehlemar
- Date:
- Tue Apr 28 13:59:27 2020 +0000
- Revision:
- 0:893a1e710078
- Child:
- 1:5201940a41c1
initial publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oehlemar | 0:893a1e710078 | 1 | /* |
oehlemar | 0:893a1e710078 | 2 | * Main.cpp |
oehlemar | 0:893a1e710078 | 3 | * Copyright (c) 2020, ZHAW |
oehlemar | 0:893a1e710078 | 4 | * All rights reserved. |
oehlemar | 0:893a1e710078 | 5 | */ |
oehlemar | 0:893a1e710078 | 6 | |
oehlemar | 0:893a1e710078 | 7 | #include <mbed.h> |
oehlemar | 0:893a1e710078 | 8 | #include <EthernetInterface.h> |
oehlemar | 0:893a1e710078 | 9 | #include "LIDAR.h" |
oehlemar | 0:893a1e710078 | 10 | #include "HTTPServer.h" |
oehlemar | 0:893a1e710078 | 11 | #include "HTTPScriptLIDAR.h" |
oehlemar | 0:893a1e710078 | 12 | |
oehlemar | 0:893a1e710078 | 13 | int main() { |
oehlemar | 0:893a1e710078 | 14 | |
oehlemar | 0:893a1e710078 | 15 | // initialise digital inputs and outputs |
oehlemar | 0:893a1e710078 | 16 | |
oehlemar | 0:893a1e710078 | 17 | printf("Initialise digital inputs and outputs...\r\n"); |
oehlemar | 0:893a1e710078 | 18 | |
oehlemar | 0:893a1e710078 | 19 | DigitalIn button(USER_BUTTON); |
oehlemar | 0:893a1e710078 | 20 | |
oehlemar | 0:893a1e710078 | 21 | DigitalOut ledGreen(LED1); |
oehlemar | 0:893a1e710078 | 22 | DigitalOut ledBlue(LED2); |
oehlemar | 0:893a1e710078 | 23 | DigitalOut ledRed(LED3); |
oehlemar | 0:893a1e710078 | 24 | |
oehlemar | 0:893a1e710078 | 25 | // create LIDAR device driver |
oehlemar | 0:893a1e710078 | 26 | |
oehlemar | 0:893a1e710078 | 27 | printf("Create LIDAR device driver...\r\n"); |
oehlemar | 0:893a1e710078 | 28 | |
oehlemar | 0:893a1e710078 | 29 | PwmOut pwm(PE_9); |
oehlemar | 0:893a1e710078 | 30 | pwm.period(0.00005f); |
oehlemar | 0:893a1e710078 | 31 | pwm.write(0.5f); |
oehlemar | 0:893a1e710078 | 32 | |
oehlemar | 0:893a1e710078 | 33 | ThisThread::sleep_for(500); |
oehlemar | 0:893a1e710078 | 34 | |
oehlemar | 0:893a1e710078 | 35 | RawSerial serial(PG_14, PG_9); |
oehlemar | 0:893a1e710078 | 36 | LIDAR lidar(serial); |
oehlemar | 0:893a1e710078 | 37 | |
oehlemar | 0:893a1e710078 | 38 | // create ethernet interface and webserver |
oehlemar | 0:893a1e710078 | 39 | |
oehlemar | 0:893a1e710078 | 40 | printf("Create ethernet interface and webserver (please wait!)...\r\n"); |
oehlemar | 0:893a1e710078 | 41 | |
oehlemar | 0:893a1e710078 | 42 | EthernetInterface* ethernet = new EthernetInterface(); |
oehlemar | 0:893a1e710078 | 43 | ethernet->set_network("169.254.20.110", "255.255.0.0", "0.0.0.0"); // configure IP address, netmask and gateway address |
oehlemar | 0:893a1e710078 | 44 | ethernet->connect(); |
oehlemar | 0:893a1e710078 | 45 | |
oehlemar | 0:893a1e710078 | 46 | HTTPServer* httpServer = new HTTPServer(*ethernet); |
oehlemar | 0:893a1e710078 | 47 | httpServer->add("lidar", new HTTPScriptLIDAR(lidar)); |
oehlemar | 0:893a1e710078 | 48 | |
oehlemar | 0:893a1e710078 | 49 | // enter main loop |
oehlemar | 0:893a1e710078 | 50 | |
oehlemar | 0:893a1e710078 | 51 | printf("Enter main loop...\r\n"); |
oehlemar | 0:893a1e710078 | 52 | |
oehlemar | 0:893a1e710078 | 53 | while (true) { |
oehlemar | 0:893a1e710078 | 54 | |
oehlemar | 0:893a1e710078 | 55 | // set LEDs on microcontroller |
oehlemar | 0:893a1e710078 | 56 | |
oehlemar | 0:893a1e710078 | 57 | ledGreen = 1; |
oehlemar | 0:893a1e710078 | 58 | ledBlue = 0; |
oehlemar | 0:893a1e710078 | 59 | ledRed = 0; |
oehlemar | 0:893a1e710078 | 60 | |
oehlemar | 0:893a1e710078 | 61 | ThisThread::sleep_for(100); |
oehlemar | 0:893a1e710078 | 62 | |
oehlemar | 0:893a1e710078 | 63 | ledGreen = 0; |
oehlemar | 0:893a1e710078 | 64 | ledBlue = 1; |
oehlemar | 0:893a1e710078 | 65 | ledRed = 0; |
oehlemar | 0:893a1e710078 | 66 | |
oehlemar | 0:893a1e710078 | 67 | ThisThread::sleep_for(100); |
oehlemar | 0:893a1e710078 | 68 | |
oehlemar | 0:893a1e710078 | 69 | ledGreen = 0; |
oehlemar | 0:893a1e710078 | 70 | ledBlue = 0; |
oehlemar | 0:893a1e710078 | 71 | ledRed = 1; |
oehlemar | 0:893a1e710078 | 72 | |
oehlemar | 0:893a1e710078 | 73 | ThisThread::sleep_for(100); |
oehlemar | 0:893a1e710078 | 74 | } |
oehlemar | 0:893a1e710078 | 75 | } |
oehlemar | 0:893a1e710078 | 76 |