2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
Diff: main.cpp
- Revision:
- 37:b8259500dbd3
- Parent:
- 35:c42e7e29c3bd
- Child:
- 38:6fec81f85221
diff -r 3095e00eef37 -r b8259500dbd3 main.cpp --- 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) {