| | |
| | | #define PYTHONLINK_FRAME_FOOTER1 0x0D // 帧尾1 (CR) |
| | | #define PYTHONLINK_FRAME_FOOTER2 0x0A // 帧尾2 (LF) |
| | | |
| | | // 数据类型定义 |
| | | #define PYTHONLINK_TYPE_GPS 0x01 // GPS数据包 (10Hz) |
| | | #define PYTHONLINK_TYPE_IMU 0x02 // IMU数据包 (100Hz) |
| | | // 数据类型定义 (保留以兼容旧版) |
| | | #define PYTHONLINK_TYPE_GPS 0x01 // GPS数据包 (已停用) |
| | | #define PYTHONLINK_TYPE_IMU 0x02 // IMU数据包 (已停用) |
| | | #define PYTHONLINK_TYPE_CONTROL 0x10 // 控制命令包 (Python->STM32) |
| | | |
| | | // 缓冲区大小 |
| | |
| | | // 调试选项: 置1则发送固定内容以排查乱码 |
| | | #define PYTHONLINK_FORCE_FIXED_PAYLOAD 0 |
| | | |
| | | // ASCII 输出关键字 |
| | | #define PYTHONLINK_ASCII_KEY_CTRL "CTRL" |
| | | #define PYTHONLINK_ASCII_KEY_POSE "POSE" |
| | | #define PYTHONLINK_ASCII_KEY_STACK "STACK" |
| | | #define PYTHONLINK_ASCII_KEY_STATE "STATE" |
| | | |
| | | /******************************************************************************* |
| | | * Type Definition * |
| | | *******************************************************************************/ |
| | |
| | | HIDO_UINT16 m_u16ThrottlePWM; // 油门PWM值 (1000~2000us) |
| | | } ST_PythonLink_Control; |
| | | |
| | | typedef struct __attribute__((packed)) |
| | | { |
| | | HIDO_FLOAT m_fForwardMps; |
| | | HIDO_FLOAT m_fTurnRate; |
| | | } ST_PythonLink_ControlFeedback; |
| | | |
| | | /******************************************************************************* |
| | | * Global Function * |
| | | *******************************************************************************/ |
| | |
| | | HIDO_INT32 PythonLink_SendIMUData(const ST_GPIMU *_pstGPIMU); |
| | | |
| | | /** |
| | | * @brief ASCII 输出:控制量/频率/阶段 |
| | | */ |
| | | HIDO_VOID PythonLink_ReportControl(HIDO_FLOAT _forward_mps, |
| | | HIDO_FLOAT _turn_rate, |
| | | HIDO_FLOAT _freq_hz, |
| | | HIDO_UINT16 _steering_pwm, |
| | | HIDO_UINT16 _throttle_pwm, |
| | | const HIDO_CHAR *_pcStage, |
| | | HIDO_UINT32 _timestamp_ms); |
| | | /** |
| | | * @brief ASCII 输出:姿态/位置/目标点 |
| | | */ |
| | | HIDO_VOID PythonLink_ReportPose(const HIDO_FLOAT _enu[3], |
| | | HIDO_FLOAT _heading_deg, |
| | | HIDO_FLOAT _pitch_deg, |
| | | HIDO_FLOAT _roll_deg, |
| | | const HIDO_FLOAT _target_xy[2], |
| | | HIDO_UINT32 _timestamp_ms); |
| | | /** |
| | | * @brief ASCII 输出:算法状态(阶段+误差) |
| | | */ |
| | | HIDO_VOID PythonLink_ReportState(const HIDO_CHAR *_pcStage, |
| | | HIDO_FLOAT _xte_m, |
| | | HIDO_FLOAT _heading_err_deg, |
| | | HIDO_UINT32 _timestamp_ms); |
| | | /** |
| | | * @brief ASCII 输出:堆栈/堆监测 |
| | | */ |
| | | HIDO_VOID PythonLink_ReportStack(const HIDO_CHAR *_pcTaskName, |
| | | HIDO_UINT32 _u32StackHighWaterWords, |
| | | HIDO_UINT32 _u32HeapFreeBytes, |
| | | HIDO_UINT32 _u32HeapMinBytes); |
| | | |
| | | /** |
| | | * @brief 获取发送统计信息 |
| | | * @param _pu32GPSCount: GPS数据包发送计数 |
| | | * @param _pu32IMUCount: IMU数据包发送计数 |