ROME 2 Lab5

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Main.cpp Source File

Main.cpp

00001 /*
00002  * Main.cpp
00003  * Copyright (c) 2020, ZHAW
00004  * All rights reserved.
00005  */
00006 
00007 #include <mbed.h>
00008 #include <EthernetInterface.h>
00009 #include "LIDAR.h"
00010 #include "HTTPServer.h"
00011 #include "HTTPScriptLIDAR.h"
00012 
00013 int main() {
00014     
00015     // initialise digital inputs and outputs
00016     
00017     printf("Initialise digital inputs and outputs...\r\n");
00018     
00019     DigitalIn button(USER_BUTTON);
00020     
00021     DigitalOut ledGreen(LED1);
00022     DigitalOut ledBlue(LED2);
00023     DigitalOut ledRed(LED3);
00024     
00025     // create LIDAR device driver
00026     
00027     printf("Create LIDAR device driver...\r\n");
00028     
00029     PwmOut pwm(PE_9);
00030     pwm.period(0.00005f);
00031     pwm.write(0.5f);
00032     
00033     ThisThread::sleep_for(500);
00034     
00035     RawSerial serial(PG_14, PG_9);
00036     LIDAR lidar(serial);
00037     
00038     // create ethernet interface and webserver
00039     
00040     printf("Create ethernet interface and webserver (please wait!)...\r\n");
00041     
00042     EthernetInterface* ethernet = new EthernetInterface();
00043     ethernet->set_network("192.168.201.44", "255.255.255.0", "169.168.201.1"); // configure IP address, netmask and gateway address
00044     ethernet->connect();
00045     
00046     HTTPServer* httpServer = new HTTPServer(*ethernet);
00047     httpServer->add("lidar", new HTTPScriptLIDAR(lidar));
00048     
00049     // enter main loop
00050     
00051     printf("Enter main loop...\r\n");
00052     
00053     while (true) {
00054         Timer timer;
00055         timer.start();
00056         lidar.getBeacons();
00057         int duration = timer.read_us();
00058         printf("Zeit für getBeacons: %d \r\n",duration);
00059         timer.reset();
00060         ThisThread::sleep_for(100);
00061         // set LEDs on microcontroller
00062         
00063         ledGreen = 1;
00064         ledBlue = 0;
00065         ledRed = 0;
00066         
00067         ThisThread::sleep_for(100);
00068         
00069         ledGreen = 0;
00070         ledBlue = 1;
00071         ledRed = 0;
00072         
00073         ThisThread::sleep_for(100);
00074         
00075         ledGreen = 0;
00076         ledBlue = 0;
00077         ledRed = 1;
00078         
00079         ThisThread::sleep_for(100);
00080     }
00081 }
00082