Files
ESPC3-wireless/app/drivers/sertrf/protocol/mavlink_control.h

108 lines
2.4 KiB
C
Raw Normal View History

2025-09-02 14:20:04 +08:00
#pragma once
#ifndef MAVLINK_CONTROL_H
#define MAVLINK_CONTROL_H
//关闭针对mavlink的警告
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
#include <common/mavlink.h>
#pragma GCC diagnostic pop
struct Mavlink_Messages {
int sysid;
int compid;
// Heartbeat
mavlink_heartbeat_t heartbeat;
// System Status
mavlink_sys_status_t sys_status;
// Battery Status
mavlink_battery_status_t battery_status;
// Radio Status
mavlink_radio_status_t radio_status;
// Local Position
mavlink_local_position_ned_t local_position_ned;
// Global Position
mavlink_global_position_int_t global_position_int;
// Local Position Target
mavlink_position_target_local_ned_t position_target_local_ned;
// Global Position Target
mavlink_position_target_global_int_t position_target_global_int;
// HiRes IMU
mavlink_highres_imu_t highres_imu;
// Attitude
mavlink_attitude_t attitude;
// System Parameters?
};
typedef struct {
mavlink_status_t lastStatus;
struct Mavlink_Messages current_messages;
bool debug;
int (*read)(void *data, uint32_t size, uint32_t wait_ms);
int (*write)(const void *data, uint32_t size, uint32_t wait_ms);
}mavlink_device_t;
/**
* @brief mavlink
*
* @param mavlink_device
*/
void mavlink_init(mavlink_device_t* mavlink_device);
/**
* @brief MAVLINK消息解析
*
* @param mavlink_device
* @param message
* @param cp
*/
int mavlink_message(mavlink_device_t* mavlink_device, mavlink_message_t* message,uint8_t cp);
/**
* @brief MAVLINK消息发送
*
* @param mavlink_device
* @param message
*/
int write_message(mavlink_device_t* mavlink_device, const mavlink_message_t *message);
/**
* @brief MAVLINK消息处理
*
* @param mavlink_device
* @param message
*/
void mavlik_packet_processing(mavlink_device_t* mavlink_device, mavlink_message_t* message);
/**
* @brief MAVLINK消息接收
*
* @param mavlink_device
*/
void mavlink_recv_loop(mavlink_device_t* mavlink_device);
/**
* @brief MAVLINK消息接收
*
* @param mavlink_device
* @param data
* @param size
* @retval
2025-09-02 14:20:04 +08:00
*/
int mavlink_recv_buf(mavlink_device_t* mavlink_device, void *data, uint32_t size);
2025-09-02 14:20:04 +08:00
#endif