Add status boxes

This commit is contained in:
Jasper Blanckenburg 2023-05-22 07:22:44 +02:00
parent efa36eab5f
commit bf1b81122e
24 changed files with 436 additions and 30 deletions

View File

@ -94,6 +94,8 @@ typedef struct {
ASState as_state;
Mission active_mission;
int sdc_closed;
R2DProgress r2d_progress;
struct {
int invl_ready : 1;

View File

@ -85,6 +85,7 @@ void ftcan_msg_received_cb(uint16_t id, size_t datalen, const uint8_t *data) {
break;
case CAN_ID_AMS_STATUS:
vehicle_state.ts_state = data[0] & 0x7F;
vehicle_state.sdc_closed = (data[0] & 0x80) >> 7;
vehicle_state.soc = data[1];
ptr = &data[2];
vehicle_state.min_cell_volt =

View File

@ -363,6 +363,7 @@ TouchGFX/generated/gui_generated/src/containers/DebugViewItemBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DebugViewLineBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp \
TouchGFX/generated/gui_generated/src/containers/DriverViewStatusItemBase.cpp \
TouchGFX/generated/gui_generated/src/containers/ErrorPopupBase.cpp \
TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
TouchGFX/generated/gui_generated/src/containers/TemperatureBase.cpp \
@ -380,6 +381,7 @@ TouchGFX/generated/images/src/image_bat_bar_bg.cpp \
TouchGFX/generated/images/src/image_logo_dv_small.cpp \
TouchGFX/generated/images/src/image_logo_dv_small_white.cpp \
TouchGFX/generated/images/src/image_precharge_bg.cpp \
TouchGFX/generated/images/src/image_prog_horiz_bg.cpp \
TouchGFX/generated/texts/src/LanguageGb.cpp \
TouchGFX/generated/texts/src/Texts.cpp \
TouchGFX/generated/texts/src/TypedTextDatabase.cpp \
@ -392,6 +394,7 @@ TouchGFX/gui/src/containers/DebugViewItem.cpp \
TouchGFX/gui/src/containers/DebugViewLine.cpp \
TouchGFX/gui/src/containers/DriverViewField.cpp \
TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp \
TouchGFX/gui/src/containers/DriverViewStatusItem.cpp \
TouchGFX/gui/src/containers/ErrorPopup.cpp \
TouchGFX/gui/src/containers/MissionSelectElement.cpp \
TouchGFX/gui/src/containers/Temperature.cpp \

View File

@ -4,6 +4,29 @@
<Language Id="GB" />
</Languages>
<Texts>
<TextGroup Id="Status">
<Text Id="PDU" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">PDU</Translation>
</Text>
<Text Id="SCS" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">SCS</Translation>
</Text>
<Text Id="SDC" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">SDC</Translation>
</Text>
<Text Id="R2D" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">R2D</Translation>
</Text>
<Text Id="TS" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">TS</Translation>
</Text>
<Text Id="INV" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">INV</Translation>
</Text>
<Text Id="AMS" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">AMS</Translation>
</Text>
</TextGroup>
<TextGroup Id="Errors">
<Text Id="Error_AMS" Alignment="Center" TypographyId="Chinat_Huge">
<Translation Language="GB">AMS ErrOr</Translation>
@ -145,6 +168,9 @@
</Text>
</TextGroup>
<TextGroup Id="Unsorted">
<Text Id="__SingleUse_F9I5" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB" />
</Text>
<Text Id="__SingleUse_JN2J" Alignment="Center" TypographyId="Chinat_Small">
<Translation Language="GB">MOTOR</Translation>
</Text>

View File

@ -0,0 +1,34 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#ifndef DRIVERVIEWSTATUSITEMBASE_HPP
#define DRIVERVIEWSTATUSITEMBASE_HPP
#include <gui/common/FrontendApplication.hpp>
#include <touchgfx/containers/Container.hpp>
#include <touchgfx/widgets/BoxWithBorder.hpp>
#include <touchgfx/widgets/TextArea.hpp>
class DriverViewStatusItemBase : public touchgfx::Container
{
public:
DriverViewStatusItemBase();
virtual ~DriverViewStatusItemBase();
virtual void initialize();
protected:
FrontendApplication& application() {
return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
}
/*
* Member Declarations
*/
touchgfx::BoxWithBorder bg;
touchgfx::TextArea text;
private:
};
#endif // DRIVERVIEWSTATUSITEMBASE_HPP

View File

@ -11,15 +11,17 @@
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <gui/containers/ErrorPopup.hpp>
#include <touchgfx/containers/Container.hpp>
#include <gui/containers/Temperature.hpp>
#include <touchgfx/widgets/canvas/Line.hpp>
#include <touchgfx/containers/scrollers/ScrollWheel.hpp>
#include <gui/containers/DriverViewFieldSelection.hpp>
#include <gui/containers/DriverViewField.hpp>
#include <touchgfx/containers/ListLayout.hpp>
#include <gui/containers/DriverViewStatusItem.hpp>
#include <touchgfx/containers/progress_indicators/BoxProgress.hpp>
#include <touchgfx/widgets/TextAreaWithWildcard.hpp>
#include <gui/containers/ErrorPopup.hpp>
class DriverViewViewBase : public touchgfx::View<DriverViewPresenter>
{
@ -73,7 +75,6 @@ protected:
touchgfx::PainterRGB565 lvSoCPainter;
touchgfx::TextArea tsSoCLabel;
touchgfx::TextArea lvSoCLabel;
ErrorPopup errorPopup;
touchgfx::Container drivetrainTemps;
touchgfx::TextArea motorTempLabel;
Temperature motorTempL;
@ -102,10 +103,18 @@ protected:
DriverViewField field2;
DriverViewField field1;
touchgfx::Container statusBar;
touchgfx::ListLayout statusItems;
DriverViewStatusItem statusTS_R2D;
DriverViewStatusItem statusAMS;
DriverViewStatusItem statusSDC;
DriverViewStatusItem statusSCS;
DriverViewStatusItem statusPDU;
DriverViewStatusItem statusINV;
touchgfx::BoxProgress progressBar;
touchgfx::TextArea prechargeLabel;
touchgfx::TextArea r2dLabel;
touchgfx::TextAreaWithOneWildcard r2dProgressLabel;
ErrorPopup errorPopup;
private:

View File

@ -0,0 +1,33 @@
/*********************************************************************************/
/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
/*********************************************************************************/
#include <gui_generated/containers/DriverViewStatusItemBase.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
DriverViewStatusItemBase::DriverViewStatusItemBase()
{
setWidth(75);
setHeight(33);
bg.setPosition(0, 0, 75, 33);
bg.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
bg.setBorderColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
bg.setBorderSize(1);
add(bg);
text.setPosition(0, 4, 75, 25);
text.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
text.setLinespacing(0);
text.setTypedText(touchgfx::TypedText(T___SINGLEUSE_F9I5));
add(text);
}
DriverViewStatusItemBase::~DriverViewStatusItemBase()
{
}
void DriverViewStatusItemBase::initialize()
{
}

View File

@ -54,10 +54,6 @@ DriverViewViewBase::DriverViewViewBase() :
lvSoCLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_4OBM));
add(lvSoCLabel);
errorPopup.setXY(15, 155);
errorPopup.setVisible(false);
add(errorPopup);
drivetrainTemps.setPosition(315, 130, 150, 175);
motorTempLabel.setPosition(0, 90, 150, 25);
motorTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
@ -169,6 +165,27 @@ DriverViewViewBase::DriverViewViewBase() :
add(dataFields);
statusBar.setPosition(15, 15, 450, 33);
statusItems.setXY(0, 0);
statusItems.setDirection(touchgfx::EAST);
statusTS_R2D.setXY(0, 0);
statusItems.add(statusTS_R2D);
statusItems.add(statusAMS);
statusSDC.setXY(150, 0);
statusItems.add(statusSDC);
statusSCS.setXY(225, 0);
statusItems.add(statusSCS);
statusItems.add(statusPDU);
statusINV.setXY(375, 0);
statusItems.add(statusINV);
statusBar.add(statusItems);
progressBar.setXY(0, 0);
progressBar.setProgressIndicatorPosition(0, 0, 480, 55);
progressBar.setRange(0, 100);
@ -201,6 +218,10 @@ DriverViewViewBase::DriverViewViewBase() :
statusBar.add(r2dProgressLabel);
add(statusBar);
errorPopup.setXY(15, 155);
errorPopup.setVisible(false);
add(errorPopup);
}
DriverViewViewBase::~DriverViewViewBase()
@ -210,7 +231,6 @@ DriverViewViewBase::~DriverViewViewBase()
void DriverViewViewBase::setupScreen()
{
errorPopup.initialize();
motorTempL.initialize();
motorTempR.initialize();
invTempR.initialize();
@ -227,6 +247,13 @@ void DriverViewViewBase::setupScreen()
field3.initialize();
field2.initialize();
field1.initialize();
statusTS_R2D.initialize();
statusAMS.initialize();
statusSDC.initialize();
statusSCS.initialize();
statusPDU.initialize();
statusINV.initialize();
errorPopup.initialize();
}
void DriverViewViewBase::handleKeyEvent(uint8_t key)

View File

@ -1 +1 @@
{"remap":"yes","language":"GB","language_index":0,"indices":[["128","T_ERROR_AMS"],["176","T_DEBUGVIEWFIELD_TITLE"],["176","T_DRIVERVIEWFIELD_TITLE"],["176","T_NUMBERSMALLWILDCARD"],["293","T_FIELD_BBAL"],["256","T_FIELD_TSVOLTVEH"],["249","T_FIELD_TSVOLTBAT"],["269","T_FIELD_LVSOC"],["287","T_FIELD_TSSOC"],["303","T_FIELD_MAXCELLTEMP"],["308","T_FIELD_TIREFL"],["313","T_FIELD_TIREFR"],["318","T_FIELD_TIRERL"],["323","T_FIELD_TIRERR"],["298","T_FIELD_LAPCOUNT"],["186","T_FIELD_INICHKSTATE"],["263","T_FIELD_ERR"],["341","T_FIELD_SDC"],["202","T_FIELD_INVRREADY"],["194","T_FIELD_INVLREADY"],["218","T_FIELD_R2DPROGRESS"],["210","T_FIELD_ACTIVEMISSION"],["178","T_FIELD_ASSTATE"],["234","T_FIELD_TSSTATE"],["176","T_NUMBERWILDCARD"],["176","T_DEFAULTWILDCARD_CENTERED"],["176","T_DEFAULTWILDCARD_RIGHTALIGNED"],["333","T_FIELD_TSCURRENT"],["328","T_FIELD_MINCELLVOLT"],["281","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["158","T_EBS_HUGE"],["117","T_TRACKDRIVE_HUGE"],["138","T_AUTOX_HUGE"],["226","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["158","T_EBS"],["117","T_TRACKDRIVE"],["138","T_AUTOX"],["226","T_SKIDPAD"],["82","T_ACCEL"],["275","T___SINGLEUSE_JN2J"],["167","T___SINGLEUSE_ZP7N"],["176","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["176","T___SINGLEUSE_J5UH"],["337","T___SINGLEUSE_NGUK"],["176","T___SINGLEUSE_4E84"],["176","T___SINGLEUSE_YTAB"],["106","T___SINGLEUSE_RWCE"],["148","T___SINGLEUSE_HMH2"],["345","T___SINGLEUSE_4OBM"],["334","T___SINGLEUSE_PHFD"],["242","T___SINGLEUSE_H6UX"],["176","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
{"remap":"yes","language":"GB","language_index":0,"indices":[["345","T_PDU"],["353","T_SCS"],["357","T_SDC"],["349","T_R2D"],["342","T_TS"],["337","T_INV"],["333","T_AMS"],["128","T_ERROR_AMS"],["176","T_DEBUGVIEWFIELD_TITLE"],["176","T_DRIVERVIEWFIELD_TITLE"],["176","T_NUMBERSMALLWILDCARD"],["293","T_FIELD_BBAL"],["256","T_FIELD_TSVOLTVEH"],["249","T_FIELD_TSVOLTBAT"],["269","T_FIELD_LVSOC"],["287","T_FIELD_TSSOC"],["303","T_FIELD_MAXCELLTEMP"],["308","T_FIELD_TIREFL"],["313","T_FIELD_TIREFR"],["318","T_FIELD_TIRERL"],["323","T_FIELD_TIRERR"],["298","T_FIELD_LAPCOUNT"],["186","T_FIELD_INICHKSTATE"],["263","T_FIELD_ERR"],["357","T_FIELD_SDC"],["202","T_FIELD_INVRREADY"],["194","T_FIELD_INVLREADY"],["218","T_FIELD_R2DPROGRESS"],["210","T_FIELD_ACTIVEMISSION"],["178","T_FIELD_ASSTATE"],["234","T_FIELD_TSSTATE"],["176","T_NUMBERWILDCARD"],["176","T_DEFAULTWILDCARD_CENTERED"],["176","T_DEFAULTWILDCARD_RIGHTALIGNED"],["341","T_FIELD_TSCURRENT"],["328","T_FIELD_MINCELLVOLT"],["281","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["158","T_EBS_HUGE"],["117","T_TRACKDRIVE_HUGE"],["138","T_AUTOX_HUGE"],["226","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["158","T_EBS"],["117","T_TRACKDRIVE"],["138","T_AUTOX"],["226","T_SKIDPAD"],["82","T_ACCEL"],["16","T___SINGLEUSE_F9I5"],["275","T___SINGLEUSE_JN2J"],["167","T___SINGLEUSE_ZP7N"],["176","T___SINGLEUSE_9L8R"],["16","T___SINGLEUSE_1NKF"],["176","T___SINGLEUSE_J5UH"],["349","T___SINGLEUSE_NGUK"],["176","T___SINGLEUSE_4E84"],["176","T___SINGLEUSE_YTAB"],["106","T___SINGLEUSE_RWCE"],["148","T___SINGLEUSE_HMH2"],["361","T___SINGLEUSE_4OBM"],["342","T___SINGLEUSE_PHFD"],["242","T___SINGLEUSE_H6UX"],["176","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}

View File

@ -1 +1 @@
{"languages":["GB"],"textids":["T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_JN2J","T___SINGLEUSE_ZP7N","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
{"languages":["GB"],"textids":["T_PDU","T_SCS","T_SDC","T_R2D","T_TS","T_INV","T_AMS","T_ERROR_AMS","T_DEBUGVIEWFIELD_TITLE","T_DRIVERVIEWFIELD_TITLE","T_NUMBERSMALLWILDCARD","T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD_CENTERED","T_DEFAULTWILDCARD_RIGHTALIGNED","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_F9I5","T___SINGLEUSE_JN2J","T___SINGLEUSE_ZP7N","T___SINGLEUSE_9L8R","T___SINGLEUSE_1NKF","T___SINGLEUSE_J5UH","T___SINGLEUSE_NGUK","T___SINGLEUSE_4E84","T___SINGLEUSE_YTAB","T___SINGLEUSE_RWCE","T___SINGLEUSE_HMH2","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}

View File

@ -1 +1 @@
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,69,66,83,32,84,101,115,116,0,73,78,86,69,82,84,69,82,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,76,86,83,79,67,0,77,79,84,79,82,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,82,50,68,0,83,68,67,0,76,86,0]}
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,80,65,82,65,77,69,84,69,82,83,0,84,114,97,99,107,100,114,105,118,101,0,65,77,83,32,69,114,114,79,114,0,65,117,116,111,99,114,111,115,115,0,80,82,69,67,72,65,82,71,69,0,69,66,83,32,84,101,115,116,0,73,78,86,69,82,84,69,82,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,66,82,65,75,69,83,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,76,86,83,79,67,0,77,79,84,79,82,0,83,80,69,69,68,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,65,77,83,0,73,78,86,0,73,84,83,0,80,68,85,0,82,50,68,0,83,67,83,0,83,68,67,0,76,86,0]}

View File

@ -1 +1 @@
{"databases":{"GB":[[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5,"getFont_lucon_TTF_33_4bpp":6},"generate_font_format":"0"}
{"databases":{"GB":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]],"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[5,"LEFT","LTR"],[2,"CENTER","LTR"],[6,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[0,"RIGHT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[0,"LEFT","LTR"],[3,"CENTER","LTR"],[1,"RIGHT","LTR"],[1,"LEFT","LTR"],[4,"RIGHT","LTR"],[1,"LEFT","LTR"],[1,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["GB"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4,"getFont_verdanab_20_4bpp":5,"getFont_lucon_TTF_33_4bpp":6},"generate_font_format":"0"}

View File

@ -12,6 +12,13 @@ enum LANGUAGES
enum TEXTS
{
T_PDU,
T_SCS,
T_SDC,
T_R2D,
T_TS,
T_INV,
T_AMS,
T_ERROR_AMS,
T_DEBUGVIEWFIELD_TITLE,
T_DRIVERVIEWFIELD_TITLE,
@ -56,6 +63,7 @@ enum TEXTS
T_AUTOX,
T_SKIDPAD,
T_ACCEL,
T___SINGLEUSE_F9I5,
T___SINGLEUSE_JN2J,
T___SINGLEUSE_ZP7N,
T___SINGLEUSE_9L8R,

View File

@ -10,6 +10,13 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
// Remap all strings
TEXT_LOCATION_FLASH_PRAGMA
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
345, // T_PDU: "PDU"
353, // T_SCS: "SCS"
357, // T_SDC: "SDC"
349, // T_R2D: "R2D"
342, // T_TS: "TS"
337, // T_INV: "INV"
333, // T_AMS: "AMS"
128, // T_ERROR_AMS: "AMS ErrOr"
176, // T_DEBUGVIEWFIELD_TITLE: "<>"
176, // T_DRIVERVIEWFIELD_TITLE: "<>"
@ -27,7 +34,7 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
298, // T_FIELD_LAPCOUNT: "LAPS"
186, // T_FIELD_INICHKSTATE: "ICSTATE"
263, // T_FIELD_ERR: "ERROR"
341, // T_FIELD_SDC: "SDC"
357, // T_FIELD_SDC: "SDC"
202, // T_FIELD_INVRREADY: "INVRRDY"
194, // T_FIELD_INVLREADY: "INVLRDY"
218, // T_FIELD_R2DPROGRESS: "R2DPROG"
@ -37,7 +44,7 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
176, // T_NUMBERWILDCARD: "<>"
176, // T_DEFAULTWILDCARD_CENTERED: "<>"
176, // T_DEFAULTWILDCARD_RIGHTALIGNED: "<>"
333, // T_FIELD_TSCURRENT: "ITS"
341, // T_FIELD_TSCURRENT: "ITS"
328, // T_FIELD_MINCELLVOLT: "VMIN"
281, // T_FIELD_SPEED: "SPEED"
95, // T_INSPECTION_HUGE: "Inspection"
@ -54,18 +61,19 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
138, // T_AUTOX: "Autocross"
226, // T_SKIDPAD: "Skidpad"
82, // T_ACCEL: "Acceleration"
16, // T___SINGLEUSE_F9I5: ""
275, // T___SINGLEUSE_JN2J: "MOTOR"
167, // T___SINGLEUSE_ZP7N: "INVERTER"
176, // T___SINGLEUSE_9L8R: "<>"
16, // T___SINGLEUSE_1NKF: ""
176, // T___SINGLEUSE_J5UH: "<>"
337, // T___SINGLEUSE_NGUK: "R2D"
349, // T___SINGLEUSE_NGUK: "R2D"
176, // T___SINGLEUSE_4E84: "<>"
176, // T___SINGLEUSE_YTAB: "<>"
106, // T___SINGLEUSE_RWCE: "PARAMETERS"
148, // T___SINGLEUSE_HMH2: "PRECHARGE"
345, // T___SINGLEUSE_4OBM: "LV"
334, // T___SINGLEUSE_PHFD: "TS"
361, // T___SINGLEUSE_4OBM: "LV"
342, // T___SINGLEUSE_PHFD: "TS"
242, // T___SINGLEUSE_H6UX: "BRAKES"
176, // T___SINGLEUSE_20H3: "<>"
17, // T___SINGLEUSE_SDGP: "Current Mission:"

View File

@ -99,10 +99,14 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
0x54, 0x54, 0x52, 0x4c, 0x0, // @318 "TTRL"
0x54, 0x54, 0x52, 0x52, 0x0, // @323 "TTRR"
0x56, 0x4d, 0x49, 0x4e, 0x0, // @328 "VMIN"
0x49, 0x54, 0x53, 0x0, // @333 "ITS"
0x52, 0x32, 0x44, 0x0, // @337 "R2D"
0x53, 0x44, 0x43, 0x0, // @341 "SDC"
0x4c, 0x56, 0x0 // @345 "LV"
0x41, 0x4d, 0x53, 0x0, // @333 "AMS"
0x49, 0x4e, 0x56, 0x0, // @337 "INV"
0x49, 0x54, 0x53, 0x0, // @341 "ITS"
0x50, 0x44, 0x55, 0x0, // @345 "PDU"
0x52, 0x32, 0x44, 0x0, // @349 "R2D"
0x53, 0x43, 0x53, 0x0, // @353 "SCS"
0x53, 0x44, 0x43, 0x0, // @357 "SDC"
0x4c, 0x56, 0x0 // @361 "LV"
};
TEXT_LOCATION_FLASH_PRAGMA

View File

@ -28,6 +28,13 @@ extern const touchgfx::TypedText::TypedTextData* const typedTextDatabaseArray[];
TEXT_LOCATION_FLASH_PRAGMA
const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 5, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -74,6 +81,7 @@ const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_F
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },
@ -92,6 +100,13 @@ const touchgfx::TypedText::TypedTextData typedText_database_GB[] TEXT_LOCATION_F
};
TEXT_LOCATION_FLASH_PRAGMA
const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 5, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
@ -138,6 +153,7 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 0, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
{ 3, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
{ 1, touchgfx::RIGHT, touchgfx::TEXT_DIRECTION_LTR },

View File

@ -0,0 +1,37 @@
#ifndef DRIVERVIEWSTATUSITEM_HPP
#define DRIVERVIEWSTATUSITEM_HPP
#include "touchgfx/Color.hpp"
#include "touchgfx/hal/Types.hpp"
#include <gui_generated/containers/DriverViewStatusItemBase.hpp>
enum class DriverViewStatusType { TS_R2D, AMS, SDC, SCS, PDU, INV };
class DriverViewStatusItem : public DriverViewStatusItemBase {
public:
DriverViewStatusItem();
virtual ~DriverViewStatusItem() {}
virtual void initialize();
virtual void setType(DriverViewStatusType type);
void update();
static inline colortype COLOR_OFF =
touchgfx::Color::getColorFromRGB(0x00, 0x00, 0x00);
static inline colortype COLOR_OK =
touchgfx::Color::getColorFromRGB(0x0D, 0xBF, 0x00);
static inline colortype COLOR_WARNING =
touchgfx::Color::getColorFromRGB(0xEB, 0xC4, 0x00);
static inline colortype COLOR_ERROR =
touchgfx::Color::getColorFromRGB(0xC5, 0x0E, 0x1F);
static inline colortype COLOR_TS =
touchgfx::Color::getColorFromRGB(0xEB, 0x7D, 0x00);
protected:
private:
DriverViewStatusType type;
};
#endif // DRIVERVIEWSTATUSITEM_HPP

View File

@ -23,6 +23,7 @@ public:
void setFieldType(size_t i, DataFieldType type);
void updateFieldValues();
void updateStatusItems();
void setTemps(const Temperatures &temps);
void setTSSoC(uint8_t soc);

View File

@ -0,0 +1,63 @@
#include <gui/containers/DriverViewStatusItem.hpp>
#include "texts/TextKeysAndLanguages.hpp"
#include "vehicle.h"
DriverViewStatusItem::DriverViewStatusItem() {}
void DriverViewStatusItem::initialize() {
DriverViewStatusItemBase::initialize();
}
void DriverViewStatusItem::setType(DriverViewStatusType type) {
this->type = type;
}
void DriverViewStatusItem::update() {
switch (type) {
case DriverViewStatusType::TS_R2D:
if (vehicle_state.ts_state == TS_ERROR) {
text.setTypedText(T_TS);
bg.setColor(COLOR_ERROR);
} else if (vehicle_state.ts_state == TS_INACTIVE) {
text.setTypedText(T_TS);
bg.setColor(COLOR_OFF);
} else if (vehicle_state.r2d_progress == R2D_INIT_SUCCESS) {
text.setTypedText(T_R2D);
bg.setColor(COLOR_OK);
} else {
text.setTypedText(T_TS);
bg.setColor(COLOR_TS);
}
break;
case DriverViewStatusType::AMS:
text.setTypedText(T_AMS);
bg.setColor(vehicle_state.ts_state == TS_ERROR ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::SDC:
text.setTypedText(T_SDC);
bg.setColor(vehicle_state.sdc_closed ? COLOR_OK : COLOR_WARNING);
break;
case DriverViewStatusType::SCS:
text.setTypedText(T_SCS);
bg.setColor(vehicle_state.errors.err_scs ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::PDU:
text.setTypedText(T_PDU);
bg.setColor(vehicle_state.errors.err_pdu ? COLOR_ERROR : COLOR_OK);
break;
case DriverViewStatusType::INV:
text.setTypedText(T_INV);
if (vehicle_state.errors.err_invl || vehicle_state.errors.err_invr) {
bg.setColor(COLOR_ERROR);
} else if (vehicle_state.errors.invl_ready &&
vehicle_state.errors.invr_ready) {
bg.setColor(COLOR_OK);
} else {
bg.setColor(COLOR_OFF);
}
break;
}
text.invalidate();
bg.invalidate();
}

View File

@ -22,6 +22,7 @@ void DriverViewPresenter::vehicleStateUpdated() {
updateErrorPopup();
view.updateFieldValues();
view.updateStatusItems();
}
void DriverViewPresenter::nextScreen() {

View File

@ -1,7 +1,10 @@
#include "gui/common/NamedField.hpp"
#include "gui/containers/DriverViewField.hpp"
#include "gui/containers/DriverViewStatusItem.hpp"
#include "gui/driverview_screen/DriverViewPresenter.hpp"
#include "texts/TextKeysAndLanguages.hpp"
#include "touchgfx/Callback.hpp"
#include "touchgfx/Drawable.hpp"
#include "touchgfx/Unicode.hpp"
#include "vehicle.h"
#include <gui/driverview_screen/DriverViewView.hpp>
@ -16,6 +19,12 @@ void DriverViewView::setupScreen() {
for (size_t i = 0; i < NUM_FIELDS; i++) {
getField(i).setType(fieldTypes[i]);
}
statusTS_R2D.setType(DriverViewStatusType::TS_R2D);
statusAMS.setType(DriverViewStatusType::AMS);
statusSDC.setType(DriverViewStatusType::SDC);
statusSCS.setType(DriverViewStatusType::SCS);
statusPDU.setType(DriverViewStatusType::PDU);
statusINV.setType(DriverViewStatusType::INV);
fieldTypeSelection.setNumberOfItems(DataFieldType_COUNT);
// int tireThresholds[4] = {35, 40, 50, 60};
// tireTempFL.setTempThresholds(tireThresholds);
@ -57,6 +66,22 @@ void DriverViewView::updateFieldValues() {
}
}
class StatusItemUpdateCallback
: public touchgfx::GenericCallback<touchgfx::Drawable &> {
virtual void execute(Drawable &item) override {
DriverViewStatusItem &statusItem =
static_cast<DriverViewStatusItem &>(item);
statusItem.update();
}
virtual bool isValid() const override { return true; }
};
void DriverViewView::updateStatusItems() {
StatusItemUpdateCallback cb;
statusItems.forEachChild(&cb);
}
void DriverViewView::setTemps(const Temperatures &temps) {
brakeTempFL.setTemp(roundf(temps.brake_fl));
brakeTempFR.setTemp(roundf(temps.brake_fr));

View File

@ -53,6 +53,8 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\ErrorPopupBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\Temperature.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\TemperatureBase.cpp"/>
<ClCompile Include="..\..\gui\src\containers\DriverViewStatusItem.cpp"/>
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewStatusItemBase.cpp"/>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
@ -235,6 +237,8 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\ErrorPopupBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\Temperature.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TemperatureBase.hpp"/>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewStatusItem.hpp"/>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewStatusItemBase.hpp"/>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>

View File

@ -372,6 +372,12 @@
<ClCompile Include="..\..\generated\gui_generated\src\containers\TemperatureBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\gui\src\containers\DriverViewStatusItem.cpp">
<Filter>Source Files\gui\containers</Filter>
</ClCompile>
<ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewStatusItemBase.cpp">
<Filter>Source Files\generated\gui_generated\containers</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="$(ApplicationRoot)\assets\texts\texts.xml">
@ -910,6 +916,12 @@
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\TemperatureBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\gui\include\gui\containers\DriverViewStatusItem.hpp">
<Filter>Header Files\gui\containers</Filter>
</ClInclude>
<ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewStatusItemBase.hpp">
<Filter>Header Files\generated\gui_generated\containers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">

View File

@ -314,16 +314,6 @@
"Blue": 255
}
},
{
"Type": "CustomContainerInstance",
"Name": "errorPopup",
"X": 15,
"Y": 155,
"Width": 450,
"Height": 150,
"Visible": false,
"CustomContainerDefinitionName": "ErrorPopup"
},
{
"Type": "Container",
"Name": "drivetrainTemps",
@ -577,6 +567,62 @@
"Width": 450,
"Height": 33,
"Components": [
{
"Type": "ListLayout",
"Name": "statusItems",
"Width": 450,
"Height": 33,
"Direction": "East",
"Components": [
{
"Type": "CustomContainerInstance",
"Name": "statusTS_R2D",
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
},
{
"Type": "CustomContainerInstance",
"Name": "statusAMS",
"X": 75,
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
},
{
"Type": "CustomContainerInstance",
"Name": "statusSDC",
"X": 150,
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
},
{
"Type": "CustomContainerInstance",
"Name": "statusSCS",
"X": 225,
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
},
{
"Type": "CustomContainerInstance",
"Name": "statusPDU",
"X": 300,
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
},
{
"Type": "CustomContainerInstance",
"Name": "statusINV",
"X": 375,
"Width": 75,
"Height": 33,
"CustomContainerDefinitionName": "DriverViewStatusItem"
}
]
},
{
"Type": "BoxProgress",
"Name": "progressBar",
@ -644,6 +690,16 @@
"Wildcard1": {}
}
]
},
{
"Type": "CustomContainerInstance",
"Name": "errorPopup",
"X": 15,
"Y": 155,
"Width": 450,
"Height": 150,
"Visible": false,
"CustomContainerDefinitionName": "ErrorPopup"
}
],
"Interactions": [
@ -1325,6 +1381,42 @@
}
],
"Interactions": []
},
{
"Name": "DriverViewStatusItem",
"X": 35,
"Y": 115,
"Width": 75,
"Height": 33,
"Components": [
{
"Type": "BoxWithBorder",
"Name": "bg",
"Width": 75,
"Height": 33,
"BorderColor": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"BorderSize": 1
},
{
"Type": "TextArea",
"Name": "text",
"Y": 4,
"Width": 75,
"Height": 25,
"TextId": "__SingleUse_F9I5",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
}
],
"Interactions": []
}
],
"Name": "SteeringWheel",