2018 revision to classic DataBus AVC code.

Dependencies:   LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell

Revision:
37:b8259500dbd3
Parent:
35:c42e7e29c3bd
Child:
38:6fec81f85221
--- a/main.cpp	Tue Jan 01 17:44:27 2019 +0000
+++ b/main.cpp	Wed Jan 02 18:20:47 2019 +0000
@@ -17,6 +17,7 @@
 #include "Ublox6.h"
 #include "Logger.h"
 #include "SystemState.h"
+#include "Display.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 // Config
@@ -28,6 +29,7 @@
 DigitalOut led2(LED2);
 DigitalOut led3(LED3);
 DigitalOut led4(LED4);
+Display display(UART3TX, UART3RX);
 LocalFileSystem lfs("etc");
 SDBlockDevice bd(p5, p6, p7, p8); // MOSI, MISO, CLK, CS
 FATFileSystem ffs("log", &bd);
@@ -67,6 +69,7 @@
     d.encoder = u->encoder();
     u->imu(d.gyro, d.accel, d.mag, dt);
     logQueue.call(&logger, &Logger::log_sensors, d);
+    //lcdQueue.call ...
 }
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -117,6 +120,7 @@
     ublox.read(d.latitude, d.longitude, d.course, d.speed, d.hdop, d.svcount);   
     d.timestamp = Kernel::get_ms_count();
     logQueue.call(&logger, &Logger::log_gps, d);
+    //lcdQueue.call ...
 }
 
 // ISR for GPS serial, passes off to thread
@@ -236,6 +240,7 @@
 
     //Kernel::attach_idle_hook(idler);
     
+    display.status("Bootup...");
     printf("Bootup...\n");
     fflush(stdout);
     
@@ -243,6 +248,7 @@
     esc = 0.00;
     
     printf("Loading config...\n");
+    display.status("Loading config");
     config.add("intercept_distance", Config::DOUBLE);
     config.add("waypoint_threshold", Config::DOUBLE);
     config.add("minimum_turning_radius", Config::DOUBLE);
@@ -267,9 +273,11 @@
 
     if (config.load("/etc/2018cfg.txt")) {
         printf("error loading config\n");
+        display.status("config load error");
     }
 
     printf("Starting buttons...\n");
+    display.status("Starting buttons");
     lbutton.fall(buttonQueue.event(button_event));
     //cbutton.rise(buttonQueue.event(button_event));
     //rbutton.rise(buttonQueue.event(button_event));
@@ -277,22 +285,26 @@
     buttonThread.start(callback(&buttonQueue, &EventQueue::dispatch_forever));
     
     printf("Starting updater...\n");
+    display.status("Starting updater");
     u->attach(updater_callback);
     Thread updaterThread(osPriorityRealtime, 512, 0, "updater");
     updaterQueue.call_every(20, u, &Updater::update);
     updaterThread.start(callback(&updaterQueue, &EventQueue::dispatch_forever));
     
     printf("Starting gps...\n");
+    display.status("Starting gps");
     Thread gpsThread(osPriorityHigh, 2048, 0, "gps");
     gpsThread.start(callback(&gpsQueue, &EventQueue::dispatch_forever));
     ublox.subscribe(gps_callback);
     s.attach(gps_handler);
     
-    printf("Starting logging...\n");    
+    printf("Starting logging...\n");
+    display.status("Starting logging");
     Thread logThread(osPriorityNormal, 2048, 0, "log");
     logThread.start(callback(&logQueue, &EventQueue::dispatch_forever));
 
     printf("Starting shell...\n");
+    display.status("Starting shell");
     sh.command(test, "test");
     sh.command(read_imu, "imu");
     sh.command(read_enc, "enc");
@@ -300,6 +312,8 @@
     sh.command(reset, "reset");
     sh.command(stats, "stats");
     sh.command(log, "log");
+
+    display.status("DataBus 2018");
     sh.run();
     
     while (true) {