void MainScreen::update(BTOBD * bt, GPS * gps) { uint16_t status = bt->getStatus(); bt->clearStatus(); OBDCMDS::CMD cmd = OBDCMDS::SPEED; while (status) { if (status & 1) draw(cmd, bt); status >>= 1; cmd = static_cast<OBDCMDS::CMD>(((int)cmd)+ 1); } GPSVAL::VAL value = GPSVAL::FIX_TIME; status = gps->getStatus(); gps->clearStatus(); while (status) { if (status & 1) drawGPS(value, gps); status >>= 1; value = static_cast<GPSVAL::VAL>(((int)value)+1); } }
void NavigationGUI::display() { glClearColor(1, 1, 1, 0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); drawVideo(); if (displayOverlay) { drawFeedStatus(); drawGPS(); if(displayTilt) { drawTilt(); } drawBattery(); drawSignal(); drawUltrasonic(); drawVolts(); drawADC(); drawLidarTilt(); } glutSwapBuffers(); }