UI: Updated text strings on display

- Changed "3DR Solo App" to more generic "Mobile App"
- More useful waring text strings
- CH7 high & low notification strings
This commit is contained in:
Matt 2017-12-16 14:25:47 -05:00 committed by Buzz
parent 655b878263
commit 958f6a0f2b
6 changed files with 43 additions and 18 deletions

View File

@ -474,6 +474,10 @@ void Ui::processAlert(Event::ID id)
case Event::RecordRequiresApp: case Event::RecordRequiresApp:
case Event::ControllerValueOutOfRange: case Event::ControllerValueOutOfRange:
case Event::CamControlValueOutOfRange: case Event::CamControlValueOutOfRange:
case Event::CH7low:
case Event::CH7high:
case Event::CH8low:
case Event::CH8high:
if (BIT(currentState) & (BIT(FullscreenAlert) | BIT(Arming) | BIT(Gimbal) | BIT(Telem))) { if (BIT(currentState) & (BIT(FullscreenAlert) | BIT(Arming) | BIT(Gimbal) | BIT(Telem))) {
initFullscreenAlert(id); initFullscreenAlert(id);
} }
@ -688,13 +692,13 @@ void Ui::drawLockout()
//x = Gfx::write(x, y, "preflight ", HelveticaNeueLTProLightGreen); //x = Gfx::write(x, y, "preflight ", HelveticaNeueLTProLightGreen);
uint16_t color_fg = UiColor::Green; uint16_t color_fg = UiColor::Green;
uint16_t color_bg = UiColor::Black; uint16_t color_bg = UiColor::Black;
x = Gfx::write(x, y, "preflight ", HelveticaNeueLTProLightLargeWhiteOnBlack, &color_fg, &color_bg); x = Gfx::write(x, y, "Open ", HelveticaNeueLTProLightLargeWhiteOnBlack, &color_fg, &color_bg);
Gfx::write(x, y, "update", HelveticaNeueLTProLightLarge); Gfx::write(x, y, "Solo", HelveticaNeueLTProLightLarge);
const Gfx::FontAsset & f = HelveticaNeueLTProRoman; const Gfx::FontAsset & f = HelveticaNeueLTProRoman;
Gfx::writeCanvasCenterJustified(168, "Required before first flight!", f); Gfx::writeCanvasCenterJustified(168, "Solo & Controller Version Mismatch!", f);
Gfx::writeCanvasCenterJustified(168 + f.height() + 2, "Use 3DR Solo App to update", f); Gfx::writeCanvasCenterJustified(168 + f.height() + 2, "Install Latest Updates", f);
} }
Ui::State Ui::determineState() Ui::State Ui::determineState()

View File

@ -12,13 +12,13 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
{ Red, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "altitude", "Please wait", NULL }, { Red, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "altitude", "Please wait", NULL },
// CompassCalRequired // CompassCalRequired
{ Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Compass ", "error", "Please calibrate compass using\nthe 3DR Solo app", NULL }, { Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Compass ", "error", "Please calibrate compass using\nmobile app and reboot solo", NULL },
// CompassInterference // CompassInterference
{ Red, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Magnetic ", "interference", "Move Solo away from metal objects", NULL }, { Red, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Magnetic ", "interference", "Move Solo away from metal objects", NULL },
// LevelError // LevelError
{ Red, MedHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Level ", "error", "Please calibrate level using\nthe 3DR Solo app", NULL }, { Red, MedHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Level ", "error", "Please calibrate level using\nmobile app and reboot solo", NULL },
// CalibrationFailed // CalibrationFailed
{ Red, MedHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Motion ", "detected", "Take off from a steady surface", NULL }, { Red, MedHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Motion ", "detected", "Take off from a steady surface", NULL },
@ -29,7 +29,7 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
/// Pre-flight - Arm /// Pre-flight - Arm
// CantArmWhileLeaning // CantArmWhileLeaning
{ Orange, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Uneven ", "surface", "Solo must be level for takeoff\nMove Solo to a flat surface", NULL }, { Orange, NoHaptic, FullScreenModal, 5000, DismissNone, "Uneven ", "surface", "Solo must be level for takeoff\nMove Solo to a flat surface", NULL },
// VehicleCalibrating // VehicleCalibrating
{ Orange, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "Solo", "Please wait", NULL }, { Orange, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "Solo", "Please wait", NULL },
@ -41,10 +41,10 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
{ Orange, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "level", "Follow app instructions", NULL }, { Orange, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibrating ", "level", "Follow app instructions", NULL },
// CompassCalRecovery // CompassCalRecovery
{ Green, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Calibrated ", "compass", NULL, "Press A to dismiss" }, { Green, NoHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Calibrated ", "compass", NULL, "Press A to dismiss\nthen reboot solo" },
// ThrottleError // ThrottleError
{ Orange, LowHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Lower ", "throttle", "This flight mode requires low\nthrottle before starting motors", NULL }, { Orange, LowHaptic, FullScreenModal, 5000, DismissNone, "Lower ", "throttle", "This flight mode requires low\nthrottle before starting motors", NULL },
// VehicleRequiresService // TODO: duplicate of CalibrationFailed, should just change logic in code // VehicleRequiresService // TODO: duplicate of CalibrationFailed, should just change logic in code
{ Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibration ", "error", "Please restart Solo", NULL }, { Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissNone, "Calibration ", "error", "Please restart Solo", NULL },
@ -68,10 +68,10 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
{ Green, NoHaptic, FullScreenModal, 7000, DismissNone, "Controller ", "inactive", "Powering off", NULL }, { Green, NoHaptic, FullScreenModal, 7000, DismissNone, "Controller ", "inactive", "Powering off", NULL },
// SoloAppConnected // SoloAppConnected
{ Green, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, "3DR Solo app connected", NULL }, { Green, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, "Mobile app connected", NULL },
// SoloAppDisconnected // SoloAppDisconnected
{ Orange, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, "3DR Solo app disconnected", NULL }, { Orange, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, "Mobile app disconnected", NULL },
// ControllerValueOutOfRange // ControllerValueOutOfRange
{ Red, NoHaptic, FullScreenThenHintBox, 5000, DismissNone, "Control stick ", "error", "Contact 3DR Support", NULL }, { Red, NoHaptic, FullScreenThenHintBox, 5000, DismissNone, "Control stick ", "error", "Contact 3DR Support", NULL },
@ -124,7 +124,7 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
{ Red, LowHaptic, FullScreenModal, 5000, DismissNone, "Maximum ", "altitude", "Solo has reached preset\nmaximum altitude", NULL }, { Red, LowHaptic, FullScreenModal, 5000, DismissNone, "Maximum ", "altitude", "Solo has reached preset\nmaximum altitude", NULL },
// CrashDetected // CrashDetected
{ Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Crash ", "detected", "Use 3DR Solo app to\nlog a support ticket", "Press A to dismiss" }, { Red, HighHaptic, FullScreenModal, NO_TIMEOUT, DismissA, "Crash ", "detected", "Hopefully nothing too\nexpensive broke", "Press A to dismiss" },
// LandingComplete // LandingComplete
{ Green, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, NULL, NULL }, { Green, NoHaptic, HintBoxBanner, 5000, DismissNone, NULL, NULL, NULL, NULL },
@ -166,7 +166,11 @@ const UiAlertManager::Alert UiAlertManager::alerts[] = {
// ChargerConnected // ChargerConnected
{ White, NoHaptic, FullScreenModal, 3000, DismissNone, NULL, NULL, NULL, NULL }, { White, NoHaptic, FullScreenModal, 3000, DismissNone, NULL, NULL, NULL, NULL },
// CH-7 & CH-8 RC control
{ Green, LowHaptic, HintBoxBanner, 3000, DismissNone, NULL, NULL, "CH-7 Set Low", NULL },
{ Green, LowHapticMed, HintBoxBanner, 3000, DismissNone, NULL, NULL, "CH-7 Set High", NULL },
{ Green, LowHaptic, HintBoxBanner, 3000, DismissNone, NULL, NULL, "CH-8 Set Low", NULL },
{ Green, LowHapticMed, HintBoxBanner, 3000, DismissNone, NULL, NULL, "CH-8 Set High", NULL },
/// Testing /// Testing
@ -271,6 +275,12 @@ void UiAlertManager::Alert::startHaptic() const
case MedHaptic: case MedHaptic:
Haptic::startPattern(Haptic::LightTriple); Haptic::startPattern(Haptic::LightTriple);
break; break;
case LowHaptic:
Haptic::startPattern(Haptic::SingleShort);
break;
case LowHapticMed:
Haptic::startPattern(Haptic::SingleMedium);
break;
default: default:
break; break;
} }

View File

@ -33,6 +33,7 @@ public:
LowHaptic, LowHaptic,
MedHaptic, MedHaptic,
HighHaptic, HighHaptic,
LowHapticMed,
}; };
enum DismissBtn { enum DismissBtn {

View File

@ -20,16 +20,16 @@ const UiBottomBox::Msg UiBottomBox::msgs[] = {
/// Pre-flight - Artoo /// Pre-flight - Artoo
{ Event::SoloAppConnected, NoUserInput, 5000, "3DR Solo app connected", NULL }, { Event::SoloAppConnected, NoUserInput, 5000, "Mobile app connected", NULL },
{ Event::SoloAppDisconnected, NoUserInput, 5000, "3DR Solo app disconnected", NULL }, { Event::SoloAppDisconnected, NoUserInput, 5000, "Mobile app disconnected", NULL },
// Persistent alerts // Persistent alerts
{ Event::ControllerValueOutOfRange, NoUserInput, 5000, "Control stick error", "Contact 3DR Support"}, { Event::ControllerValueOutOfRange, NoUserInput, 5000, "Control stick error", "Contact 3DR Support"},
{ Event::CamControlValueOutOfRange, NoUserInput, 5000, "Manual camera controls error", "Contact 3DR Support"}, { Event::CamControlValueOutOfRange, NoUserInput, 5000, "Manual camera controls error", "Contact 3DR Support"},
// Unused // Unused
{ Event::RecordRequiresApp, NoUserInput, 5000, "3DR Solo app required for this action", NULL }, { Event::RecordRequiresApp, NoUserInput, 5000, "Mobile app required for this action", NULL },
{ Event::UnknownBattery, NoUserInput, 5000, "Unknown controller battery", "Displayed level may not be accurate" }, { Event::UnknownBattery, NoUserInput, 5000, "Unknown controller battery", "Displayed level may not be accurate" },
@ -72,6 +72,12 @@ const UiBottomBox::Msg UiBottomBox::msgs[] = {
/// Misc /// Misc
{ Event::LandingComplete, NoUserInput, 5000, "Landing complete", NULL }, { Event::LandingComplete, NoUserInput, 5000, "Landing complete", NULL },
// RC Channels
{ Event::CH7low, NoUserInput, 5000, "CH-7 Off/Low", NULL },
{ Event::CH7high, NoUserInput, 5000, "CH-7 On/High", NULL },
{ Event::CH8low, NoUserInput, 5000, "CH-8 Off/Low", NULL },
{ Event::CH8high, NoUserInput, 5000, "CH-8 On/High", NULL },
/// Testing /// Testing
{ Event::TestAlert, NoUserInput, 5000, "RTL not available without GPS", "(Test test)" }, { Event::TestAlert, NoUserInput, 5000, "RTL not available without GPS", "(Test test)" },

View File

@ -82,6 +82,10 @@ enum ID {
ControllerBatteryFailsafe, ControllerBatteryFailsafe,
ControllerBatteryFailsafeNoGps, ControllerBatteryFailsafeNoGps,
ChargerConnected, ChargerConnected,
CH7low,
CH7high,
CH8low,
CH8high,
TestAlert, TestAlert,
AlertEnd, AlertEnd,
}; };

View File

@ -95,7 +95,7 @@ void UiTelemetry::updatePrimaryRegion()
unsigned alt = MIN(999, roundf(a)); unsigned alt = MIN(999, roundf(a));
const Gfx::ImageAsset & unit = useMetricUnits ? Unit_UD_Meter : Unit_UD_Feet; const Gfx::ImageAsset & unit = useMetricUnits ? Unit_UD_Meter : Unit_UD_Feet;
labeledNumericField(alt, 190, 129, 3, "000", unit, altFont); labeledNumericField(alt, 190, 136, 3, "000", unit, altFont);
altitudeDirty = false; altitudeDirty = false;
} }
@ -258,7 +258,7 @@ void UiTelemetry::updateKillSwitchProgress()
void UiTelemetry::drawStaticElements() void UiTelemetry::drawStaticElements()
{ {
Gfx::drawImage(190, 54, Label_UD_Home); Gfx::drawImage(190, 54, Label_UD_Home);
Gfx::drawImage(190, 114, Label_UD_Alt); Gfx::drawImage(190, 120, Label_UD_Alt);
} }
bool UiTelemetry::autoLandActive() const bool UiTelemetry::autoLandActive() const