Parse CAN messges
This commit is contained in:
		@ -2,9 +2,14 @@
 | 
			
		||||
#include <gui/ami_screen/AMIView.hpp>
 | 
			
		||||
 | 
			
		||||
#include "main.h"
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
 | 
			
		||||
AMIPresenter::AMIPresenter(AMIView &v) : view(v) {}
 | 
			
		||||
 | 
			
		||||
void AMIPresenter::activate() { view.setMission(model->getMission()); }
 | 
			
		||||
void AMIPresenter::activate() { missionUpdated(); }
 | 
			
		||||
 | 
			
		||||
void AMIPresenter::deactivate() {}
 | 
			
		||||
 | 
			
		||||
void AMIPresenter::missionUpdated() {
 | 
			
		||||
  view.setMission(vehicle_state.active_mission);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -37,4 +37,5 @@ void AMIView::setMission(Mission mission) {
 | 
			
		||||
    currentMission.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
 | 
			
		||||
    break;
 | 
			
		||||
  }
 | 
			
		||||
  currentMission.invalidate();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,10 @@
 | 
			
		||||
#include <gui/driverview_screen/DriverViewPresenter.hpp>
 | 
			
		||||
#include <gui/driverview_screen/DriverViewView.hpp>
 | 
			
		||||
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
 | 
			
		||||
DriverViewPresenter::DriverViewPresenter(DriverViewView &v) : view(v) {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::activate() {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::deactivate() {}
 | 
			
		||||
 | 
			
		||||
void DriverViewPresenter::tireTempsUpdated() {
 | 
			
		||||
  view.setTireTemps(model->getTireTemps());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,3 +1,7 @@
 | 
			
		||||
#include "gui/common/FrontendApplication.hpp"
 | 
			
		||||
#include "stw_defines.h"
 | 
			
		||||
#include "touchgfx/Application.hpp"
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
#include <gui/missionselect_screen/MissionSelectPresenter.hpp>
 | 
			
		||||
#include <gui/missionselect_screen/MissionSelectView.hpp>
 | 
			
		||||
 | 
			
		||||
@ -8,6 +12,12 @@ void MissionSelectPresenter::activate() {}
 | 
			
		||||
 | 
			
		||||
void MissionSelectPresenter::deactivate() {}
 | 
			
		||||
 | 
			
		||||
void MissionSelectPresenter::confirmMission(Mission mission) {
 | 
			
		||||
  model->setMission(mission);
 | 
			
		||||
void MissionSelectPresenter::missionUpdated() {
 | 
			
		||||
  FrontendApplication *app =
 | 
			
		||||
      static_cast<FrontendApplication *>(FrontendApplication::getInstance());
 | 
			
		||||
  if (vehicle_state.active_mission == MISSION_MANUAL) {
 | 
			
		||||
    app->gotoDriverViewScreenNoTransition();
 | 
			
		||||
  } else {
 | 
			
		||||
    app->gotoAMIScreenNoTransition();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
#include "gui/missionselect_screen/MissionSelectPresenter.hpp"
 | 
			
		||||
#include "stw_defines.h"
 | 
			
		||||
#include "texts/TextKeysAndLanguages.hpp"
 | 
			
		||||
#include "vehicle.h"
 | 
			
		||||
#include <gui/missionselect_screen/MissionSelectView.hpp>
 | 
			
		||||
 | 
			
		||||
MissionSelectView::MissionSelectView()
 | 
			
		||||
@ -50,12 +51,7 @@ void MissionSelectView::confirmMission() {
 | 
			
		||||
    // Can't confirm if we haven't selected a mission yet
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  presenter->confirmMission(selectedMission);
 | 
			
		||||
  if (selectedMission == MISSION_MANUAL) {
 | 
			
		||||
    application().gotoDriverViewScreenNoTransition();
 | 
			
		||||
  } else {
 | 
			
		||||
    application().gotoAMIScreenNoTransition();
 | 
			
		||||
  }
 | 
			
		||||
  vehicle_select_mission(selectedMission);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MissionSelectView::setSelectedMission(Mission mission) {
 | 
			
		||||
 | 
			
		||||
@ -5,38 +5,35 @@
 | 
			
		||||
#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() {
 | 
			
		||||
  static int incs = 0;
 | 
			
		||||
  if ((HAL_GetTick() / 10) % 5 == 0) {
 | 
			
		||||
    tireTemps.fl++;
 | 
			
		||||
    if (tireTemps.fl > 90) {
 | 
			
		||||
      tireTemps.fl = 0;
 | 
			
		||||
  VehicleUpdate msg;
 | 
			
		||||
  while (tx_queue_receive(&vehicle_update_queue, &msg, TX_NO_WAIT) ==
 | 
			
		||||
         TX_SUCCESS) {
 | 
			
		||||
    switch (msg) {
 | 
			
		||||
    case VEH_UPD_AMS:
 | 
			
		||||
      modelListener->amsUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    case VEH_UPD_MISSION:
 | 
			
		||||
      modelListener->missionUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    case VEH_UPD_STATUS:
 | 
			
		||||
      modelListener->statusUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    case VEH_UPD_TS_CURRENT:
 | 
			
		||||
      modelListener->tsCurrentUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    case VEH_UPD_TS_VOLTAGE_VEH:
 | 
			
		||||
      modelListener->tsVoltageVehicleUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    case VEH_UPD_TS_VOLTAGE_BAT:
 | 
			
		||||
      modelListener->tsVoltageBatteryUpdated();
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
    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