Skip to content

Records

Raw record types parsed from the binary stream. Each record type is identified by a magic byte.

Record

Record dataclass

Record(record_type: int, data: Any)

A parsed record from the binary log stream.

parse_record

parse_record(magic: int, data: bytes, version: int, *, product_type: Any = None) -> Record

Parse record data based on magic byte.

Returns a Record with either a parsed struct or raw bytes for unknown types.

OSD

OSD dataclass

OSD(longitude: float, latitude: float, altitude: float, speed_x: float, speed_y: float, speed_z: float, pitch: float, roll: float, yaw: float, flight_mode: FlightMode, rc_outcontrol: bool, app_command: AppCommand, can_ioc_work: bool, ground_or_sky: GroundOrSky, is_motor_up: bool, is_swave_work: bool, go_home_status: GoHomeStatus, is_vision_used: bool, voltage_warning: int, is_imu_preheated: bool, is_gps_valid: bool, is_compass_error: bool, wave_error: bool, gps_level: int, battery_type: BatteryType, is_out_of_limit: bool, is_go_home_height_modified: bool, is_propeller_catapult: bool, is_motor_blocked: bool, is_not_enough_force: bool, is_barometer_dead_in_air: bool, is_vibrating: bool, is_acceletor_over_range: bool, gps_num: int, flight_action: FlightAction, motor_start_failed_cause: MotorStartFailedCause, non_gps_cause: NonGPSCause, battery: int, s_wave_height: float, fly_time: float, drone_type: DroneType, imu_init_fail_reason: ImuInitFailReason)

OSD record — primary flight telemetry data.

Home

Home dataclass

Home(longitude: float, latitude: float, altitude: float, is_home_record: bool, go_home_mode: GoHomeMode, is_dynamic_home_point_enabled: bool, is_near_distance_limit: bool, is_near_height_limit: bool, is_multiple_mode_open: bool, has_go_home: bool, compass_state: CompassCalibrationState, is_compass_adjust: bool, is_beginner_mode: bool, is_ioc_open: bool, ioc_mode: IOCMode, aircraft_head_direction: int, go_home_height: int, ioc_course_lock_angle: int, current_flight_record_index: int, max_allowed_height: float)

Home point record.

from_bytes classmethod

from_bytes(data: bytes, version: int) -> Home

Parse home-point record from binary data.

Gimbal

Gimbal dataclass

Gimbal(pitch: float, roll: float, yaw: float, mode: GimbalMode, is_pitch_at_limit: bool, is_roll_at_limit: bool, is_yaw_at_limit: bool, is_stuck: bool)

Gimbal record.

from_bytes classmethod

from_bytes(data: bytes, version: int) -> Gimbal

Parse gimbal record from binary data.

RC

RC dataclass

RC(aileron: int, elevator: int, throttle: int, rudder: int)

Remote Controller record.

from_bytes classmethod

from_bytes(data: bytes, version: int, product_type: ProductType = ProductType.NONE) -> RC

Parse RC record from binary data.

Camera

Camera dataclass

Camera(is_shooting_single_photo: bool, is_recording: bool, has_sd_card: bool, sd_card_state: SDCardState, work_mode: CameraWorkMode = CameraWorkMode.CAPTURE, sd_card_total_capacity: int = 0, sd_card_remain_capacity: int = 0, remain_photo_num: int = 0, remain_video_timer: int = 0, record_time: int = 0, camera_type: int = 0)

Camera record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> Camera

Parse camera record from binary data.

CenterBattery

CenterBattery dataclass

CenterBattery(relative_capacity: int, voltage: float, current_capacity: int, full_capacity: int, life: int, number_of_discharges: int, current: float, voltage_cell1: float, voltage_cell2: float, voltage_cell3: float, voltage_cell4: float, voltage_cell5: float, voltage_cell6: float, serial_number: int, temperature: float)

Center battery record.

from_bytes classmethod

from_bytes(data: bytes, version: int) -> CenterBattery

Parse center battery record from binary data.

SmartBattery

SmartBattery dataclass

SmartBattery(useful_time: int, go_home_time: int, land_time: int, go_home_battery: int, land_battery: int, safe_fly_radius: float, volume_consume: float, status: int, go_home_status: int, go_home_countdown: int, voltage: float, percent: int, low_warning: int, low_warning_go_home: int, serious_low_warning: int, serious_low_warning_landing: int)

Smart battery record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> SmartBattery

Parse smart battery record from binary data.

Custom

Custom dataclass

Custom(update_timestamp: datetime)

Custom record with timestamp.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> Custom

Parse custom record from binary data.

Recover

Recover dataclass

Recover(product_type: ProductType, app_platform: Platform, app_version: str, aircraft_sn: str, aircraft_name: str, camera_sn: str, rc_sn: str, battery_sn: str)

Recover record with aircraft identification data.

from_bytes classmethod

from_bytes(data: bytes, version: int) -> Recover

Parse recover record from binary data.

Firmware

Firmware dataclass

Firmware(sender_type: SenderType, sub_sender_type: int, version: str)

Firmware version record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> Firmware

Parse firmware version record from binary data.

KeyStorage

KeyStorage dataclass

KeyStorage(feature_point: int, data: bytes)

KeyStorage record with encrypted feature point data.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> KeyStorage

Parse key-storage record from binary data.

AppTip

AppTip dataclass

AppTip(message: str)

App tip notification record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> AppTip

Parse app tip record from binary data.

AppWarn

AppWarn dataclass

AppWarn(message: str)

App warning record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> AppWarn

Parse app warning record from binary data.

AppSeriousWarn

AppSeriousWarn dataclass

AppSeriousWarn(message: str)

App serious warning record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> AppSeriousWarn

Parse app serious warning record from binary data.

AppGPS

AppGPS dataclass

AppGPS(latitude: float, longitude: float)

App GPS record with latitude/longitude.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> AppGPS

Parse app GPS record from binary data.

RCGPS

RCGPS dataclass

RCGPS(time: RCGPSTime, latitude: float, longitude: float, velocity_x: int, velocity_y: int, gps_num: int, accuracy: float, valid_data: int)

Remote controller GPS data (dji_rc_gps_info_push, 30 bytes packed).

latitude and longitude are in decimal degrees (int32 * 1e-7). velocity_x / velocity_y are raw int32 values from the struct.

from_bytes classmethod

from_bytes(data: bytes) -> RCGPS

Parse RC GPS record from binary data.

ComponentSerial

ComponentSerial dataclass

ComponentSerial(component_type: ComponentType, serial: str)

Component serial number record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> ComponentSerial

Parse component serial record from binary data.

MCParams

MCParams dataclass

MCParams(fail_safe_protection: FailSafeProtectionType, mvo_func_enabled: bool, avoid_obstacle_enabled: bool, user_avoid_enabled: bool)

MC parameters record.

from_bytes classmethod

from_bytes(data: bytes, version: int = 0) -> MCParams

Parse flight-controller parameters record from binary data.

OFDM

OFDM dataclass

OFDM(signal_percent: int, is_up: bool)

OFDM radio signal record.