| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef _SOFT_RC_SBUS_H_
- #define _SOFT_RC_SBUS_H_
- #include "common.h"
- #include "remote_controller.h"
- #include <stdbool.h>
- #include <stdint.h>
- #define _SBUS_CALIB_CH_NUM 4
- #define _SBUS_DATA_NUM 23
- /* sbus 信号状态 */
- typedef enum
- {
- SBUS_SIGNAL_OK = 0x00,
- SBUS_SIGNAL_LOST = 0x01,
- SBUS_SIGNAL_FAILSAFE = 0x03,
- } RCSbus_SignalStatus;
- typedef struct
- {
- /*--------- public members ---------------*/
- RC_Data_Type rc;
- /*--------- public members end -----------*/
- /*--------- private members --------------*/
- uint32_t _link_lost_time_us; /* 失联时间 */
- RCSbus_SignalStatus _sbus_signal_status; /* sbus 信号状态 */
- /* 接收解析 */
- uint8_t _raw_sbus_parse_stage;
- uint8_t _raw_sbus_head;
- uint8_t _raw_sbus_data[_SBUS_DATA_NUM];
- uint8_t _raw_sbus_tail;
- uint8_t _raw_sbus_data_rx_index;
- /* 数值异常判断计时 */
- float _health_count_s;
- float _fail_count_s;
- float _bad_count_s;
- /*-------- private members end-------------*/
- } RC_SBUS_Data;
- void RcSbus_StructInit(RC_SBUS_Data *prc_sbus);
- bool rc_sbus_protocal_parse_char(RC_SBUS_Data *rc_sbus, uint8_t data);
- #endif
|