bll_single_line_half_duplex.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef __BLL_SINGLE_LINE_HALF_DUPLEX_H__
  2. #define __BLL_SINGLE_LINE_HALF_DUPLEX_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*Includes ------------------------------------------------------*/
  7. #include "fml_single_line_simplex.h"
  8. /*Private macro ------------------------------------------------*/
  9. /*STRUCTION -----------------------------------------------------*/
  10. typedef enum
  11. {
  12. BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_HOST = FML_SINGLE_LINE_SIMPLEX_ROLE_HOST, //角色 —— 主机
  13. BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_SLAVE = FML_SINGLE_LINE_SIMPLEX_ROLE_SLAVE //角色 —— 从机
  14. } BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_e;
  15. typedef void (*bll_single_line_half_duplex_receive_cb)(char byte);
  16. /*API -------------------------------------------------------*/
  17. /**
  18. @brief 初始化单线半双工业务
  19. @param role - [in] 角色
  20. @return 错误代码 - [out] -1失败,0成功
  21. */
  22. int bll_single_line_half_duplex_Init(BLL_SINGLE_LINE_HALF_DUPLEX_ROLE_e role);
  23. /**
  24. @brief 单线半双工传输是否可发送
  25. @param 无
  26. @return 错误代码 - [out] -3没有连上线,-2处于接收周期,-1正在发送中,0成功
  27. */
  28. int bll_single_line_half_duplex_is_ready_to_transfer(void);
  29. /**
  30. @brief 单线半双工传输 —— 发送
  31. @param byte - [in] 发送的字节
  32. @return 错误代码 - [out] -2发送失败,-1没准备好传输,0成功
  33. */
  34. int bll_single_line_half_duplex_transfer_onebyte(char byte);
  35. /**
  36. @brief 单线半双工传输 —— 接收
  37. @param cb - [in] 接收回调函数
  38. @return 错误代码 - [out] -1失败,0成功
  39. */
  40. int bll_single_line_half_duplex_receive_register(bll_single_line_half_duplex_receive_cb cb);
  41. #ifdef __cplusplus
  42. }
  43. #endif
  44. #endif