mavlink-mappings
Version:
MavLink message definitions
925 lines • 67.5 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.COMMANDS = exports.REGISTRY = exports.RequestOperatorControlCommand = exports.ExternalAttitudeEstimateCommand = exports.ExternalWindEstimateCommand = exports.OdidSetEmergencyCommand = exports.CameraStopMtiCommand = exports.CameraStartMtiCommand = exports.DoSetGlobalOriginCommand = exports.DoSetSysCmpIdCommand = exports.ActuatorGroupTestCommand = exports.DoUpgradeCommand = exports.NavArcWaypointCommand = exports.EscEeprom = exports.ControlStatus = exports.TargetRelative = exports.TargetAbsolute = exports.GnssIntegrity = exports.RadioRcChannels = exports.GroupEnd = exports.GroupStart = exports.BatteryStatusV2 = exports.EscFirmware = exports.ActuatorTestGroup = exports.GpsRaimState = exports.GpsSpoofingState = exports.GpsJammingState = exports.GpsAuthenticationState = exports.GpsSystemErrorFlags = exports.RadioRcChannelsFlags = exports.TargetObsFrame = exports.TargetAbsoluteSensorCapabilityFlags = exports.GcsControlStatusFlags = exports.MavCmd = exports.MavBatteryStatusFlags = void 0;
const mavlink_1 = require("./mavlink");
const common_1 = require("./common");
/**
* Battery status flags for fault, health and state indication.
*/
var MavBatteryStatusFlags;
(function (MavBatteryStatusFlags) {
/**
* The battery is not ready to use (fly). Set if the battery has faults or other conditions that make
* it unsafe to fly with. Note: It will be the logical OR of other status bits (chosen by the
* manufacturer/integrator).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_NOT_READY_TO_USE"] = 1] = "BATTERY_STATUS_FLAGS_NOT_READY_TO_USE";
/**
* Battery is charging.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_CHARGING"] = 2] = "BATTERY_STATUS_FLAGS_CHARGING";
/**
* Battery is cell balancing (during charging). Not ready to use
* (MAV_BATTERY_STATUS_FLAGS_NOT_READY_TO_USE may be set).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_CELL_BALANCING"] = 4] = "BATTERY_STATUS_FLAGS_CELL_BALANCING";
/**
* Battery cells are not balanced. Not ready to use.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_CELL_IMBALANCE"] = 8] = "BATTERY_STATUS_FLAGS_FAULT_CELL_IMBALANCE";
/**
* Battery is auto discharging (towards storage level). Not ready to use
* (MAV_BATTERY_STATUS_FLAGS_NOT_READY_TO_USE would be set).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_AUTO_DISCHARGING"] = 16] = "BATTERY_STATUS_FLAGS_AUTO_DISCHARGING";
/**
* Battery requires service (not safe to fly). This is set at vendor discretion. It is likely to be set
* for most faults, and may also be set according to a maintenance schedule (such as age, or number of
* recharge cycles, etc.).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_REQUIRES_SERVICE"] = 32] = "BATTERY_STATUS_FLAGS_REQUIRES_SERVICE";
/**
* Battery is faulty and cannot be repaired (not safe to fly). This is set at vendor discretion. The
* battery should be disposed of safely.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_BAD_BATTERY"] = 64] = "BATTERY_STATUS_FLAGS_BAD_BATTERY";
/**
* Automatic battery protection monitoring is enabled. When enabled, the system will monitor for
* certain kinds of faults, such as cells being over-voltage. If a fault is triggered then and
* protections are enabled then a safety fault (MAV_BATTERY_STATUS_FLAGS_FAULT_PROTECTION_SYSTEM) will
* be set and power from the battery will be stopped. Note that battery protection monitoring should
* only be enabled when the vehicle is landed. Once the vehicle is armed, or starts moving, the
* protections should be disabled to prevent false positives from disabling the output.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_PROTECTIONS_ENABLED"] = 128] = "BATTERY_STATUS_FLAGS_PROTECTIONS_ENABLED";
/**
* The battery fault protection system had detected a fault and cut all power from the battery. This
* will only trigger if MAV_BATTERY_STATUS_FLAGS_PROTECTIONS_ENABLED is set. Other faults like
* MAV_BATTERY_STATUS_FLAGS_FAULT_OVER_VOLT may also be set, indicating the cause of the protection
* fault.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_PROTECTION_SYSTEM"] = 256] = "BATTERY_STATUS_FLAGS_FAULT_PROTECTION_SYSTEM";
/**
* One or more cells are above their maximum voltage rating.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_OVER_VOLT"] = 512] = "BATTERY_STATUS_FLAGS_FAULT_OVER_VOLT";
/**
* One or more cells are below their minimum voltage rating. A battery that had deep-discharged might
* be irrepairably damaged, and set both MAV_BATTERY_STATUS_FLAGS_FAULT_UNDER_VOLT and
* MAV_BATTERY_STATUS_FLAGS_BAD_BATTERY.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_UNDER_VOLT"] = 1024] = "BATTERY_STATUS_FLAGS_FAULT_UNDER_VOLT";
/**
* Over-temperature fault.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_OVER_TEMPERATURE"] = 2048] = "BATTERY_STATUS_FLAGS_FAULT_OVER_TEMPERATURE";
/**
* Under-temperature fault.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_UNDER_TEMPERATURE"] = 4096] = "BATTERY_STATUS_FLAGS_FAULT_UNDER_TEMPERATURE";
/**
* Circular fence area centered on home. The vehicle must stay inside this area. If home is moved, the
* fence moves.
* @param1 Radius[m] Radius.
* @param2 Inclusion Group (min: 0, increment: 1) Vehicle must be inside ALL inclusion zones in a single group, vehicle must be inside at least one group. Ignored when sent as a command.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["CMD_NAV_FENCE_HOME_CIRCLE_INCLUSION"] = 5005] = "CMD_NAV_FENCE_HOME_CIRCLE_INCLUSION";
/**
* Over-current fault.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_OVER_CURRENT"] = 8192] = "BATTERY_STATUS_FLAGS_FAULT_OVER_CURRENT";
/**
* Short circuit event detected. The battery may or may not be safe to use (check other flags).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_SHORT_CIRCUIT"] = 16384] = "BATTERY_STATUS_FLAGS_FAULT_SHORT_CIRCUIT";
/**
* Voltage not compatible with power rail voltage (batteries on same power rail should have similar
* voltage).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_VOLTAGE"] = 32768] = "BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_VOLTAGE";
/**
* Battery firmware is not compatible with current autopilot firmware.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_FIRMWARE"] = 65536] = "BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_FIRMWARE";
/**
* Battery is not compatible due to cell configuration (e.g. 5s1p when vehicle requires 6s).
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION"] = 131072] = "BATTERY_STATUS_FLAGS_FAULT_INCOMPATIBLE_CELLS_CONFIGURATION";
/**
* Battery capacity_consumed and capacity_remaining values are relative to a full battery (they sum to
* the total capacity of the battery). This flag would be set for a smart battery that can accurately
* determine its remaining charge across vehicle reboots and discharge/recharge cycles. If unset the
* capacity_consumed indicates the consumption since vehicle power-on, as measured using a power
* monitor. The capacity_remaining, if provided, indicates the estimated remaining capacity on the
* assumption that the battery was full on vehicle boot. If unset a GCS is recommended to advise that
* users fully charge the battery on power on.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL"] = 262144] = "BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL";
/**
* Reserved (not used). If set, this will indicate that an additional status field exists for higher
* status values.
*/
MavBatteryStatusFlags[MavBatteryStatusFlags["BATTERY_STATUS_FLAGS_EXTENDED"] = 2147483648] = "BATTERY_STATUS_FLAGS_EXTENDED";
})(MavBatteryStatusFlags = exports.MavBatteryStatusFlags || (exports.MavBatteryStatusFlags = {}));
/**
* Commands to be executed by the MAV. They can be executed on user request, or as part of a mission
* script. If the action is used in a mission, the parameter mapping to the waypoint/mission message is
* as follows: Param 1, Param 2, Param 3, Param 4, X: Param 5, Y:Param 6, Z:Param 7. This command list
* is similar what ARINC 424 is for commercial aircraft: A data format how to interpret
* waypoint/mission data. NaN and INT32_MAX may be used in float/integer params (respectively) to
* indicate optional/default values (e.g. to use the component's current yaw or latitude rather than a
* specific value). See https://mavlink.io/en/guide/xml_schema.html#MAV_CMD for information about the
* structure of the MAV_CMD entries
*/
var MavCmd;
(function (MavCmd) {
/**
* Circular arc path waypoint. This defines the end/exit point and angle (param1) of an arc path from
* the previous waypoint. A position is required before this command to define the start of the arc
* (e.g. current position, a MAV_CMD_NAV_WAYPOINT, or a MAV_CMD_NAV_ARC_WAYPOINT). The resulting path
* is a circular arc in the NE frame, with the difference in height being defined by the difference in
* waypoint altitudes.
*
* @note has location and is destination
*
* @param1 Arc Angle[deg] (min: -359, max: 359, increment: 1) The angle in degrees from the starting position to the exit position of the arc in the NE frame. Positive values are CW arcs and negative values are CCW arcs.
* @param5 Latitude Latitude
* @param6 Longitude Longitude
* @param7 Altitude[m] Altitude
*/
MavCmd[MavCmd["NAV_ARC_WAYPOINT"] = 36] = "NAV_ARC_WAYPOINT";
/**
* Request a target system to start an upgrade of one (or all) of its components. For example, the
* command might be sent to a companion computer to cause it to upgrade a connected flight controller.
* The system doing the upgrade will report progress using the normal command protocol sequence for a
* long running operation. Command protocol information: https://mavlink.io/en/services/command.html.
* @param1 Component ID Component id of the component to be upgraded. If set to 0, all components should be upgraded.
* @param2 Reboot (min: 0, max: 1, increment: 1) 0: Do not reboot component after the action is executed, 1: Reboot component after the action is executed.
* @param3 Reserved
* @param4 Reserved
* @param5 Reserved
* @param6 Reserved
* @param7 WIP: upgrade progress report rate (can be used for more granular control).
*/
MavCmd[MavCmd["DO_UPGRADE"] = 247] = "DO_UPGRADE";
/**
* Command to test groups of related actuators together. This might include groups such as the
* actuators that contribute to roll, pitch, or yaw torque, actuators that contribute to thrust in x,
* y, z axis, tilt mechanisms, flaps and spoilers, and so on. This is similar to MAV_CMD_ACTUATOR_TEST,
* except that multiple actuators may be affected. Different groups may also affect the same actuators
* (as in the case of controls that affect torque in different axes). Autopilots must NACK this command
* with MAV_RESULT_TEMPORARILY_REJECTED while armed.
* @param1 Group Actuator group to check, such as actuators related to roll torque.
* @param2 Value (min: -1, max: 1) Value to set. This is a normalized value across the full range of the tested group [-1,1].
*/
MavCmd[MavCmd["ACTUATOR_GROUP_TEST"] = 309] = "ACTUATOR_GROUP_TEST";
/**
* Set system and component id. This allows moving of a system and all its components to a new system
* id, or moving a particular component to a new system/component id. Recipients must reject command
* addressed to broadcast system ID.
* @param1 System ID (min: 1, max: 255, increment: 1) New system ID for target component(s). 0: ignore and reject command (broadcast system ID not allowed).
* @param2 Component ID (min: 0, max: 255, increment: 1) New component ID for target component(s). 0: ignore (component IDs don't change).
* @param3 Reboot Reboot components after ID change. Any non-zero value triggers the reboot.
*/
MavCmd[MavCmd["DO_SET_SYS_CMP_ID"] = 610] = "DO_SET_SYS_CMP_ID";
/**
* Sets the GNSS coordinates of the vehicle local origin (0,0,0) position. Vehicle should emit
* GPS_GLOBAL_ORIGIN irrespective of whether the origin is changed. This enables transform between the
* local coordinate frame and the global (GNSS) coordinate frame, which may be necessary when (for
* example) indoor and outdoor settings are connected and the MAV should move from in- to outdoor. This
* command supersedes SET_GPS_GLOBAL_ORIGIN. Should be sent in a COMMAND_INT (Expected frame is
* MAV_FRAME_GLOBAL, and this should be assumed when sent in COMMAND_LONG).
*
* @note has location
*
* @param1 Empty
* @param2 Empty
* @param3 Empty
* @param4 Empty
* @param5 Latitude Latitude
* @param6 Longitude Longitude
* @param7 Altitude[m] Altitude
*/
MavCmd[MavCmd["DO_SET_GLOBAL_ORIGIN"] = 611] = "DO_SET_GLOBAL_ORIGIN";
/**
* Enable Moving Target Indicators (MTI) on streamed video. Support for feature can be checked with
* CAMERA_CAP_FLAGS_HAS_MTI, and disabled with MAV_CMD_CAMERA_STOP_MTI.
* @param1 Target Camera ID (min: 0, max: 255, increment: 1) Target camera ID. 7 to 255: MAVLink camera component id. 1 to 6 for cameras attached to the autopilot, which don't have a distinct component id. 0: all cameras. This is used to target specific autopilot-connected cameras. It is also used to target specific cameras when the MAV_CMD is used in a mission.
*/
MavCmd[MavCmd["CAMERA_START_MTI"] = 2020] = "CAMERA_START_MTI";
/**
* Disable Moving Target Indicators (MTI) on streamed video.
* @param1 Target Camera ID (min: 0, max: 255, increment: 1) Target camera ID. 7 to 255: MAVLink camera component id. 1 to 6 for cameras attached to the autopilot, which don't have a distinct component id. 0: all cameras. This is used to target specific autopilot-connected cameras. It is also used to target specific cameras when the MAV_CMD is used in a mission.
*/
MavCmd[MavCmd["CAMERA_STOP_MTI"] = 2021] = "CAMERA_STOP_MTI";
/**
* Used to manually set/unset emergency status for remote id. This is for compliance with MOC ASTM
* docs, specifically F358 section 7.7: "Emergency Status Indicator". The requirement can also be
* satisfied by automatic setting of the emergency status by flight stack, and that approach is
* preferred. See https://mavlink.io/en/services/opendroneid.html for more information.
* @param1 Number (min: 0, increment: 1) Set/unset emergency 0: unset, 1: set
* @param4 Empty
* @param5 Empty
* @param5 Empty
* @param6 Empty
* @param7 Empty
*/
MavCmd[MavCmd["ODID_SET_EMERGENCY"] = 12900] = "ODID_SET_EMERGENCY";
/**
* Set an external estimate of wind direction and speed. This might be used to provide an initial wind
* estimate to the estimator (EKF) in the case where the vehicle is wind dead-reckoning, extending the
* time when operating without GPS before before position drift builds to an unsafe level. For this use
* case the command might reasonably be sent every few minutes when operating at altitude, and the
* value is cleared if the estimator resets itself.
* @param1 Wind speed[m/s] (min: 0) Horizontal wind speed.
* @param2 Wind speed accuracy[m/s] Estimated 1 sigma accuracy of wind speed. Set to NaN if unknown.
* @param3 Direction[deg] (min: 0, max: 360) Azimuth (relative to true north) from where the wind is blowing.
* @param4 Direction accuracy[deg] Estimated 1 sigma accuracy of wind direction. Set to NaN if unknown.
* @param5 Empty
* @param6 Empty
* @param7 Empty
*/
MavCmd[MavCmd["EXTERNAL_WIND_ESTIMATE"] = 43004] = "EXTERNAL_WIND_ESTIMATE";
/**
* Set an external estimate of vehicle attitude. This might be used to provide an initial attitude
* (especially heading) estimate to the estimator (EKF). Angles are defined in a 3-2-1 (yaw-pitch-roll)
* intrinsic Tait-Bryan sequence.
* @param1 Roll[deg] (min: 0, max: 360) Roll angle. Set to NaN if unknown.
* @param2 Pitch[deg] (min: 0, max: 360) Pitch angle. Set to NaN if unknown.
* @param3 Yaw[deg] (min: 0, max: 360) Yaw/heading (relative to true north) angle. Set to NaN if unknown.
* @param4 Tilt accuracy[deg] Estimated 1 sigma accuracy of roll and pitch angles. Set to NaN if unknown.
* @param5 Empty
* @param6 Empty
* @param7 Yaw accuracy[deg] Estimated 1 sigma accuracy of yaw angle. Set to NaN if unknown.
*/
MavCmd[MavCmd["EXTERNAL_ATTITUDE_ESTIMATE"] = 620] = "EXTERNAL_ATTITUDE_ESTIMATE";
/**
* Request GCS control of a system (or of a specific component in a system). A controlled system should
* only accept MAVLink commands and command-like messages that are sent by its controlling GCS, or from
* other components with the same system id. Commands from other systems should be rejected with
* MAV_RESULT_FAILED (except for this command, which may be acknowledged with MAV_RESULT_ACCEPTED if
* control is granted). Command-like messages should be ignored (or rejected if that is supported by
* their associated protocol). GCS control of the whole system is managed via a single component that
* we will refer to here as the "system manager component". This component streams the CONTROL_STATUS
* message and sets the GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER flag. Other components in the system
* should monitor for the CONTROL_STATUS message with this flag, and set their controlling GCS to match
* its published system id. A GCS that wants to control the system should also monitor for the same
* message and flag, and address the MAV_CMD_REQUEST_OPERATOR_CONTROL to its component id. Note that
* integrators are required to ensure that there is only one system manager component in the system
* (i.e. one component emitting the message with GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER set). The
* MAV_CMD_REQUEST_OPERATOR_CONTROL command is sent by a GCS to the system manager component to request
* or release control of a system, specifying whether subsequent takeover requests from another GCS are
* automatically granted, or require permission. The system manager component should grant control to
* the GCS if the system does not require takeover permission (or is uncontrolled) and ACK the request
* with MAV_RESULT_ACCEPTED. The system manager component should then stream CONTROL_STATUS indicating
* its controlling system: all other components with the same system id should monitor this message and
* set their own controlling GCS to match that of the system manager component. If the system manager
* component cannot grant control (because takeover requires permission), the request should be
* rejected with MAV_RESULT_FAILED. The system manager component should then send this same command to
* the current owning GCS in order to notify of the request. The owning GCS would ACK with
* MAV_RESULT_ACCEPTED, and might choose to release control of the vehicle, or re-request control with
* the takeover bit set to allow permission. In case it choses to re-request control with takeover bit
* set to allow permission, requester GCS will only have 10 seconds to get control, otherwise owning
* GCS will re-request control with takeover bit set to disallow permission, and requester GCS will
* need repeat the request if still interested in getting control. Note that the pilots of both GCS
* should coordinate safe handover offline. Note that in most systems the only controlled component
* will be the "system manager component", and that will be the autopilot. However separate GCS control
* of a particular component is also permitted, if supported by the component. In this case the GCS
* will address MAV_CMD_REQUEST_OPERATOR_CONTROL to the specific component it wants to control. The
* component will then stream CONTROL_STATUS for its controlling GCS (it must not set
* GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER). The component should fall back to the system GCS (if any)
* when it is not directly controlled, and may stop emitting CONTROL_STATUS. The flow is otherwise the
* same as for requesting control over the whole system.
* @param1 Sysid requesting control System ID of GCS requesting control. 0 when command sent from GCS to autopilot (autopilot determines requesting GCS sysid from message header). Sysid of GCS requesting control when command sent by autopilot to controlling GCS.
* @param2 Action 0: Release control, 1: Request control.
* @param3 Allow takeover Enable automatic granting of ownership on request (by default reject request and notify current owner). 0: Ask current owner and reject request, 1: Allow automatic takeover.
* @param4 Request timeout[s] (min: 3, max: 60) Timeout in seconds before a request to a GCS to allow takeover is assumed to be rejected. This is used to display the timeout graphically on requester and GCS in control.
* @param5 Empty
* @param6 Empty
* @param7 Empty
*/
MavCmd[MavCmd["REQUEST_OPERATOR_CONTROL"] = 32100] = "REQUEST_OPERATOR_CONTROL";
})(MavCmd = exports.MavCmd || (exports.MavCmd = {}));
/**
* CONTROL_STATUS flags.
*/
var GcsControlStatusFlags;
(function (GcsControlStatusFlags) {
/**
* If set, this CONTROL_STATUS publishes the controlling GCS for the whole system. If unset, the
* CONTROL_STATUS indicates the controlling GCS for just the component emitting the message. Note that
* to request control of the system a GCS should send MAV_CMD_REQUEST_OPERATOR_CONTROL to the component
* emitting CONTROL_STATUS with this flag set.
*/
GcsControlStatusFlags[GcsControlStatusFlags["SYSTEM_MANAGER"] = 1] = "SYSTEM_MANAGER";
/**
* Takeover allowed (requests for control will be granted). If not set requests for control will be
* rejected, but the controlling GCS will be notified (and may release control or allow takeover).
*/
GcsControlStatusFlags[GcsControlStatusFlags["TAKEOVER_ALLOWED"] = 2] = "TAKEOVER_ALLOWED";
})(GcsControlStatusFlags = exports.GcsControlStatusFlags || (exports.GcsControlStatusFlags = {}));
/**
* These flags indicate the sensor reporting capabilities for TARGET_ABSOLUTE.
*/
var TargetAbsoluteSensorCapabilityFlags;
(function (TargetAbsoluteSensorCapabilityFlags) {
TargetAbsoluteSensorCapabilityFlags[TargetAbsoluteSensorCapabilityFlags["POSITION"] = 1] = "POSITION";
TargetAbsoluteSensorCapabilityFlags[TargetAbsoluteSensorCapabilityFlags["VELOCITY"] = 2] = "VELOCITY";
TargetAbsoluteSensorCapabilityFlags[TargetAbsoluteSensorCapabilityFlags["ACCELERATION"] = 4] = "ACCELERATION";
TargetAbsoluteSensorCapabilityFlags[TargetAbsoluteSensorCapabilityFlags["ATTITUDE"] = 8] = "ATTITUDE";
TargetAbsoluteSensorCapabilityFlags[TargetAbsoluteSensorCapabilityFlags["RATES"] = 16] = "RATES";
})(TargetAbsoluteSensorCapabilityFlags = exports.TargetAbsoluteSensorCapabilityFlags || (exports.TargetAbsoluteSensorCapabilityFlags = {}));
/**
* The frame of a target observation from an onboard sensor.
*/
var TargetObsFrame;
(function (TargetObsFrame) {
/**
* NED local tangent frame (x: North, y: East, z: Down) with origin fixed relative to earth.
*/
TargetObsFrame[TargetObsFrame["LOCAL_NED"] = 0] = "LOCAL_NED";
/**
* FRD local frame aligned to the vehicle's attitude (x: Forward, y: Right, z: Down) with an origin
* that travels with vehicle.
*/
TargetObsFrame[TargetObsFrame["BODY_FRD"] = 1] = "BODY_FRD";
/**
* NED local tangent frame (x: North, y: East, z: Down) with an origin that travels with vehicle.
*/
TargetObsFrame[TargetObsFrame["LOCAL_OFFSET_NED"] = 2] = "LOCAL_OFFSET_NED";
/**
* Other sensor frame for target observations neither in local NED nor in body FRD.
*/
TargetObsFrame[TargetObsFrame["OTHER"] = 3] = "OTHER";
})(TargetObsFrame = exports.TargetObsFrame || (exports.TargetObsFrame = {}));
/**
* RADIO_RC_CHANNELS flags (bitmask).
*/
var RadioRcChannelsFlags;
(function (RadioRcChannelsFlags) {
/**
* Failsafe is active. The content of the RC channels data in the RADIO_RC_CHANNELS message is
* implementation dependent.
*/
RadioRcChannelsFlags[RadioRcChannelsFlags["FAILSAFE"] = 1] = "FAILSAFE";
/**
* Channel data may be out of date. This is set when the receiver is unable to validate incoming data
* from the transmitter and has therefore resent the last valid data it received.
*/
RadioRcChannelsFlags[RadioRcChannelsFlags["OUTDATED"] = 2] = "OUTDATED";
})(RadioRcChannelsFlags = exports.RadioRcChannelsFlags || (exports.RadioRcChannelsFlags = {}));
/**
* Flags indicating errors in a GPS receiver.
*/
var GpsSystemErrorFlags;
(function (GpsSystemErrorFlags) {
/**
* There are problems with incoming correction streams.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["INCOMING_CORRECTIONS"] = 1] = "INCOMING_CORRECTIONS";
/**
* There are problems with the configuration.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["CONFIGURATION"] = 2] = "CONFIGURATION";
/**
* There are problems with the software on the GPS receiver.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["SOFTWARE"] = 4] = "SOFTWARE";
/**
* There are problems with an antenna connected to the GPS receiver.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["ANTENNA"] = 8] = "ANTENNA";
/**
* There are problems handling all incoming events.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["EVENT_CONGESTION"] = 16] = "EVENT_CONGESTION";
/**
* The GPS receiver CPU is overloaded.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["CPU_OVERLOAD"] = 32] = "CPU_OVERLOAD";
/**
* The GPS receiver is experiencing output congestion.
*/
GpsSystemErrorFlags[GpsSystemErrorFlags["OUTPUT_CONGESTION"] = 64] = "OUTPUT_CONGESTION";
})(GpsSystemErrorFlags = exports.GpsSystemErrorFlags || (exports.GpsSystemErrorFlags = {}));
/**
* Signal authentication state in a GPS receiver.
*/
var GpsAuthenticationState;
(function (GpsAuthenticationState) {
/**
* The GPS receiver does not provide GPS signal authentication info.
*/
GpsAuthenticationState[GpsAuthenticationState["UNKNOWN"] = 0] = "UNKNOWN";
/**
* The GPS receiver is initializing signal authentication.
*/
GpsAuthenticationState[GpsAuthenticationState["INITIALIZING"] = 1] = "INITIALIZING";
/**
* The GPS receiver encountered an error while initializing signal authentication.
*/
GpsAuthenticationState[GpsAuthenticationState["ERROR"] = 2] = "ERROR";
/**
* The GPS receiver has correctly authenticated all signals.
*/
GpsAuthenticationState[GpsAuthenticationState["OK"] = 3] = "OK";
/**
* GPS signal authentication is disabled on the receiver.
*/
GpsAuthenticationState[GpsAuthenticationState["DISABLED"] = 4] = "DISABLED";
})(GpsAuthenticationState = exports.GpsAuthenticationState || (exports.GpsAuthenticationState = {}));
/**
* Signal jamming state in a GPS receiver.
*/
var GpsJammingState;
(function (GpsJammingState) {
/**
* The GPS receiver does not provide GPS signal jamming info.
*/
GpsJammingState[GpsJammingState["UNKNOWN"] = 0] = "UNKNOWN";
/**
* The GPS receiver detected no signal jamming.
*/
GpsJammingState[GpsJammingState["NOT_JAMMED"] = 1] = "NOT_JAMMED";
/**
* The GPS receiver detected and mitigated signal jamming.
*/
GpsJammingState[GpsJammingState["MITIGATED"] = 2] = "MITIGATED";
/**
* The GPS receiver detected signal jamming.
*/
GpsJammingState[GpsJammingState["DETECTED"] = 3] = "DETECTED";
})(GpsJammingState = exports.GpsJammingState || (exports.GpsJammingState = {}));
/**
* Signal spoofing state in a GPS receiver.
*/
var GpsSpoofingState;
(function (GpsSpoofingState) {
/**
* The GPS receiver does not provide GPS signal spoofing info.
*/
GpsSpoofingState[GpsSpoofingState["UNKNOWN"] = 0] = "UNKNOWN";
/**
* The GPS receiver detected no signal spoofing.
*/
GpsSpoofingState[GpsSpoofingState["NOT_SPOOFED"] = 1] = "NOT_SPOOFED";
/**
* The GPS receiver detected and mitigated signal spoofing.
*/
GpsSpoofingState[GpsSpoofingState["MITIGATED"] = 2] = "MITIGATED";
/**
* The GPS receiver detected signal spoofing but still has a fix.
*/
GpsSpoofingState[GpsSpoofingState["DETECTED"] = 3] = "DETECTED";
})(GpsSpoofingState = exports.GpsSpoofingState || (exports.GpsSpoofingState = {}));
/**
* State of RAIM processing.
*/
var GpsRaimState;
(function (GpsRaimState) {
/**
* RAIM capability is unknown.
*/
GpsRaimState[GpsRaimState["UNKNOWN"] = 0] = "UNKNOWN";
/**
* RAIM is disabled.
*/
GpsRaimState[GpsRaimState["DISABLED"] = 1] = "DISABLED";
/**
* RAIM integrity check was successful.
*/
GpsRaimState[GpsRaimState["OK"] = 2] = "OK";
/**
* RAIM integrity check failed.
*/
GpsRaimState[GpsRaimState["FAILED"] = 3] = "FAILED";
})(GpsRaimState = exports.GpsRaimState || (exports.GpsRaimState = {}));
/**
* Actuator groups to test in MAV_CMD_ACTUATOR_GROUP_TEST.
*/
var ActuatorTestGroup;
(function (ActuatorTestGroup) {
/**
* Actuators that contribute to roll torque.
*/
ActuatorTestGroup[ActuatorTestGroup["ROLL_TORQUE"] = 0] = "ROLL_TORQUE";
/**
* Actuators that contribute to pitch torque.
*/
ActuatorTestGroup[ActuatorTestGroup["PITCH_TORQUE"] = 1] = "PITCH_TORQUE";
/**
* Actuators that contribute to yaw torque.
*/
ActuatorTestGroup[ActuatorTestGroup["YAW_TORQUE"] = 2] = "YAW_TORQUE";
/**
* Actuators that affect collective tilt.
*/
ActuatorTestGroup[ActuatorTestGroup["COLLECTIVE_TILT"] = 3] = "COLLECTIVE_TILT";
})(ActuatorTestGroup = exports.ActuatorTestGroup || (exports.ActuatorTestGroup = {}));
/**
* ESC firmware type identifier.
*/
var EscFirmware;
(function (EscFirmware) {
/**
* Unknown firmware.
*/
EscFirmware[EscFirmware["UNKNOWN"] = 0] = "UNKNOWN";
/**
* AM32 open source ESC firmware.
*/
EscFirmware[EscFirmware["AM32"] = 1] = "AM32";
/**
* Bluejay open source ESC firmware.
*/
EscFirmware[EscFirmware["BLUEJAY"] = 2] = "BLUEJAY";
/**
* BLHeli32 ESC firmware.
*/
EscFirmware[EscFirmware["BLHELI32"] = 3] = "BLHELI32";
})(EscFirmware = exports.EscFirmware || (exports.EscFirmware = {}));
/**
* Battery dynamic information. This should be streamed (nominally at 1Hz). Static/invariant battery
* information is sent in BATTERY_INFO. Note that smart batteries should set the
* MAV_BATTERY_STATUS_FLAGS_CAPACITY_RELATIVE_TO_FULL bit to indicate that supplied capacity values are
* relative to a battery that is known to be full. Power monitors would not set this bit, indicating
* that capacity_consumed is relative to drone power-on, and that other values are estimated based on
* the assumption that the battery was full on power-on.
*/
class BatteryStatusV2 extends mavlink_1.MavLinkData {
constructor() {
super();
this.id = 0;
this.temperature = 0;
this.voltage = 0;
this.current = 0;
this.capacityConsumed = 0;
this.capacityRemaining = 0;
this.percentRemaining = 0;
this.statusFlags = MavBatteryStatusFlags[Object.keys(MavBatteryStatusFlags)[0]];
}
}
exports.BatteryStatusV2 = BatteryStatusV2;
BatteryStatusV2.MSG_ID = 369;
BatteryStatusV2.MSG_NAME = 'BATTERY_STATUS_V2';
BatteryStatusV2.PAYLOAD_LENGTH = 24;
BatteryStatusV2.MAGIC_NUMBER = 151;
BatteryStatusV2.FIELDS = [
new mavlink_1.MavLinkPacketField('voltage', 'voltage', 0, false, 4, 'float', 'V'),
new mavlink_1.MavLinkPacketField('current', 'current', 4, false, 4, 'float', 'A'),
new mavlink_1.MavLinkPacketField('capacity_consumed', 'capacityConsumed', 8, false, 4, 'float', 'Ah'),
new mavlink_1.MavLinkPacketField('capacity_remaining', 'capacityRemaining', 12, false, 4, 'float', 'Ah'),
new mavlink_1.MavLinkPacketField('status_flags', 'statusFlags', 16, false, 4, 'uint32_t', ''),
new mavlink_1.MavLinkPacketField('temperature', 'temperature', 20, false, 2, 'int16_t', 'cdegC'),
new mavlink_1.MavLinkPacketField('id', 'id', 22, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('percent_remaining', 'percentRemaining', 23, false, 1, 'uint8_t', '%'),
];
/**
* Emitted during mission execution when control reaches MAV_CMD_GROUP_START.
*/
class GroupStart extends mavlink_1.MavLinkData {
constructor() {
super();
this.groupId = 0;
this.missionChecksum = 0;
this.timeUsec = BigInt(0);
}
}
exports.GroupStart = GroupStart;
GroupStart.MSG_ID = 414;
GroupStart.MSG_NAME = 'GROUP_START';
GroupStart.PAYLOAD_LENGTH = 16;
GroupStart.MAGIC_NUMBER = 109;
GroupStart.FIELDS = [
new mavlink_1.MavLinkPacketField('time_usec', 'timeUsec', 0, false, 8, 'uint64_t', 'us'),
new mavlink_1.MavLinkPacketField('group_id', 'groupId', 8, false, 4, 'uint32_t', ''),
new mavlink_1.MavLinkPacketField('mission_checksum', 'missionChecksum', 12, false, 4, 'uint32_t', ''),
];
/**
* Emitted during mission execution when control reaches MAV_CMD_GROUP_END.
*/
class GroupEnd extends mavlink_1.MavLinkData {
constructor() {
super();
this.groupId = 0;
this.missionChecksum = 0;
this.timeUsec = BigInt(0);
}
}
exports.GroupEnd = GroupEnd;
GroupEnd.MSG_ID = 415;
GroupEnd.MSG_NAME = 'GROUP_END';
GroupEnd.PAYLOAD_LENGTH = 16;
GroupEnd.MAGIC_NUMBER = 161;
GroupEnd.FIELDS = [
new mavlink_1.MavLinkPacketField('time_usec', 'timeUsec', 0, false, 8, 'uint64_t', 'us'),
new mavlink_1.MavLinkPacketField('group_id', 'groupId', 8, false, 4, 'uint32_t', ''),
new mavlink_1.MavLinkPacketField('mission_checksum', 'missionChecksum', 12, false, 4, 'uint32_t', ''),
];
/**
* RC channel outputs from a MAVLink RC receiver for input to a flight controller or other components
* (allows an RC receiver to connect via MAVLink instead of some other protocol such as PPM-Sum or
* S.BUS). Note that this is not intended to be an over-the-air format, and does not replace
* RC_CHANNELS and similar messages reported by the flight controller. The target_system field should
* normally be set to the system id of the system to control, typically the flight controller. The
* target_component field can normally be set to 0, so that all components of the system can receive
* the message. The channels array field can publish up to 32 channels; the number of channel items
* used in the array is specified in the count field. The time_last_update_ms field contains the
* timestamp of the last received valid channels data in the receiver's time domain. The count field
* indicates the first index of the channel array that is not used for channel data (this and later
* indexes are zero-filled). The RADIO_RC_CHANNELS_FLAGS_OUTDATED flag is set by the receiver if the
* channels data is not up-to-date (for example, if new data from the transmitter could not be
* validated so the last valid data is resent). The RADIO_RC_CHANNELS_FLAGS_FAILSAFE failsafe flag is
* set by the receiver if the receiver's failsafe condition is met (implementation dependent, e.g.,
* connection to the RC radio is lost). In this case time_last_update_ms still contains the timestamp
* of the last valid channels data, but the content of the channels data is not defined by the protocol
* (it is up to the implementation of the receiver). For instance, the channels data could contain
* failsafe values configured in the receiver; the default is to carry the last valid data. Note: The
* RC channels fields are extensions to ensure that they are located at the end of the serialized
* payload and subject to MAVLink's trailing-zero trimming.
*/
class RadioRcChannels extends mavlink_1.MavLinkData {
constructor() {
super();
this.targetSystem = 0;
this.targetComponent = 0;
this.timeLastUpdateMs = 0;
this.flags = RadioRcChannelsFlags[Object.keys(RadioRcChannelsFlags)[0]];
this.count = 0;
this.channels = [];
}
}
exports.RadioRcChannels = RadioRcChannels;
RadioRcChannels.MSG_ID = 420;
RadioRcChannels.MSG_NAME = 'RADIO_RC_CHANNELS';
RadioRcChannels.PAYLOAD_LENGTH = 73;
RadioRcChannels.MAGIC_NUMBER = 20;
RadioRcChannels.FIELDS = [
new mavlink_1.MavLinkPacketField('time_last_update_ms', 'timeLastUpdateMs', 0, false, 4, 'uint32_t', 'ms'),
new mavlink_1.MavLinkPacketField('flags', 'flags', 4, false, 2, 'uint16_t', ''),
new mavlink_1.MavLinkPacketField('target_system', 'targetSystem', 6, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('target_component', 'targetComponent', 7, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('count', 'count', 8, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('channels', 'channels', 9, true, 2, 'int16_t[]', '', 32),
];
/**
* Information about key components of GNSS receivers, like signal authentication, interference and
* system errors.
*/
class GnssIntegrity extends mavlink_1.MavLinkData {
constructor() {
super();
this.id = 0;
this.systemErrors = GpsSystemErrorFlags[Object.keys(GpsSystemErrorFlags)[0]];
this.authenticationState = GpsAuthenticationState[Object.keys(GpsAuthenticationState)[0]];
this.jammingState = GpsJammingState[Object.keys(GpsJammingState)[0]];
this.spoofingState = GpsSpoofingState[Object.keys(GpsSpoofingState)[0]];
this.raimState = GpsRaimState[Object.keys(GpsRaimState)[0]];
this.raimHfom = 0;
this.raimVfom = 0;
this.correctionsQuality = 0;
this.systemStatusSummary = 0;
this.gnssSignalQuality = 0;
this.postProcessingQuality = 0;
}
}
exports.GnssIntegrity = GnssIntegrity;
GnssIntegrity.MSG_ID = 441;
GnssIntegrity.MSG_NAME = 'GNSS_INTEGRITY';
GnssIntegrity.PAYLOAD_LENGTH = 17;
GnssIntegrity.MAGIC_NUMBER = 169;
GnssIntegrity.FIELDS = [
new mavlink_1.MavLinkPacketField('system_errors', 'systemErrors', 0, false, 4, 'uint32_t', ''),
new mavlink_1.MavLinkPacketField('raim_hfom', 'raimHfom', 4, false, 2, 'uint16_t', 'cm'),
new mavlink_1.MavLinkPacketField('raim_vfom', 'raimVfom', 6, false, 2, 'uint16_t', 'cm'),
new mavlink_1.MavLinkPacketField('id', 'id', 8, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('authentication_state', 'authenticationState', 9, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('jamming_state', 'jammingState', 10, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('spoofing_state', 'spoofingState', 11, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('raim_state', 'raimState', 12, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('corrections_quality', 'correctionsQuality', 13, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('system_status_summary', 'systemStatusSummary', 14, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('gnss_signal_quality', 'gnssSignalQuality', 15, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('post_processing_quality', 'postProcessingQuality', 16, false, 1, 'uint8_t', ''),
];
/**
* Current motion information from sensors on a target
*/
class TargetAbsolute extends mavlink_1.MavLinkData {
constructor() {
super();
this.timestamp = BigInt(0);
this.id = 0;
this.sensorCapabilities = TargetAbsoluteSensorCapabilityFlags[Object.keys(TargetAbsoluteSensorCapabilityFlags)[0]];
this.lat = 0;
this.lon = 0;
this.alt = 0;
this.vel = [];
this.acc = [];
this.qTarget = [];
this.rates = [];
this.positionStd = [];
this.velStd = [];
this.accStd = [];
}
}
exports.TargetAbsolute = TargetAbsolute;
TargetAbsolute.MSG_ID = 510;
TargetAbsolute.MSG_NAME = 'TARGET_ABSOLUTE';
TargetAbsolute.PAYLOAD_LENGTH = 106;
TargetAbsolute.MAGIC_NUMBER = 245;
TargetAbsolute.FIELDS = [
new mavlink_1.MavLinkPacketField('timestamp', 'timestamp', 0, false, 8, 'uint64_t', 'us'),
new mavlink_1.MavLinkPacketField('lat', 'lat', 8, false, 4, 'int32_t', 'degE7'),
new mavlink_1.MavLinkPacketField('lon', 'lon', 12, false, 4, 'int32_t', 'degE7'),
new mavlink_1.MavLinkPacketField('alt', 'alt', 16, false, 4, 'float', 'm'),
new mavlink_1.MavLinkPacketField('vel', 'vel', 20, false, 4, 'float[]', 'm/s', 3),
new mavlink_1.MavLinkPacketField('acc', 'acc', 32, false, 4, 'float[]', 'm/s/s', 3),
new mavlink_1.MavLinkPacketField('q_target', 'qTarget', 44, false, 4, 'float[]', '', 4),
new mavlink_1.MavLinkPacketField('rates', 'rates', 60, false, 4, 'float[]', 'rad/s', 3),
new mavlink_1.MavLinkPacketField('position_std', 'positionStd', 72, false, 4, 'float[]', 'm', 2),
new mavlink_1.MavLinkPacketField('vel_std', 'velStd', 80, false, 4, 'float[]', 'm/s', 3),
new mavlink_1.MavLinkPacketField('acc_std', 'accStd', 92, false, 4, 'float[]', 'm/s/s', 3),
new mavlink_1.MavLinkPacketField('id', 'id', 104, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('sensor_capabilities', 'sensorCapabilities', 105, false, 1, 'uint8_t', ''),
];
/**
* The location of a target measured by MAV's onboard sensors.
*/
class TargetRelative extends mavlink_1.MavLinkData {
constructor() {
super();
this.timestamp = BigInt(0);
this.id = 0;
this.frame = TargetObsFrame[Object.keys(TargetObsFrame)[0]];
this.x = 0;
this.y = 0;
this.z = 0;
this.posStd = [];
this.yawStd = 0;
this.qTarget = [];
this.qSensor = [];
this.type = common_1.LandingTargetType[Object.keys(common_1.LandingTargetType)[0]];
}
}
exports.TargetRelative = TargetRelative;
TargetRelative.MSG_ID = 511;
TargetRelative.MSG_NAME = 'TARGET_RELATIVE';
TargetRelative.PAYLOAD_LENGTH = 71;
TargetRelative.MAGIC_NUMBER = 28;
TargetRelative.FIELDS = [
new mavlink_1.MavLinkPacketField('timestamp', 'timestamp', 0, false, 8, 'uint64_t', 'us'),
new mavlink_1.MavLinkPacketField('x', 'x', 8, false, 4, 'float', 'm'),
new mavlink_1.MavLinkPacketField('y', 'y', 12, false, 4, 'float', 'm'),
new mavlink_1.MavLinkPacketField('z', 'z', 16, false, 4, 'float', 'm'),
new mavlink_1.MavLinkPacketField('pos_std', 'posStd', 20, false, 4, 'float[]', 'm', 3),
new mavlink_1.MavLinkPacketField('yaw_std', 'yawStd', 32, false, 4, 'float', 'rad'),
new mavlink_1.MavLinkPacketField('q_target', 'qTarget', 36, false, 4, 'float[]', '', 4),
new mavlink_1.MavLinkPacketField('q_sensor', 'qSensor', 52, false, 4, 'float[]', '', 4),
new mavlink_1.MavLinkPacketField('id', 'id', 68, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('frame', 'frame', 69, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('type', 'type', 70, false, 1, 'uint8_t', ''),
];
/**
* Information about GCS in control of this MAV. This should be broadcast at low rate (nominally 1 Hz)
* and emitted when ownership or takeover status change. Control over MAV is requested using
* MAV_CMD_REQUEST_OPERATOR_CONTROL.
*/
class ControlStatus extends mavlink_1.MavLinkData {
constructor() {
super();
this.sysidInControl = 0;
this.flags = GcsControlStatusFlags[Object.keys(GcsControlStatusFlags)[0]];
}
}
exports.ControlStatus = ControlStatus;
ControlStatus.MSG_ID = 512;
ControlStatus.MSG_NAME = 'CONTROL_STATUS';
ControlStatus.PAYLOAD_LENGTH = 2;
ControlStatus.MAGIC_NUMBER = 184;
ControlStatus.FIELDS = [
new mavlink_1.MavLinkPacketField('sysid_in_control', 'sysidInControl', 0, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('flags', 'flags', 1, false, 1, 'uint8_t', ''),
];
/**
* ESC EEPROM data message for reading and writing ESC configuration. Supports multiple ESC firmware
* types including AM32, Bluejay, and BLHeli32. ESC data is read by sending the MAV_CMD_REQUEST_MESSAGE
* with `param1=292` and `param2=esc_index`, where esc_index is the zero-indexed ESC number for the
* corresponding motor, and 255 is used to request data for all ESC. The message can be sent to set the
* ESC value. For write requests, a bitmask allows selective writing of specific bytes to avoid
* corrupting unchanged values. The data format is opaque to the autopilot. A GCS is required to
* understand the format in order to create an appropriate UI for display and setting configuration
* values, and to inform users when the ESC uses an unsupported data format. Note that for AM32 EEPROMs
* the data layout is defined in: https://github.com/am32-firmware/AM32/blob/main/Inc/eeprom.h (the
* second byte in the structure is the eeprom_version). The firmware field indicates which ESC firmware
* is in use, allowing the GCS to interpret the data correctly.
*/
class EscEeprom extends mavlink_1.MavLinkData {
constructor() {
super();
this.targetSystem = 0;
this.targetComponent = 0;
this.firmware = EscFirmware[Object.keys(EscFirmware)[0]];
this.msgIndex = 0;
this.msgCount = 0;
this.escIndex = 0;
this.writeMask = [];
this.length = 0;
this.data = [];
}
}
exports.EscEeprom = EscEeprom;
EscEeprom.MSG_ID = 292;
EscEeprom.MSG_NAME = 'ESC_EEPROM';
EscEeprom.PAYLOAD_LENGTH = 223;
EscEeprom.MAGIC_NUMBER = 227;
EscEeprom.FIELDS = [
new mavlink_1.MavLinkPacketField('write_mask', 'writeMask', 0, false, 4, 'uint32_t[]', '', 6),
new mavlink_1.MavLinkPacketField('target_system', 'targetSystem', 24, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('target_component', 'targetComponent', 25, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('firmware', 'firmware', 26, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('msg_index', 'msgIndex', 27, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('msg_count', 'msgCount', 28, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('esc_index', 'escIndex', 29, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('length', 'length', 30, false, 1, 'uint8_t', ''),
new mavlink_1.MavLinkPacketField('data', 'data', 31, false, 1, 'uint8_t[]', '', 192),
];
const common_2 = require("./common");
/**
* Circular arc path waypoint. This defines the end/exit point and angle (param1) of an arc path from
* the previous waypoint. A position is required before this command to define the start of the arc
* (e.g. current position, a MAV_CMD_NAV_WAYPOINT, or a MAV_CMD_NAV_ARC_WAYPOINT). The resulting path
* is a circular arc in the NE frame, with the difference in height being defined by the difference in
* waypoint altitudes.
*
* This command has location.
* This command is destination.
*/
class NavArcWaypointCommand extends common_2.CommandLong {
constructor(targetSystem = 1, targetComponent = 1) {
super();
this.command = MavCmd.NAV_ARC_WAYPOINT;
this.targetSystem = targetSystem;
this.targetComponent = targetComponent;
}
/**
* The angle in degrees from the starting position to the exit position of the arc in the NE frame.
* Positive values are CW arcs and negative values are CCW arcs.
*
* @units deg
* @min: -359
* @max: 359
* @increment: 1
*/
get arcAngle() {
return this._param1;
}
set arcAngle(value) {
this._param1 = value;
}
/**
* Latitude
*/
get latitude() {
return this._param5;
}
set latitude(value) {
this._param5 = value;
}
/**
* Longitude
*/
get longitude() {
return this._param6;
}
set longitude(value) {
this._param6 = value;
}
/**
* Altitude
*
* @units m
*/
get altitude() {
return this._param7;
}
set altitude(value) {
this._param7 = value;
}
}
exports.NavArcWaypointCommand = NavArcWaypointCommand;
/**
* Request a target system to start an upgrade of one (or all) of its components. For example, the
* command might be sent to a companion computer to cause it to upgrade a connected flight controller.
* The system doing the upgrade will report progress using the normal command protocol sequence for a
* long running operation. Command protocol information: https://mavlink.io/en/services/command.html.
*/
class DoUpgradeCommand extends common_2.CommandLong {
constructor(targetSystem = 1, targetComponent = 1) {
super();
this.command = MavCmd.DO_UPGRADE;
this.targetSystem = targetSystem;
this.targetComponent = targetComponent;
}
/**
* Component id of the component to be upgraded. If se