54 lines
1.2 KiB
C
54 lines
1.2 KiB
C
|
|
/*
|
||
|
|
* Copyright (c) CompanyNameMagicTag 2019-2020. All rights reserved.
|
||
|
|
* Description: MRS UART protocol.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef __MRS_PROTO_H__
|
||
|
|
#define __MRS_PROTO_H__
|
||
|
|
|
||
|
|
#include "mrs_config.h"
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
td_u16 rx_len;
|
||
|
|
td_bool simu_enable;
|
||
|
|
td_u8 rsv;
|
||
|
|
td_u8 buffer[MRS_DATA_BUFFER_SIZE];
|
||
|
|
} mrs_proto_buffer;
|
||
|
|
|
||
|
|
typedef td_void (*mrs_proto_rx_notify)(EXT_CONST mrs_proto_buffer *buf);
|
||
|
|
typedef td_void (*mrs_proto_rx_full)(EXT_CONST mrs_proto_buffer *buf);
|
||
|
|
typedef td_void (*mrs_proto_parse_fct)(mrs_proto_buffer *buf);
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
mrs_proto_rx_notify rx_notify;
|
||
|
|
mrs_proto_rx_full rx_full;
|
||
|
|
mrs_proto_parse_fct parse;
|
||
|
|
} mrs_proto_handler;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
mrs_proto_buffer buf;
|
||
|
|
mrs_proto_handler handler;
|
||
|
|
} mrs_proto_ctx;
|
||
|
|
|
||
|
|
td_u32 mrs_proto_init(td_void);
|
||
|
|
|
||
|
|
td_void mrs_proto_clear_buffer(td_void);
|
||
|
|
|
||
|
|
td_void mrs_proto_register_handler(const mrs_proto_handler *hanlder);
|
||
|
|
|
||
|
|
td_void mrs_proto_parse(td_bool overtime);
|
||
|
|
|
||
|
|
td_void mrs_proto_rx(td_u8 ch);
|
||
|
|
|
||
|
|
td_void mrs_proto_simu_ctrl(td_bool enable);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
#endif /* __MRS_PROTO_H__ */
|
||
|
|
|