Make R2D progress display prettier
This commit is contained in:
		@ -66,4 +66,6 @@ private:
 | 
			
		||||
  void updateValueBuffer();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
void *get_r2dprog_text();
 | 
			
		||||
 | 
			
		||||
#endif // NAMEDFIELD_HPP
 | 
			
		||||
 | 
			
		||||
@ -25,8 +25,8 @@ void DriverViewPresenter::vehicleStateUpdated() {
 | 
			
		||||
          vehicle_state.ts_voltage_veh / vehicle_state.ts_voltage_bat * 100;
 | 
			
		||||
    }
 | 
			
		||||
    view.setProgress(true, DriverViewProgressType::PRECHARGE, progress);
 | 
			
		||||
  } else if (vehicle_state.r2d_progress != R2D_NONE &&
 | 
			
		||||
             vehicle_state.r2d_progress != R2D_INIT_SUCCESS) {
 | 
			
		||||
  } else if (vehicle_state.r2d_progress > R2D_TSACTIVE &&
 | 
			
		||||
             vehicle_state.r2d_progress < R2D_INIT_SUCCESS) {
 | 
			
		||||
    view.setProgress(true, DriverViewProgressType::R2D,
 | 
			
		||||
                     vehicle_state.r2d_progress);
 | 
			
		||||
  } else {
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,9 @@
 | 
			
		||||
#include "gui/driverview_screen/DriverViewPresenter.hpp"
 | 
			
		||||
#include "texts/TextKeysAndLanguages.hpp"
 | 
			
		||||
#include "touchgfx/Unicode.hpp"
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
#include <gui/driverview_screen/DriverViewView.hpp>
 | 
			
		||||
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
 | 
			
		||||
DriverViewView::DriverViewView()
 | 
			
		||||
@ -54,28 +56,34 @@ void DriverViewView::setProgress(bool active, DriverViewProgressType type,
 | 
			
		||||
    case DriverViewProgressType::PRECHARGE:
 | 
			
		||||
      prechargeLabel.setVisible(true);
 | 
			
		||||
      r2dLabel.setVisible(false);
 | 
			
		||||
      r2dProgressLabel.setVisible(false);
 | 
			
		||||
      progressBar.setValue(progress);
 | 
			
		||||
      break;
 | 
			
		||||
    case DriverViewProgressType::R2D:
 | 
			
		||||
      touchgfx::Unicode::snprintf(
 | 
			
		||||
          r2dProgBuffer, sizeof(r2dProgBuffer) / sizeof(*r2dProgBuffer), "%d",
 | 
			
		||||
          progress);
 | 
			
		||||
      r2dLabel.setWildcard(r2dProgBuffer);
 | 
			
		||||
      const char *progText = static_cast<const char *>(get_r2dprog_text());
 | 
			
		||||
      touchgfx::Unicode::strncpy(r2dProgBuffer, progText,
 | 
			
		||||
                                 sizeof(r2dProgBuffer) /
 | 
			
		||||
                                     sizeof(*r2dProgBuffer));
 | 
			
		||||
      r2dProgressLabel.setWildcard(r2dProgBuffer);
 | 
			
		||||
      r2dProgressLabel.setVisible(true);
 | 
			
		||||
      r2dLabel.setVisible(true);
 | 
			
		||||
      prechargeLabel.setVisible(false);
 | 
			
		||||
      progressBar.setValue(progress * 100 / 8);
 | 
			
		||||
      progress = progress - R2D_TSACTIVE;
 | 
			
		||||
      progressBar.setValue(progress * 100 / 5);
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    prechargeLabel.invalidate();
 | 
			
		||||
    r2dProgressLabel.invalidate();
 | 
			
		||||
    r2dLabel.invalidate();
 | 
			
		||||
    progressBar.setVisible(true);
 | 
			
		||||
    progressBar.invalidate();
 | 
			
		||||
  } else if (prechargeLabel.isVisible() || r2dLabel.isVisible() ||
 | 
			
		||||
             progressBar.isVisible()) {
 | 
			
		||||
  } else if (progressBar.isVisible()) {
 | 
			
		||||
    prechargeLabel.setVisible(false);
 | 
			
		||||
    prechargeLabel.invalidate();
 | 
			
		||||
    r2dLabel.setVisible(false);
 | 
			
		||||
    r2dLabel.invalidate();
 | 
			
		||||
    r2dProgressLabel.setVisible(false);
 | 
			
		||||
    r2dProgressLabel.invalidate();
 | 
			
		||||
    progressBar.setVisible(false);
 | 
			
		||||
    progressBar.invalidate();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user