ymodem - ymodem协议#

已适配 Air101/Air103 Air601 Air105 ESP32C3 ESP32S3 Air780E/Air700E Air780EP

备注

本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!

示例

-- 本库的用途是接收数据, 若需要发送文件, 建议用xmodem库
local handler = ymodem.create("/")
uart.setup(1, 115200)
uart.on(1, "receive", function(id, len)
	while 1 do
		local data = uart.read(id, 512)
		if not data or #data == 0 then
			break
		end
		ymodem.receive(handler, data)
	end
end)

ymodem.create(dir_path,file_path)#

创建一个ymodem处理句柄

参数

传入值类型

解释

string

保存的文件夹路径,默认是”/”

string

强制保存的绝对文件路径,默认是空,如果设置了,就会直接保存在该文件中

返回值

返回值类型

解释

boolean

成功true, 失败false

例子

local handler = ymodem.create("/")

ymodem.receive(handler, data)#

ymodem接收文件数据并保存

参数

传入值类型

解释

userdata

ymodem处理句柄

zbuff/string

输入的数据

返回值

返回值类型

解释

boolean

成功true,失败false

int

ack值,需要通过串口/网络等途径返回发送方

int

flag值,需要通过串口/网络等途径返回发送方,如果有ack值则不发送flag

boolean,

一个文件接收完成true,传输中false

boolean,

整个传输完成true 否则false

例子

-- 注意, 数据来源不限, 通常是uart.read得到data
no_error,ack,flag,file_done,all_done = ymodem.receive(handler, data)

ymodem.reset(handler)#

重置ymodem处理过程

参数

传入值类型

解释

userdata

ymodem处理句柄

返回值

例子

-- 恢复到初始状态,一般用于接收出错后重置,从而进行下一次接收
ymodem.reset(handler)

ymodem.release(handler)#

释放ymodem处理句柄

参数

传入值类型

解释

userdata

handler

返回值

例子

ymodem.release(handler)