update for new CAN dbc (incomplete), add more NamedFields, allow mission select without confirmation, set default mission select state to manual
This commit is contained in:
@ -10,9 +10,7 @@
|
||||
#include "touchgfx/widgets/TextAreaWithWildcard.hpp"
|
||||
#include "vehicle_state.h"
|
||||
|
||||
AMIDataField::AMIDataField(touchgfx::TextAreaWithOneWildcard &textArea,
|
||||
const char *fmt)
|
||||
: fmt(fmt), textArea(textArea) {}
|
||||
AMIDataField::AMIDataField(touchgfx::TextAreaWithOneWildcard &textArea, const char *fmt) : fmt(fmt), textArea(textArea) {}
|
||||
|
||||
void AMIDataField::setValue(float value) {
|
||||
Unicode::snprintfFloat(buffer, sizeof(buffer) / sizeof(*buffer), fmt, value);
|
||||
@ -21,12 +19,9 @@ void AMIDataField::setValue(float value) {
|
||||
}
|
||||
|
||||
AMIView::AMIView()
|
||||
: AMIViewBase(), paField(pressA, "%5.1f"), pbField(pressB, "%5.1f"),
|
||||
pfField(pressFront, "%5.1f"), prField(pressRear, "%5.1f"),
|
||||
desiredAngleField(desiredAngle, "%5.2f"),
|
||||
measuredAngleField(measuredAngle, "%5.2f"),
|
||||
desiredSpeedField(desiredSpeed, "%5.1f"),
|
||||
measuredSpeedField(measuredSpeed, "%5.1f") {}
|
||||
: AMIViewBase(), paField(press1, "%5.1f"), pbField(press1, "%5.1f"), pfField(pressFront, "%5.1f"),
|
||||
prField(pressRear, "%5.1f"), desiredAngleField(desiredAngle, "%5.2f"), measuredAngleField(measuredAngle, "%5.2f"),
|
||||
desiredSpeedField(desiredSpeed, "%5.1f"), measuredSpeedField(measuredSpeed, "%5.1f") {}
|
||||
|
||||
void AMIView::setupScreen() { AMIViewBase::setupScreen(); }
|
||||
|
||||
@ -34,29 +29,29 @@ void AMIView::tearDownScreen() { AMIViewBase::tearDownScreen(); }
|
||||
|
||||
void AMIView::setMission(Mission mission) {
|
||||
switch (mission) {
|
||||
case MISSION_ACCEL:
|
||||
currentMission.setTypedText(TypedText(T_ACCEL_HUGE));
|
||||
break;
|
||||
case MISSION_SKIDPAD:
|
||||
currentMission.setTypedText(TypedText(T_SKIDPAD_HUGE));
|
||||
break;
|
||||
case MISSION_AUTOX:
|
||||
currentMission.setTypedText(TypedText(T_AUTOX_HUGE));
|
||||
break;
|
||||
case MISSION_TRACKDRIVE:
|
||||
currentMission.setTypedText(TypedText(T_TRACKDRIVE_HUGE));
|
||||
break;
|
||||
case MISSION_EBS:
|
||||
currentMission.setTypedText(TypedText(T_EBS_HUGE));
|
||||
break;
|
||||
case MISSION_INSPECTION:
|
||||
currentMission.setTypedText(TypedText(T_INSPECTION_HUGE));
|
||||
break;
|
||||
case MISSION_MANUAL:
|
||||
case MISSION_NONE:
|
||||
default:
|
||||
currentMission.setTypedText(TypedText(T_INVALID_HUGE));
|
||||
break;
|
||||
case MISSION_ACCEL:
|
||||
currentMission.setTypedText(TypedText(T_ACCEL_HUGE));
|
||||
break;
|
||||
case MISSION_SKIDPAD:
|
||||
currentMission.setTypedText(TypedText(T_SKIDPAD_HUGE));
|
||||
break;
|
||||
case MISSION_AUTOX:
|
||||
currentMission.setTypedText(TypedText(T_AUTOX_HUGE));
|
||||
break;
|
||||
case MISSION_TRACKDRIVE:
|
||||
currentMission.setTypedText(TypedText(T_TRACKDRIVE_HUGE));
|
||||
break;
|
||||
case MISSION_BRAKETEST:
|
||||
currentMission.setTypedText(TypedText(T_EBS_HUGE));
|
||||
break;
|
||||
case MISSION_INSPECTION:
|
||||
currentMission.setTypedText(TypedText(T_INSPECTION_HUGE));
|
||||
break;
|
||||
case MISSION_MANUAL:
|
||||
case MISSION_NONE:
|
||||
default:
|
||||
currentMission.setTypedText(TypedText(T_INVALID_HUGE));
|
||||
break;
|
||||
}
|
||||
currentMission.invalidate();
|
||||
}
|
||||
@ -73,7 +68,7 @@ void AMIView::setASState(ASState state) {
|
||||
driving.invalidate();
|
||||
}
|
||||
|
||||
void AMIView::setIniChkState(IniChkState state) {
|
||||
void AMIView::setIniChkState(InitialCheckupState state) {
|
||||
if (state == INICHK_ERROR) {
|
||||
progressBar.setColor(DriverViewStatusItem::COLOR_ERROR);
|
||||
progressBar.setValue(100);
|
||||
@ -83,36 +78,35 @@ void AMIView::setIniChkState(IniChkState state) {
|
||||
progressBar.setValue(100);
|
||||
} else {
|
||||
progressBar.setColor(DriverViewStatusItem::COLOR_OK);
|
||||
float prog = ((float)vehicle_state.ini_chk_state) / INICHK_DONE;
|
||||
float prog = ((float)vehicle_state.initial_checkup_state) / INICHK_DONE;
|
||||
progressBar.setValue(prog * 100);
|
||||
}
|
||||
}
|
||||
progressBar.invalidate();
|
||||
|
||||
const char *label = inichkstate_str(state);
|
||||
touchgfx::Unicode::strncpy(progressBuffer, label,
|
||||
sizeof(progressBuffer) / sizeof(*progressBuffer));
|
||||
touchgfx::Unicode::strncpy(progressBuffer, label, sizeof(progressBuffer) / sizeof(*progressBuffer));
|
||||
progressLabel.setWildcard(progressBuffer);
|
||||
progressLabel.invalidate();
|
||||
}
|
||||
|
||||
void AMIView::updateDataFields() {
|
||||
paField.setValue(vehicle_state.hyd_press_a);
|
||||
pbField.setValue(vehicle_state.hyd_press_b);
|
||||
pfField.setValue(vehicle_state.brake_press_f);
|
||||
prField.setValue(vehicle_state.brake_press_r);
|
||||
paField.setValue(vehicle_state.tank_pressure_1);
|
||||
pbField.setValue(vehicle_state.tank_pressure_2);
|
||||
pfField.setValue(vehicle_state.brake_pressure_f);
|
||||
prField.setValue(vehicle_state.brake_pressure_r);
|
||||
|
||||
desiredAngleField.setValue(vehicle_state.desired_angle);
|
||||
measuredAngleField.setValue(vehicle_state.measured_angle);
|
||||
desiredSpeedField.setValue(vehicle_state.desired_speed);
|
||||
measuredSpeedField.setValue(vehicle_state.speed);
|
||||
// TODO
|
||||
// desiredAngleField.setValue(vehicle_state.desired_angle);
|
||||
// measuredAngleField.setValue(vehicle_state.measured_angle);
|
||||
// desiredSpeedField.setValue(vehicle_state.desired_speed);
|
||||
// measuredSpeedField.setValue(vehicle_state.speed);
|
||||
}
|
||||
|
||||
void AMIView::setJetsonTimeout(bool timeout) {
|
||||
if (timeout) {
|
||||
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
|
||||
touchgfx::Unicode::fromUTF8((const uint8_t *)"TIMEOUT", asOKBuffer,
|
||||
sizeof(asOKBuffer) / sizeof(*asOKBuffer));
|
||||
touchgfx::Unicode::fromUTF8((const uint8_t *)"TIMEOUT", asOKBuffer, sizeof(asOKBuffer) / sizeof(*asOKBuffer));
|
||||
asOK.setWildcard(asOKBuffer);
|
||||
} else {
|
||||
desiredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
|
||||
@ -126,16 +120,3 @@ void AMIView::setEPSCTimeout(bool timeout) {
|
||||
measuredAngle.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0xFF, 0xFF));
|
||||
}
|
||||
}
|
||||
|
||||
void AMIView::setConePositions(ConePosition *cone_positions, size_t count) {
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
cones[i].setX(cone_positions[i].x);
|
||||
cones[i].setY(cone_positions[i].y);
|
||||
cones[i].setVisible(true);
|
||||
cones[i].invalidate();
|
||||
}
|
||||
for (size_t i = count; i < NUM_CONES; i++) {
|
||||
cones[i].setVisible(false);
|
||||
cones[i].invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user