Compare commits

...

5 Commits

30 changed files with 3381 additions and 444 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 \

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

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

@ -6,6 +6,6 @@
static unsigned short SIM_WIDTH = 320;
static unsigned short SIM_HEIGHT = 480;
#define SIM_TITLE "MyApplication"
#define SIM_TITLE "SteeringWheel"
#endif // SIMCONSTANTS_HPP

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

@ -8,14 +8,17 @@
#include <mvp/View.hpp>
#include <gui/driverview_screen/DriverViewPresenter.hpp>
#include <touchgfx/widgets/Box.hpp>
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/widgets/TextArea.hpp>
#include <touchgfx/containers/Container.hpp>
#include <gui/containers/Temperature.hpp>
#include <touchgfx/widgets/canvas/Line.hpp>
#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
#include <gui/containers/DriverViewField.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>
@ -66,6 +69,13 @@ protected:
* Member Declarations
*/
touchgfx::Box __background;
touchgfx::LineProgress tsSoC;
touchgfx::PainterRGB565 tsSoCPainter;
touchgfx::LineProgress lvSoC;
touchgfx::PainterRGB565 lvSoCPainter;
touchgfx::TextArea tsSoCLabel;
touchgfx::TextArea lvSoCLabel;
touchgfx::Container drivetrainTemps;
touchgfx::TextArea motorTempLabel;
Temperature motorTempL;
Temperature motorTempR;
@ -76,26 +86,30 @@ protected:
Temperature invTempR;
Temperature invTempL;
touchgfx::TextArea invTempLabel;
touchgfx::Line ttDivVert;
touchgfx::PainterRGB565 ttDivVertPainter;
touchgfx::Line ttDivHoriz;
touchgfx::PainterRGB565 ttDivHorizPainter;
Temperature tireTempRR;
Temperature tireTempFR;
Temperature tireTempRL;
Temperature tireTempFL;
touchgfx::LineProgress tsSoC;
touchgfx::PainterRGB565 tsSoCPainter;
touchgfx::LineProgress lvSoC;
touchgfx::PainterRGB565 lvSoCPainter;
touchgfx::TextArea tireLabel;
touchgfx::TextArea tsSoCLabel;
touchgfx::TextArea lvSoCLabel;
DriverViewField field1;
DriverViewField field2;
DriverViewField field3;
touchgfx::Container brakeTemps;
touchgfx::Line btDivVert;
touchgfx::PainterRGB565 btDivVertPainter;
touchgfx::Line btDivHoriz;
touchgfx::PainterRGB565 btDivHorizPainter;
Temperature brakeTempRR;
Temperature brakeTempFR;
Temperature brakeTempRL;
Temperature brakeTempFL;
touchgfx::TextArea brakeLabel;
touchgfx::Container dataFields;
touchgfx::ScrollWheel fieldTypeSelection;
touchgfx::DrawableListItems<DriverViewFieldSelection, 10> fieldTypeSelectionListItems;
DriverViewField field3;
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;

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

@ -4,8 +4,8 @@
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
#include <touchgfx/canvas_widget_renderer/CanvasWidgetRenderer.hpp>
#include <touchgfx/Color.hpp>
#include <texts/TextKeysAndLanguages.hpp>
#include <images/BitmapDatabase.hpp>
#include <texts/TextKeysAndLanguages.hpp>
DriverViewViewBase::DriverViewViewBase() :
updateItemCallback(this, &DriverViewViewBase::updateItemCallbackHandler)
@ -16,79 +16,7 @@ DriverViewViewBase::DriverViewViewBase() :
__background.setColor(touchgfx::Color::getColorFromRGB(0, 0, 0));
add(__background);
motorTempLabel.setPosition(315, 187, 150, 25);
motorTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempLabel.setLinespacing(0);
motorTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_JN2J));
add(motorTempLabel);
motorTempL.setXY(329, 212);
add(motorTempL);
motorTempR.setXY(392, 212);
add(motorTempR);
motorTempDiv.setPosition(389, 212, 3, 60);
motorTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempDiv.setPainter(motorTempDivPainter);
motorTempDiv.setStart(0, 0);
motorTempDiv.setEnd(0, 320);
motorTempDiv.setLineWidth(10);
motorTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(motorTempDiv);
invTempDiv.setPosition(389, 122, 3, 60);
invTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempDiv.setPainter(invTempDivPainter);
invTempDiv.setStart(0, 0);
invTempDiv.setEnd(0, 320);
invTempDiv.setLineWidth(10);
invTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(invTempDiv);
invTempR.setXY(392, 122);
add(invTempR);
invTempL.setXY(329, 122);
add(invTempL);
invTempLabel.setPosition(315, 97, 150, 25);
invTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempLabel.setLinespacing(0);
invTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_ZP7N));
add(invTempLabel);
ttDivVert.setPosition(239, 122, 3, 123);
ttDivVertPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivVert.setPainter(ttDivVertPainter);
ttDivVert.setStart(0, 0);
ttDivVert.setEnd(0, 320);
ttDivVert.setLineWidth(10);
ttDivVert.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivVert);
ttDivHoriz.setPosition(179, 182, 123, 3);
ttDivHorizPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
ttDivHoriz.setPainter(ttDivHorizPainter);
ttDivHoriz.setStart(0, 0);
ttDivHoriz.setEnd(480, 0);
ttDivHoriz.setLineWidth(10);
ttDivHoriz.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
add(ttDivHoriz);
tireTempRR.setXY(242, 185);
add(tireTempRR);
tireTempFR.setXY(242, 122);
add(tireTempFR);
tireTempRL.setXY(179, 185);
add(tireTempRL);
tireTempFL.setXY(179, 122);
add(tireTempFL);
tsSoC.setXY(15, 122);
tsSoC.setXY(15, 155);
tsSoC.setProgressIndicatorPosition(0, 0, 40, 150);
tsSoC.setRange(0, 100);
tsSoC.setBackground(touchgfx::Bitmap(BITMAP_BAT_BAR_BG_ID));
@ -101,7 +29,7 @@ DriverViewViewBase::DriverViewViewBase() :
tsSoC.setValue(60);
add(tsSoC);
lvSoC.setXY(110, 122);
lvSoC.setXY(110, 155);
lvSoC.setProgressIndicatorPosition(0, 0, 40, 150);
lvSoC.setRange(0, 100);
lvSoC.setBackground(touchgfx::Bitmap(BITMAP_BAT_BAR_BG_ID));
@ -114,34 +42,104 @@ DriverViewViewBase::DriverViewViewBase() :
lvSoC.setValue(80);
add(lvSoC);
tireLabel.setPosition(165, 97, 150, 25);
tireLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
tireLabel.setLinespacing(0);
tireLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_H6UX));
add(tireLabel);
tsSoCLabel.setPosition(15, 97, 40, 25);
tsSoCLabel.setPosition(15, 130, 40, 25);
tsSoCLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
tsSoCLabel.setLinespacing(0);
tsSoCLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_PHFD));
add(tsSoCLabel);
lvSoCLabel.setPosition(110, 97, 40, 25);
lvSoCLabel.setPosition(110, 130, 40, 25);
lvSoCLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
lvSoCLabel.setLinespacing(0);
lvSoCLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_4OBM));
add(lvSoCLabel);
field1.setXY(15, 15);
add(field1);
drivetrainTemps.setPosition(315, 130, 150, 175);
motorTempLabel.setPosition(0, 90, 150, 25);
motorTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempLabel.setLinespacing(0);
motorTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_JN2J));
drivetrainTemps.add(motorTempLabel);
field2.setXY(165, 15);
add(field2);
motorTempL.setXY(14, 115);
drivetrainTemps.add(motorTempL);
field3.setXY(315, 15);
add(field3);
motorTempR.setXY(77, 115);
drivetrainTemps.add(motorTempR);
fieldTypeSelection.setPosition(15, 95, 150, 225);
motorTempDiv.setPosition(74, 115, 3, 60);
motorTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
motorTempDiv.setPainter(motorTempDivPainter);
motorTempDiv.setStart(0, 0);
motorTempDiv.setEnd(0, 320);
motorTempDiv.setLineWidth(10);
motorTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
drivetrainTemps.add(motorTempDiv);
invTempDiv.setPosition(74, 25, 3, 60);
invTempDivPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempDiv.setPainter(invTempDivPainter);
invTempDiv.setStart(0, 0);
invTempDiv.setEnd(0, 320);
invTempDiv.setLineWidth(10);
invTempDiv.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
drivetrainTemps.add(invTempDiv);
invTempR.setXY(77, 25);
drivetrainTemps.add(invTempR);
invTempL.setXY(14, 25);
drivetrainTemps.add(invTempL);
invTempLabel.setPosition(0, 0, 150, 25);
invTempLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
invTempLabel.setLinespacing(0);
invTempLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_ZP7N));
drivetrainTemps.add(invTempLabel);
add(drivetrainTemps);
brakeTemps.setPosition(165, 130, 150, 150);
btDivVert.setPosition(74, 25, 3, 123);
btDivVertPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
btDivVert.setPainter(btDivVertPainter);
btDivVert.setStart(0, 0);
btDivVert.setEnd(0, 320);
btDivVert.setLineWidth(10);
btDivVert.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
brakeTemps.add(btDivVert);
btDivHoriz.setPosition(14, 85, 123, 3);
btDivHorizPainter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
btDivHoriz.setPainter(btDivHorizPainter);
btDivHoriz.setStart(0, 0);
btDivHoriz.setEnd(480, 0);
btDivHoriz.setLineWidth(10);
btDivHoriz.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
brakeTemps.add(btDivHoriz);
brakeTempRR.setXY(77, 88);
brakeTemps.add(brakeTempRR);
brakeTempFR.setXY(77, 25);
brakeTemps.add(brakeTempFR);
brakeTempRL.setXY(14, 88);
brakeTemps.add(brakeTempRL);
brakeTempFL.setXY(14, 25);
brakeTemps.add(brakeTempFL);
brakeLabel.setPosition(0, 0, 150, 25);
brakeLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
brakeLabel.setLinespacing(0);
brakeLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_H6UX));
brakeTemps.add(brakeLabel);
add(brakeTemps);
dataFields.setPosition(15, 48, 450, 305);
fieldTypeSelection.setPosition(0, 80, 150, 225);
fieldTypeSelection.setHorizontal(false);
fieldTypeSelection.setCircular(true);
fieldTypeSelection.setEasingEquation(touchgfx::EasingEquations::linearEaseOut);
@ -153,40 +151,75 @@ DriverViewViewBase::DriverViewViewBase() :
fieldTypeSelection.setDrawables(fieldTypeSelectionListItems, updateItemCallback);
fieldTypeSelection.animateToItem(0, 0);
fieldTypeSelection.setVisible(false);
add(fieldTypeSelection);
dataFields.add(fieldTypeSelection);
progressBar.setXY(15, 280);
field3.setXY(300, 0);
dataFields.add(field3);
field2.setXY(150, 0);
dataFields.add(field2);
field1.setXY(0, 0);
dataFields.add(field1);
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);
progressBar.setDirection(touchgfx::AbstractDirectionProgress::RIGHT);
progressBar.setBackground(touchgfx::Bitmap(BITMAP_PRECHARGE_BG_ID));
progressBar.setBackground(touchgfx::Bitmap(BITMAP_PROG_HORIZ_BG_ID));
progressBar.setColor(touchgfx::Color::getColorFromRGB(99, 186, 0));
progressBar.setValue(0);
progressBar.setVisible(false);
add(progressBar);
statusBar.add(progressBar);
prechargeLabel.setXY(105, 275);
prechargeLabel.setXY(90, -2);
prechargeLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
prechargeLabel.setLinespacing(0);
prechargeLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_HMH2));
prechargeLabel.setVisible(false);
add(prechargeLabel);
statusBar.add(prechargeLabel);
r2dLabel.setPosition(82, 275, 317, 37);
r2dLabel.setPosition(67, -2, 317, 37);
r2dLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
r2dLabel.setLinespacing(0);
r2dLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_NGUK));
r2dLabel.setVisible(false);
add(r2dLabel);
statusBar.add(r2dLabel);
r2dProgressLabel.setPosition(180, 275, 219, 37);
r2dProgressLabel.setPosition(165, -2, 219, 37);
r2dProgressLabel.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
r2dProgressLabel.setLinespacing(0);
r2dProgressLabel.setTypedText(touchgfx::TypedText(T___SINGLEUSE_J5UH));
r2dProgressLabel.setVisible(false);
add(r2dProgressLabel);
statusBar.add(r2dProgressLabel);
errorPopup.setXY(15, 122);
add(statusBar);
errorPopup.setXY(15, 155);
errorPopup.setVisible(false);
add(errorPopup);
}
@ -202,18 +235,24 @@ void DriverViewViewBase::setupScreen()
motorTempR.initialize();
invTempR.initialize();
invTempL.initialize();
tireTempRR.initialize();
tireTempFR.initialize();
tireTempRL.initialize();
tireTempFL.initialize();
field1.initialize();
field2.initialize();
field3.initialize();
brakeTempRR.initialize();
brakeTempFR.initialize();
brakeTempRL.initialize();
brakeTempFL.initialize();
fieldTypeSelection.initialize();
for (int i = 0; i < fieldTypeSelectionListItems.getNumberOfDrawables(); i++)
{
fieldTypeSelectionListItems[i].initialize();
}
field3.initialize();
field2.initialize();
field1.initialize();
statusTS_R2D.initialize();
statusAMS.initialize();
statusSDC.initialize();
statusSCS.initialize();
statusPDU.initialize();
statusINV.initialize();
errorPopup.initialize();
}

View File

@ -14,6 +14,7 @@ const uint16_t BITMAP_FASTTUBE_LOGO_WHITE_ID = 4;
const uint16_t BITMAP_LOGO_DV_SMALL_ID = 5;
const uint16_t BITMAP_LOGO_DV_SMALL_WHITE_ID = 6;
const uint16_t BITMAP_PRECHARGE_BG_ID = 7;
const uint16_t BITMAP_PROG_HORIZ_BG_ID = 8;
namespace BitmapDatabase
{

View File

@ -1,4 +1,4 @@
// 4.21.2 0x4415ad56
// 4.21.2 0xf98ee735
// Generated by imageconverter. Please, do not edit!
#include <images/BitmapDatabase.hpp>
@ -12,6 +12,7 @@ extern const unsigned char image_fasttube_logo_white[]; // BITMAP_FASTTUBE_LOGO_
extern const unsigned char image_logo_dv_small[]; // BITMAP_LOGO_DV_SMALL_ID = 5, Size: 160x55 pixels
extern const unsigned char image_logo_dv_small_white[]; // BITMAP_LOGO_DV_SMALL_WHITE_ID = 6, Size: 160x39 pixels
extern const unsigned char image_precharge_bg[]; // BITMAP_PRECHARGE_BG_ID = 7, Size: 450x29 pixels
extern const unsigned char image_prog_horiz_bg[]; // BITMAP_PROG_HORIZ_BG_ID = 8, Size: 450x33 pixels
const touchgfx::Bitmap::BitmapData bitmap_database[] = {
{ image_bat_bar_bg, 0, 40, 150, 0, 0, 40, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 150, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
@ -21,7 +22,8 @@ const touchgfx::Bitmap::BitmapData bitmap_database[] = {
{ image_fasttube_logo_white, 0, 480, 165, 0, 0, 480, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 165, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_logo_dv_small, 0, 160, 55, 62, 42, 37, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 2, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_logo_dv_small_white, 0, 160, 39, 47, 0, 1, ((uint8_t)touchgfx::Bitmap::ARGB8888) >> 3, 17, ((uint8_t)touchgfx::Bitmap::ARGB8888) & 0x7 },
{ image_precharge_bg, 0, 450, 29, 0, 0, 450, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 29, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 }
{ image_precharge_bg, 0, 450, 29, 0, 0, 450, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 29, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 },
{ image_prog_horiz_bg, 0, 450, 33, 0, 0, 450, ((uint8_t)touchgfx::Bitmap::RGB565) >> 3, 33, ((uint8_t)touchgfx::Bitmap::RGB565) & 0x7 }
};
namespace BitmapDatabase

File diff suppressed because it is too large Load Diff

View File

@ -16,7 +16,7 @@ void setupSimulator(int argc, char** argv, touchgfx::HAL& hal)
{
// Simulate hardware running at 60Hz generating a vsync every 16.6667 ms
static_cast<touchgfx::HALSDL2&>(hal).setVsyncInterval(16.6667f);
static_cast<touchgfx::HALSDL2&>(hal).setWindowTitle("MyApplication");
static_cast<touchgfx::HALSDL2&>(hal).setWindowTitle("SteeringWheel");
// Initialize SDL
bool sdl_init_result = static_cast<touchgfx::HALSDL2&>(hal).sdl_init(argc, argv);

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);
@ -23,14 +32,14 @@ void DriverViewView::setupScreen() {
// tireTempRL.setTempThresholds(tireThresholds);
// tireTempRR.setTempThresholds(tireThresholds);
int brakeThresholds[4] = {100, 150, 200, 250};
tireTempFL.setSmallText(true);
tireTempFL.setTempThresholds(brakeThresholds);
tireTempFR.setSmallText(true);
tireTempFR.setTempThresholds(brakeThresholds);
tireTempRL.setSmallText(true);
tireTempRL.setTempThresholds(brakeThresholds);
tireTempRR.setSmallText(true);
tireTempRR.setTempThresholds(brakeThresholds);
brakeTempFL.setSmallText(true);
brakeTempFL.setTempThresholds(brakeThresholds);
brakeTempFR.setSmallText(true);
brakeTempFR.setTempThresholds(brakeThresholds);
brakeTempRL.setSmallText(true);
brakeTempRL.setTempThresholds(brakeThresholds);
brakeTempRR.setSmallText(true);
brakeTempRR.setTempThresholds(brakeThresholds);
int invThresholds[4] = {30, 40, 50, 60};
invTempL.setTempThresholds(invThresholds);
invTempR.setTempThresholds(invThresholds);
@ -57,11 +66,27 @@ 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) {
tireTempFL.setTemp(roundf(temps.brake_fl));
tireTempFR.setTemp(roundf(temps.brake_fr));
tireTempRL.setTemp(roundf(temps.brake_rl));
tireTempRR.setTemp(roundf(temps.brake_rr));
brakeTempFL.setTemp(roundf(temps.brake_fl));
brakeTempFR.setTemp(roundf(temps.brake_fr));
brakeTempRL.setTemp(roundf(temps.brake_rl));
brakeTempRR.setTemp(roundf(temps.brake_rr));
invTempL.setTemp(roundf(temps.inv_l));
invTempR.setTemp(roundf(temps.inv_r));
motorTempL.setTemp(roundf(temps.mot_l));

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

@ -244,177 +244,11 @@
"Name": "DriverView",
"CanvasBufferSize": 7200,
"Components": [
{
"Type": "TextArea",
"Name": "motorTempLabel",
"X": 315,
"Y": 187,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_JN2J",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "CustomContainerInstance",
"Name": "motorTempL",
"X": 329,
"Y": 212,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "motorTempR",
"X": 392,
"Y": 212,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "Line",
"Name": "motorTempDiv",
"X": 389,
"Y": 212,
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "invTempDiv",
"X": 389,
"Y": 122,
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "invTempR",
"X": 392,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "invTempL",
"X": 329,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "TextArea",
"Name": "invTempLabel",
"X": 315,
"Y": 97,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_ZP7N",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "Line",
"Name": "ttDivVert",
"X": 239,
"Y": 122,
"Width": 3,
"Height": 123,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "ttDivHoriz",
"X": 179,
"Y": 182,
"Width": 123,
"Height": 3,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndX": 480.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRR",
"X": 242,
"Y": 185,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFR",
"X": 242,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempRL",
"X": 179,
"Y": 185,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "tireTempFL",
"X": 179,
"Y": 122,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "LineProgress",
"Name": "tsSoC",
"X": 15,
"Y": 122,
"Y": 155,
"Width": 40,
"Height": 150,
"Color": {
@ -434,7 +268,7 @@
"Type": "LineProgress",
"Name": "lvSoC",
"X": 110,
"Y": 122,
"Y": 155,
"Width": 40,
"Height": 150,
"Color": {
@ -450,26 +284,11 @@
"ProgressRangeMax": 100,
"ProgressInitialValue": 80
},
{
"Type": "TextArea",
"Name": "tireLabel",
"X": 165,
"Y": 97,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_H6UX",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "tsSoCLabel",
"X": 15,
"Y": 97,
"Y": 130,
"Width": 40,
"Height": 25,
"TextId": "__SingleUse_PHFD",
@ -484,7 +303,7 @@
"Type": "TextArea",
"Name": "lvSoCLabel",
"X": 110,
"Y": 97,
"Y": 130,
"Width": 40,
"Height": 25,
"TextId": "__SingleUse_4OBM",
@ -496,122 +315,387 @@
}
},
{
"Type": "CustomContainerInstance",
"Name": "field1",
"X": 15,
"Y": 15,
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
},
{
"Type": "CustomContainerInstance",
"Name": "field2",
"X": 165,
"Y": 15,
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
},
{
"Type": "CustomContainerInstance",
"Name": "field3",
"Type": "Container",
"Name": "drivetrainTemps",
"X": 315,
"Y": 15,
"Y": 130,
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
"Height": 175,
"Components": [
{
"Type": "TextArea",
"Name": "motorTempLabel",
"Y": 90,
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_JN2J",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "CustomContainerInstance",
"Name": "motorTempL",
"X": 14,
"Y": 115,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "motorTempR",
"X": 77,
"Y": 115,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "Line",
"Name": "motorTempDiv",
"X": 74,
"Y": 115,
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "invTempDiv",
"X": 74,
"Y": 25,
"Width": 3,
"Height": 60,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "invTempR",
"X": 77,
"Y": 25,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "invTempL",
"X": 14,
"Y": 25,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "TextArea",
"Name": "invTempLabel",
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_ZP7N",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
}
]
},
{
"Type": "ScrollWheel",
"Name": "fieldTypeSelection",
"X": 15,
"Y": 95,
"Type": "Container",
"Name": "brakeTemps",
"X": 165,
"Y": 130,
"Width": 150,
"Height": 225,
"Visible": false,
"SelectedItemOffset": 94,
"IsCircular": true,
"ItemTemplateName": "DriverViewFieldSelection",
"NumberofItems": 1,
"Easing": "Linear",
"EasingOption": "Out",
"SwipeAcceleration": 1.0,
"DragAcceleration": 1.0
"Height": 150,
"Components": [
{
"Type": "Line",
"Name": "btDivVert",
"X": 74,
"Y": 25,
"Width": 3,
"Height": 123,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndY": 320.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "Line",
"Name": "btDivHoriz",
"X": 14,
"Y": 85,
"Width": 123,
"Height": 3,
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"EndX": 480.0,
"LineWidth": 10.0,
"LineEndingStyle": "Round"
},
{
"Type": "CustomContainerInstance",
"Name": "brakeTempRR",
"X": 77,
"Y": 88,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "brakeTempFR",
"X": 77,
"Y": 25,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "brakeTempRL",
"X": 14,
"Y": 88,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "CustomContainerInstance",
"Name": "brakeTempFL",
"X": 14,
"Y": 25,
"Width": 60,
"Height": 60,
"CustomContainerDefinitionName": "Temperature"
},
{
"Type": "TextArea",
"Name": "brakeLabel",
"Width": 150,
"Height": 25,
"TextId": "__SingleUse_H6UX",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
}
]
},
{
"Type": "BoxProgress",
"Name": "progressBar",
"Type": "Container",
"Name": "dataFields",
"X": 15,
"Y": 280,
"Y": 48,
"Width": 450,
"Height": 29,
"Visible": false,
"Color": {
"Red": 99,
"Green": 186
},
"Direction": "Right",
"FileNameBackground": "precharge_bg.png",
"IndicatorPositionWidth": 480,
"IndicatorPositionHeight": 55,
"ProgressRangeMax": 100
"Height": 305,
"Components": [
{
"Type": "ScrollWheel",
"Name": "fieldTypeSelection",
"Y": 80,
"Width": 150,
"Height": 225,
"Visible": false,
"SelectedItemOffset": 94,
"IsCircular": true,
"ItemTemplateName": "DriverViewFieldSelection",
"NumberofItems": 1,
"Easing": "Linear",
"EasingOption": "Out",
"SwipeAcceleration": 1.0,
"DragAcceleration": 1.0
},
{
"Type": "CustomContainerInstance",
"Name": "field3",
"X": 300,
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
},
{
"Type": "CustomContainerInstance",
"Name": "field2",
"X": 150,
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
},
{
"Type": "CustomContainerInstance",
"Name": "field1",
"Width": 150,
"Height": 80,
"CustomContainerDefinitionName": "DriverViewField"
}
]
},
{
"Type": "TextArea",
"Name": "prechargeLabel",
"X": 105,
"Y": 275,
"Width": 269,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_HMH2",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "r2dLabel",
"X": 82,
"Y": 275,
"Width": 317,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_NGUK",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "r2dProgressLabel",
"X": 180,
"Y": 275,
"Width": 219,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_J5UH",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
"Type": "Container",
"Name": "statusBar",
"X": 15,
"Y": 15,
"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",
"Width": 450,
"Height": 33,
"Visible": false,
"Color": {
"Red": 99,
"Green": 186
},
"Direction": "Right",
"FileNameBackground": "prog_horiz_bg.png",
"IndicatorPositionWidth": 480,
"IndicatorPositionHeight": 55,
"ProgressRangeMax": 100
},
{
"Type": "TextArea",
"Name": "prechargeLabel",
"X": 90,
"Y": -2,
"Width": 269,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_HMH2",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"AutoSize": true
},
{
"Type": "TextArea",
"Name": "r2dLabel",
"X": 67,
"Y": -2,
"Width": 317,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_NGUK",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
}
},
{
"Type": "TextArea",
"Name": "r2dProgressLabel",
"X": 165,
"Y": -2,
"Width": 219,
"Height": 37,
"Visible": false,
"TextId": "__SingleUse_J5UH",
"TextRotation": "0",
"Color": {
"Red": 255,
"Green": 255,
"Blue": 255
},
"Wildcard1": {}
}
]
},
{
"Type": "CustomContainerInstance",
"Name": "errorPopup",
"X": 15,
"Y": 122,
"Y": 155,
"Width": 450,
"Height": 150,
"Visible": false,
@ -1297,9 +1381,45 @@
}
],
"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": "MyApplication",
"Name": "SteeringWheel",
"Resolution": {
"Width": 320,
"Height": 480