Parse CAN messges

This commit is contained in:
2023-03-18 21:44:01 +01:00
parent 148ab2b69c
commit 5fe5d509a4
16 changed files with 269 additions and 74 deletions

View File

@ -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);
}

View File

@ -37,4 +37,5 @@ void AMIView::setMission(Mission mission) {
currentMission.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
break;
}
currentMission.invalidate();
}

View File

@ -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());
}

View File

@ -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();
}
}

View File

@ -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) {

View File

@ -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();
}
}