| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- #ifndef __DATA_SAVE_H
- #define __DATA_SAVE_H
- #include "stdbool.h"
- #include <stdint.h>
- //打开记录的标志位
- extern bool data_record_open;
- //结束记录的标志位
- extern bool data_record_close;
- #pragma pack(1)
- typedef struct
- {
- unsigned short sorties; // 架次
- char plane_type; // 机型
- int fireware_num; // 固件号
- int unlock_lon; // 解锁经度
- int unlock_lat; // 解锁纬度
- char unlock_time_year; // 解锁时间 年
- char unlock_time_month; // 解锁时间 月
- char unlock_time_day; // 解锁时间 日
- char unlock_time_hour; // 解锁时间 时
- char unlock_time_minut; // 解锁时间 分
- char unlock_time_second; // 解锁时间 秒
- int lock_lon; // 上锁经度
- int lock_lat; // 上锁纬度
- unsigned short flight_time; // min
- unsigned int total_flight_time; // min
- unsigned short flight_mileages; // 0.1 km
- unsigned int total_flight_mileages; // 0.1 km
- unsigned short unlock_voltage; // 0.1v
- unsigned short lock_voltage; // 0.1v
- unsigned char max_auto_roll; // deg
- unsigned char max_auto_pitch; // deg
- unsigned short max_auto_horizonal_speed; // dm/s
- char max_auto_climb_speed; // dm/s
- signed char max_auto_down_speed; // dm/s
- char max_auto_gps_num; // 最大gps星数
- char min_auto_gps_num; // 最小gps星数
- unsigned short gps_locating_time; // gps搜星时间
- char mag_error; // 磁错误标志
- char acc_gyro_error; // 加计陀螺错误标志
- char baro_error; // 气压错误标志
- char gps_error; // gps错误标志
- char lidar_error; // 雷达错误标志
- } FLY_LOG;
- #pragma pack()
- extern FLY_LOG fly_log;
- #pragma pack(1)
- typedef struct
- {
- int solved_lon; // 解算经度,cm
- int solved_lat; // 解算纬度,cm
- int target_lon; // 目标经度,cm
- int target_lat; // 目标纬度,cm
- int raw_lon; // 原始经度,cm
- int raw_lat; // 原始纬度,cm
- float flight_time; // 已飞时间,s
- short roll; // 横滚角 0.1deg
- short pitch; // 俯仰角 0.1deg
- short yaw; // 航向角 0.1deg
- short target_roll; // 目标横滚 0.1deg
- short target_pitch; // 目标俯仰 0.1deg
- short target_yaw; // 目标航向 0.1deg
- short x_gyro; // X陀螺 0.1deg/s
- short y_gyro; // Y陀螺 0.1deg/s
- short z_gyro; // Z陀螺 0.1deg/s
- short x_acc; // X加速度 cm/s^2
- short y_acc; // Y加速度 cm/s^2
- short z_acc; // Z加速度 cm/s^2
- short x_raw_gyro1; // deg/s
- short y_raw_gyro1; // deg/s
- short z_raw_gyro1; // deg/s
- short x_raw_gyro2; // deg/s
- short y_raw_gyro2; // deg/s
- short z_raw_gyro2; // deg/s
- short x_raw_acc1; // cm/s^2
- short y_raw_acc1; // cm/s^2
- short z_raw_acc1; // cm/s^2
- short x_raw_acc2; // cm/s^2
- short y_raw_acc2; // cm/s^2
- short z_raw_acc2; // cm/s^2
- short x_raw_mag1; // 0.1mGause
- short y_raw_mag1; // 0.1mGause
- short z_raw_mag1; // 0.1mGause
- short x_raw_mag2; // 0.1mGause
- short y_raw_mag2; // 0.1mGause
- short z_raw_mag2; // 0.1mGause
- short air_speed; // 空速 0.1m/s
- short solved_alt; // 解算当前高度 0.1m
- short target_alt; // 目标高度 0.1m
- short forward_lidar; // 前雷达距离 0.1m
- short backward_lidar; // 后雷达距离 0.1m
- short down_lidar_alt; // 下雷达高度 0.1m
- char lidar_comp_state; // 雷达连接状态
- short climb_rate; // 垂直速度 cm/s
- short target_climb_rate; // 目标垂直速度 cm/s
- short east_solved_speed; // 东西速度 cm/s
- short north_solved_speed; // 南北速度 cm/s
- short target_east_solved_speed; // 目标东西速度 cm/s
- short target_north_solved_speed; // 目标南北速度 cm/s
- short total_wp_number; // 总航点数
- short target_wp_number; // 目标航点
- short picture_number; // 拍照数
- short voltage_value; // 电压 0.1v
- short dist_2_home; // 离家距离 m
- short dist_2_target; // 目标距离 m
- short dist_off_track; // 偏航距离 dm
- short gps_alt; // GPS高度 dm
- short gps_yaw; // GPS航向 deg
- short gps_speed; // GPS速度 cm/s
- char gps_num; // GPS星数
- char gps_pdop; // GPSPDOP
- unsigned char pwmin1; // 输入CH1
- unsigned char pwmin2;
- unsigned char pwmin3;
- unsigned char pwmin4;
- unsigned char pwmin5;
- unsigned char pwmin6;
- unsigned char pwmin7;
- unsigned char pwmin8;
- unsigned char pwmout1;
- unsigned char pwmout2;
- unsigned char pwmout3;
- unsigned char pwmout4;
- unsigned char pwmout5;
- unsigned char pwmout6;
- unsigned char pwmout7;
- unsigned char pwmout8;
- char temperature; // 温度 度
- char rtk_flag; // rtk 标志位
- char ins_flag; // 解算标志位
- char lock_flag; // 锁标志
- char pos_hold_flag; // 定点状态
- char alt_hold_flag; // 定高状态
- char lock_reason_flag; // 上锁原因
- char rth_reason_flag; // 返航原因
- char loiter_reason_flag; // 悬停原因
- char warn_flag; // 报警标志位
- char gps_status_flag; // gps状态
- char gps_status2_flag; // 气压计状态
- char acc_gyro_status_flag; // 陀螺加计状态
- char mag_status_flag; // 磁状态
- char flight_mode; // 飞行模式
- uint32_t gps_time_day_hour_minute_second; // gps 时间 时分秒 [时 * 10000 + 分 *
- // 100 + 秒]
- short gps_time_year_month; // gps 时间 年月 [(年%100) * 100 + 月]
- short tlidar_alt; // 目标雷达高度
- unsigned char rec_stx; // 计数累计
- short data_rec_time; // 数据记录时间
- short pid_r; // 横滚pidout
- short pid_p; // 俯仰pidout
- short pid_y; // 航向pidout
- short pid_t; // 油门pidout
- short x_gyro_t; // 俯仰目标角速度
- short y_gyro_t; // 横滚目标角速度
- short z_gyro_t; // 航向目标角速度
- short gps_vertical_vel; // GPS 垂直速度
- short raw_baroalt; // 原始 气压高度
- char imu_fileter_reset_flag; // imu 滤波器重置标志
- char imu_mag_yaw; // imu 收到解锁标志
- char ahrs_roll; // ahrs roll
- char ahrs_pitch; // ahrs pitch
- char g0; // 标定的重力加速度
- char redundant_gps_num; // 冗余 gps 星数
- char dgps_ant2_gps_num; // 双天线定向中 ant2 卫星数目
- int auxiliary_gps_lon; // 从 gps 经度
- int auxiliary_gps_lat; // 从 gps 纬度
- char ins_error; // ins 姿态正确性 bit0 0-ins 姿态正确 1-ins 姿态异常
- char vehicle_data_flag; // 车载数据状态位
- int16_t vehicle_vector[3];
- int16_t raw_vehicle_vector[3];
- uint8_t servo_rpm[8]; // 电调反馈转速
- } FLY_DATA;
- #pragma pack()
- void data_record_service(void);
- void put_to_dataflash_buff(unsigned char *src_buff, unsigned short size);
- // void flash_write_dataendpage(void);
- // void gsprot_send_datasum_data(void);
- // void gsprot_send_datacontent_data(short data_page);
- // unsigned int gs_port_send_datasum_data(void);
- // void gs_port_send_datalog_data(unsigned int data_pack_num);
- void get_fly_data_type_data_5hz(void);
- void sd_card_init_fly_log(void);
- void sd_card_clear_fly_log(void);
- // extern unsigned char flash_data_translate;
- #endif
|