ROME 2 Lab5

Main.cpp

Committer:
oehlemar
Date:
2020-04-28
Revision:
0:893a1e710078
Child:
1:5201940a41c1

File content as of revision 0:893a1e710078:

/*
 * Main.cpp
 * Copyright (c) 2020, ZHAW
 * All rights reserved.
 */

#include <mbed.h>
#include <EthernetInterface.h>
#include "LIDAR.h"
#include "HTTPServer.h"
#include "HTTPScriptLIDAR.h"

int main() {
    
    // initialise digital inputs and outputs
    
    printf("Initialise digital inputs and outputs...\r\n");
    
    DigitalIn button(USER_BUTTON);
    
    DigitalOut ledGreen(LED1);
    DigitalOut ledBlue(LED2);
    DigitalOut ledRed(LED3);
    
    // create LIDAR device driver
    
    printf("Create LIDAR device driver...\r\n");
    
    PwmOut pwm(PE_9);
    pwm.period(0.00005f);
    pwm.write(0.5f);
    
    ThisThread::sleep_for(500);
    
    RawSerial serial(PG_14, PG_9);
    LIDAR lidar(serial);
    
    // create ethernet interface and webserver
    
    printf("Create ethernet interface and webserver (please wait!)...\r\n");
    
    EthernetInterface* ethernet = new EthernetInterface();
    ethernet->set_network("169.254.20.110", "255.255.0.0", "0.0.0.0"); // configure IP address, netmask and gateway address
    ethernet->connect();
    
    HTTPServer* httpServer = new HTTPServer(*ethernet);
    httpServer->add("lidar", new HTTPScriptLIDAR(lidar));
    
    // enter main loop
    
    printf("Enter main loop...\r\n");
    
    while (true) {
        
        // set LEDs on microcontroller
        
        ledGreen = 1;
        ledBlue = 0;
        ledRed = 0;
        
        ThisThread::sleep_for(100);
        
        ledGreen = 0;
        ledBlue = 1;
        ledRed = 0;
        
        ThisThread::sleep_for(100);
        
        ledGreen = 0;
        ledBlue = 0;
        ledRed = 1;
        
        ThisThread::sleep_for(100);
    }
}