Intelligent modes: Point of Interest (orbit on the map, live radius and speed), Follow Me (follows the phone), QuickShots on a boxed subject, Course Lock / Home Lock, Tripod and Cinematic, a Free hyperlapse, and Waypoints 2.0 for V2-only aircraft. ActiveTrack gains Spotlight Pro and Circle. Every mode has a first-use tutorial and stops from the rail. Waypoints can resume an interrupted mission, change cruise speed in flight and check terrain clearance (Open-Meteo, on tap). Settings: units, C1/C2 actions, dual-operator master/slave, HDMI/SDI output, a link spectrum chart, Wi-Fi name and password, aircraft name, video cache, battery warning history and pairing, non-smart cell voltages. Calibration: compass interference meter, per-IMU calibration, lens infinity focus and a first-manual-focus prompt. Also an RTK chip, gimbal movement presets and motor tuning, Precision Takeoff gated on the flight controller, and the precise GEO database's server version. Built and unit/widget-tested only; nothing has flown yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
36 lines
1.0 KiB
Dart
36 lines
1.0 KiB
Dart
/// What a remote's custom button (C1 / C2) does (GO 4's RC → Button
|
|
/// Customization, plan P6).
|
|
///
|
|
/// On the consumer remotes MSDK V4 only reports that C1 / C2 was pressed
|
|
/// (`RemoteControllerKey.CUSTOM_BUTTON_1/2`): the action is the app's, as it is
|
|
/// in GO 4. The flight screen performs it; nothing is written to the remote.
|
|
enum RcButtonAction {
|
|
none('Not set'),
|
|
gimbalRecenter('Recenter gimbal'),
|
|
gimbalToggleDown('Gimbal forward / down'),
|
|
mapSwap('Map / camera view'),
|
|
cameraSettings('Camera settings'),
|
|
aircraftStatus('Aircraft status'),
|
|
aeLock('AE lock on / off'),
|
|
radar('Radar chart on / off');
|
|
|
|
const RcButtonAction(this.label);
|
|
final String label;
|
|
}
|
|
|
|
/// A press of one of the remote's custom buttons.
|
|
enum RcButton {
|
|
c1('C1'),
|
|
c2('C2');
|
|
|
|
const RcButton(this.label);
|
|
final String label;
|
|
|
|
/// The `rcButton` event's `button` value.
|
|
static RcButton? fromEvent(Object? v) => switch (v) {
|
|
'C1' => RcButton.c1,
|
|
'C2' => RcButton.c2,
|
|
_ => null,
|
|
};
|
|
}
|