#ifndef __BLL_SINGLE_LINE_HALF_DUPLEX_H__ #define __BLL_SINGLE_LINE_HALF_DUPLEX_H__ #ifdef __cplusplus extern "C" { #endif /*Includes ------------------------------------------------------*/ #include "fml_single_line_simplex.h" /*Private macro ------------------------------------------------*/ /*STRUCTION -----------------------------------------------------*/ typedef enum { BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_HOST = FML_SINGLE_LINE_SIMPLEX_ROLE_HOST, //角色 —— 主机 BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_SLAVE = FML_SINGLE_LINE_SIMPLEX_ROLE_SLAVE //角色 —— 从机 } BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_e; typedef void (*bll_single_line_half_duplex_receive_cb)(uint8_t byte); /*API -------------------------------------------------------*/ /** @brief 初始化单线半双工业务 @param role - [in] 角色 @return 错误代码 - [out] -1失败,0成功 */ int bll_single_line_half_duplex_Init(BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_e role); /** @brief 单线半双工传输是否可发送 @param 无 @return 错误代码 - [out] -4不能使用,-3没有连上线,-2处于接收周期,-1正在发送中,0成功 */ int bll_single_line_half_duplex_is_ready_to_transfer(void); /** @brief 单线半双工传输 —— 发送 @param byte - [in] 发送的字节 @return 错误代码 - [out] -3不能使用,-2发送失败,-1没准备好传输,0成功 */ int bll_single_line_half_duplex_transfer_onebyte(uint8_t byte); /** @brief 单线半双工传输 —— 接收 @param cb - [in] 接收回调函数 @return 错误代码 - [out] -1失败,0成功 */ int bll_single_line_half_duplex_receive_register(bll_single_line_half_duplex_receive_cb cb); #ifdef __cplusplus } #endif #endif