luat_uart_legacy.h 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. #ifndef LUAT_UART_LEGACY_H
  2. #define LUAT_UART_LEGACY_H
  3. #include "luat_base.h"
  4. #ifdef __LUATOS__
  5. enum
  6. {
  7. LUAT_VUART_STATE_CONNECT,
  8. LUAT_VUART_STATE_DISCONNECT,
  9. };
  10. int l_uart_handler(lua_State *L, void* ptr);
  11. int l_vuart_state_handler(lua_State *L, void* ptr);
  12. #endif
  13. #ifdef LUAT_FORCE_WIN32
  14. int luat_uart_list(uint8_t* list, size_t buff_len);
  15. #endif
  16. int luat_setup_cb(int uartid, int received, int sent);
  17. /*
  18. 上报接收数据中断的逻辑:
  19. 1.串口初始化时,新建一个缓冲区
  20. 2.可以考虑多为用户申请几百字节的缓冲长度,用户处理时防止丢包
  21. 3.每次串口收到数据时,先存入缓冲区,记录长度
  22. 4.遇到以下情况时,再调用串口中断
  23. a)缓冲区满(帮用户多申请的的情况)/缓冲区只剩几百字节(按实际长度申请缓冲区的情况)
  24. b)收到fifo接收超时中断(此时串口数据应该是没有继续收了)
  25. 5.触发收到数据中断时,返回的数据应是缓冲区的数据
  26. 6.关闭串口时,释放缓冲区资源
  27. */
  28. #endif