2018 revision to classic DataBus AVC code.
Dependencies: LSM303DLM Servo SerialGraphicLCD L3G4200D IncrementalEncoder SimpleShell
Revision 38:6fec81f85221, committed 2019-01-02
- Comitter:
- shimniok
- Date:
- Wed Jan 02 18:40:29 2019 +0000
- Parent:
- 37:b8259500dbd3
- Child:
- 39:465213249f71
- Commit message:
- display gps data
Changed in this revision
Display/Display.cpp | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/Display/Display.cpp Wed Jan 02 18:20:47 2019 +0000 +++ b/Display/Display.cpp Wed Jan 02 18:40:29 2019 +0000 @@ -10,8 +10,14 @@ } -void Display::gps(GpsData d) +void Display::gps(GpsData d) { + lcd->pos(0,6); + lcd->printf("lat: %13.7f ", d.latitude); + lcd->pos(0,5); + lcd->printf("lon: %13.7f ", d.longitude); + lcd->pos(0,4); + lcd->printf("svc: %2d ", d.svcount); } void Display::imu(SensorData d) @@ -33,7 +39,7 @@ } line[LCDWIDTH] = 0; - lcd->posXY(0,0); + lcd->pos(0,7); // TODO: limit string length lcd->printf(line); }
--- a/main.cpp Wed Jan 02 18:20:47 2019 +0000 +++ b/main.cpp Wed Jan 02 18:40:29 2019 +0000 @@ -111,6 +111,7 @@ // GPS Ublox6 ublox; EventQueue gpsQueue(8 * EVENTS_EVENT_SIZE); +EventQueue lcdQueue(8 * EVENTS_EVENT_SIZE); // Callback for gps parse data ready void gps_callback() { @@ -120,7 +121,8 @@ 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 ... + //lcdQueue.call(&display, &Display::gps, d); + display.gps(d); } // ISR for GPS serial, passes off to thread @@ -276,6 +278,10 @@ display.status("config load error"); } + printf("Starting display...\n"); + Thread lcdThread(osPriorityLow, 2048, 0, "lcd"); + lcdThread.start(callback(&lcdQueue, &EventQueue::dispatch_forever)); + printf("Starting buttons...\n"); display.status("Starting buttons"); lbutton.fall(buttonQueue.event(button_event));