ymodem - ymodem协议#

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

备注

本页文档由这个文件自动生成。如有错误,请提交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)