Get started on driver view
This commit is contained in:
		
							
								
								
									
										42
									
								
								TouchGFX/gui/src/containers/TireTemp.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								TouchGFX/gui/src/containers/TireTemp.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
#include "touchgfx/Color.hpp"
 | 
			
		||||
#include "touchgfx/Unicode.hpp"
 | 
			
		||||
#include <gui/containers/TireTemp.hpp>
 | 
			
		||||
 | 
			
		||||
TireTemp::TireTemp() : temp{0} { updateValueBuffer(); }
 | 
			
		||||
 | 
			
		||||
void TireTemp::initialize() { TireTempBase::initialize(); }
 | 
			
		||||
 | 
			
		||||
void TireTemp::setTemp(int temp_in_celsius) {
 | 
			
		||||
  if (temp_in_celsius < 0) {
 | 
			
		||||
    // No space for displaying negative values
 | 
			
		||||
    temp_in_celsius = 0;
 | 
			
		||||
  }
 | 
			
		||||
  if (temp_in_celsius == temp) {
 | 
			
		||||
    // No change
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  temp = temp_in_celsius;
 | 
			
		||||
  updateValueBuffer();
 | 
			
		||||
  if (temp < 35) {
 | 
			
		||||
    bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0xb7));
 | 
			
		||||
  } else if (temp < 40) {
 | 
			
		||||
    bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x76, 0x64));
 | 
			
		||||
  } else if (temp < 50) {
 | 
			
		||||
    bg.setColor(touchgfx::Color::getColorFromRGB(0x05, 0x95, 0x38));
 | 
			
		||||
  } else if (temp < 60) {
 | 
			
		||||
    bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x6e, 0x22));
 | 
			
		||||
  } else {
 | 
			
		||||
    bg.setColor(touchgfx::Color::getColorFromRGB(0xdd, 0x2f, 0x22));
 | 
			
		||||
  }
 | 
			
		||||
  value.invalidate();
 | 
			
		||||
  bg.invalidate(); // TODO: Only invalidate if color changed
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TireTemp::updateValueBuffer() {
 | 
			
		||||
  //   Unicode::utoa(temp, valueBuffer, 3, 10);
 | 
			
		||||
  Unicode::snprintf(valueBuffer,
 | 
			
		||||
                    sizeof(valueBuffer) / sizeof(Unicode::UnicodeChar), "%02u",
 | 
			
		||||
                    temp);
 | 
			
		||||
  value.setWildcard(valueBuffer);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
#include <gui/driverview_screen/DriverViewPresenter.hpp>
 | 
			
		||||
#include <gui/driverview_screen/DriverViewView.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DriverViewPresenter::DriverViewPresenter(DriverViewView &v) : view(v) {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::activate() {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::deactivate() {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::tireTempsUpdated() {
 | 
			
		||||
  view.setTireTemps(model->getTireTemps());
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								TouchGFX/gui/src/driverview_screen/DriverViewView.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								TouchGFX/gui/src/driverview_screen/DriverViewView.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
#include <gui/driverview_screen/DriverViewView.hpp>
 | 
			
		||||
 | 
			
		||||
DriverViewView::DriverViewView() {}
 | 
			
		||||
 | 
			
		||||
void DriverViewView::setupScreen() { DriverViewViewBase::setupScreen(); }
 | 
			
		||||
 | 
			
		||||
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
 | 
			
		||||
 | 
			
		||||
void DriverViewView::setTireTemps(const TireTemps &temps) {
 | 
			
		||||
  tireTempFL.setTemp(temps.fl);
 | 
			
		||||
  tireTempFR.setTemp(temps.fr);
 | 
			
		||||
  tireTempRL.setTemp(temps.rl);
 | 
			
		||||
  tireTempRR.setTemp(temps.rr);
 | 
			
		||||
}
 | 
			
		||||
@ -51,7 +51,11 @@ void MissionSelectView::confirmMission() {
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  presenter->confirmMission(selectedMission);
 | 
			
		||||
  application().gotoAMIScreenNoTransition();
 | 
			
		||||
  if (selectedMission == MISSION_MANUAL) {
 | 
			
		||||
    application().gotoDriverViewScreenNoTransition();
 | 
			
		||||
  } else {
 | 
			
		||||
    application().gotoAMIScreenNoTransition();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MissionSelectView::setSelectedMission(Mission mission) {
 | 
			
		||||
 | 
			
		||||
@ -1,11 +1,42 @@
 | 
			
		||||
#include "main.h"
 | 
			
		||||
#include "stm32h7xx_hal.h"
 | 
			
		||||
#include "stm32h7xx_hal_gpio.h"
 | 
			
		||||
#include "stw_defines.h"
 | 
			
		||||
#include "tx_api.h"
 | 
			
		||||
#include "ui.h"
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
#include <gui/model/Model.hpp>
 | 
			
		||||
#include <gui/model/ModelListener.hpp>
 | 
			
		||||
 | 
			
		||||
Model::Model() : modelListener(0) {}
 | 
			
		||||
 | 
			
		||||
void Model::tick() {}
 | 
			
		||||
void Model::tick() {
 | 
			
		||||
  static int incs = 0;
 | 
			
		||||
  if ((HAL_GetTick() / 10) % 5 == 0) {
 | 
			
		||||
    tireTemps.fl++;
 | 
			
		||||
    if (tireTemps.fl > 90) {
 | 
			
		||||
      tireTemps.fl = 0;
 | 
			
		||||
    }
 | 
			
		||||
    if (incs % 2 == 0) {
 | 
			
		||||
      tireTemps.fr++;
 | 
			
		||||
      if (tireTemps.fr > 90) {
 | 
			
		||||
        tireTemps.fr = 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (incs % 3 == 0) {
 | 
			
		||||
      tireTemps.rl++;
 | 
			
		||||
      if (tireTemps.rl > 90) {
 | 
			
		||||
        tireTemps.rl = 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (incs % 4 == 0) {
 | 
			
		||||
      tireTemps.rr++;
 | 
			
		||||
      if (tireTemps.rr > 90) {
 | 
			
		||||
        tireTemps.rr = 0;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    incs++;
 | 
			
		||||
 | 
			
		||||
    modelListener->tireTempsUpdated();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user