luat_ymodem.h 1.1 KB

1234567891011121314151617181920212223242526
  1. #ifndef __LUAT_YMODEM_H__
  2. #define __LUAT_YMODEM_H__
  3. #include "luat_base.h"
  4. #ifdef __LUATOS__
  5. //save_path为保存文件夹路径
  6. //force_save_path强制保存文件路径,优先于save_path
  7. void *luat_ymodem_create_handler(const char *save_path, const char *force_save_path);
  8. #else
  9. typedef void(* luat_ymodem_callback)(uint8_t *Data, uint32_t Len);
  10. void *luat_ymodem_create_handler(luat_ymodem_callback cb);
  11. #endif
  12. //收文件
  13. //握手阶段,data为NULL,ack='c'
  14. //数据阶段,如果收完一整个包,根据解析结果ack返回成功或者失败符号,如果不完整,则ack=0
  15. //调用完后,如果ack不为0,则需要将ack发送出去
  16. //调用完后,如果flag不为0,则需要将flag发送出去
  17. //如果return不为0,有NAK发生
  18. //文件接收完成后file_ok=1
  19. //接收到停止帧或者取消帧后all_done=1
  20. int luat_ymodem_receive(void *handler, uint8_t *data, uint32_t len, uint8_t *ack, uint8_t *flag, uint8_t *file_ok, uint8_t *all_done);
  21. void luat_ymodem_reset(void *handler);
  22. //ymodem传输完成后,调用一下保存文件并且释放资源
  23. void luat_ymodem_release(void *handler);
  24. #endif