LuatOS扩展库API——【exremotefile】远程文件管理系统

张开发
2026/4/14 1:53:32 15 分钟阅读

分享文章

LuatOS扩展库API——【exremotefile】远程文件管理系统
一、概述如下图所示exremotefile 扩展库是 LuatOS 提供的一个远程文件管理系统它通过创建 Wi-Fi AP 热点和 SERVER 服务器允许用户在移动设备或电脑上通过浏览器远程管理设备上的文件。你可以把它想象成一个简易的文件服务器创建 AP 热点设备会创建一个 Wi-Fi 热点供其他设备连接。挂载 SD 卡自动挂载 Flash 中内置文件系统和设备上的 TF/SD 卡以便访问设备内部存储和 SD 卡中的文件。启动 SERVER 服务器提供 Web 界面用户可以通过浏览器查看、下载和删除文件。该库适用于需要在本地浏览或下载主控内部文件的设备场景中。二、核心示例1、核心示例是指使用本库文件提供的核心 API开发的基础业务逻辑的演示代码2、核心示例的作用是帮助开发者快速理解如何使用本库所以核心示例的逻辑都比较简单3、更加完整和详细的 demo请参考 LuatOS 仓库中各个产品目录下的 project/wifi_ap_read_file远程文件管理系统--[[ 本核心示例的业务逻辑为 1、创建并启动一个基础task在task的任务处理函数内初始化远程文件管理系统 2、用户可以通过连接设备创建的Wi-Fi热点在浏览器中访问文件管理界面 ]]PROJECTwifi_ap_read_fileVERSION001.000.000-- 在日志中打印项目名和项目版本号log.info(main,PROJECT,VERSION)-- 导入exremotefile库localexremotefilerequireexremotefile-- 启动远程文件管理系统使用默认参数exremotefile.open()-- 如果需要自定义参数可以使用以下方式-- exremotefile.open({-- ap_ssid LuatOS_FileHub, -- WiFi名称-- ap_pwd 12345678 -- WiFi密码-- },-- {-- spi_id 1, -- SPI编号-- spi_cs 20, -- CS片选引脚-- is_8000_development_board false, -- 是否使用8000开发板-- is_sdio false -- 是否使用sdio挂载-- },-- {-- server_addr 192.168.4.1, -- 服务器地址-- server_port 80, -- 服务器端口-- user_name admin, -- 用户名-- user_pwd 123456 -- 密码-- })-- 运行一段时间后关闭远程文件管理系统-- sys.timerStart(exremotefile.close, 3600000) -- 1小时后关闭-- 用户代码已结束----------------------------------------------- 结尾总是这一句sys.run()-- sys.run()之后不要加任何语句!!!!!因为添加的任何语句都不会被执行三、常量详解exremotefile 扩展库没有常量。四、函数详解4.1 exremotefile.open(ap_opts, sdcard_opts, server_opts)功能启动文件管理系统包括创建 AP 热点、挂载 TF/SD 卡和启动 SERVER 文件管理服务器功能。注意事项1. 如果文件管理系统已经在运行中再次调用此函数会返回警告信息不会重复启动2. 启动过程中会先检查 AP 热点参数、SD 卡挂载参数和服务器参数并使用默认值补充未提供的参数3. 系统会自动创建 AP 热点、挂载 SD 卡并启动 SERVER 服务器4. 启动完成后可以通过日志中显示的 Wi-Fi 名称、密码和访问地址来连接和使用文件管理系统参数ap_opts参数含义AP热点配置选项表参数为table类型时table内容格式说明如下{参数含义AP热点的名称数据类型string或者nil取值范围无特别限制是否必选可选传入此参数默认值为LuatOS\_FileHub注意事项无参数示例MyDevice参数名称 ap\_opts.ap\_ssid参数含义AP热点的密码数据类型string或者nil取值范围密码长度应至少为8个字符可包含数字和字母是否必选可选传入此参数默认值为12345678注意事项密码必须符合WiFi规范长度至少8个字符参数示例87654321参数名称 ap\_opts.ap\_pwd}数据类型table或者nil取值范围参考参数含义内各字段说明是否必选可选传入此参数 注意事项无参数示例自定义AP热点名称和密码{ap\_ssidMyDevice,ap\_pwd87654321-- 符合8位密码规范}sdcard_opts参数含义TF/SD卡挂载配置选项表参数为table类型时table内容格式说明如下{参数含义SPI编号数据类型number或者nil取值范围根据设备支持的SPI数量确定是否必选可选传入此参数默认值为1注意事项无参数示例0参数名称 sdcard\_opts.spi\_id参数含义CS片选引脚数据类型number或者nil取值范围根据设备支持的GPIO引脚确定是否必选可选传入此参数默认值为20注意事项无参数示例12参数名称 sdcard\_opts.spi\_cs,参数含义是否使用8000开发板数据类型boolean或者nil取值范围true/false是否必选可选传入此参数默认值为false注意事项在Air8000开发板上TF和以太网是同一个SPI使用开发板时必须设置为true参数示例true参数名称 sdcard\_opts.is\_8000\_development\_board,参数含义是否使用sdio挂载数据类型boolean或者nil取值范围true/false是否必选可选传入此参数默认值为false注意事项无参数示例false参数名称 sdcard\_opts.is\_sdio}数据类型table或者nil取值范围参考参数含义内各字段说明是否必选可选传入此参数注意事项无参数示例自定义SD卡挂载参数{spi\_id0,-- 使用SPI0spi\_cs12-- 使用引脚12作为片选}使用8000开发板的配置示例{is\_8000\_development\_boardtrue}server_opts参数含义服务器配置选项表参数为table类型时table内容格式说明如下{参数含义服务器地址数据类型string或者nil取值范围有效的IP地址是否必选可选传入此参数默认值为192.168.4.1注意事项支持自定义AP地址需确保与子网掩码一致并用该地址访问参数示例192.168.4.1参数名称 sdcard\_opts.server\_addr参数含义服务器端口数据类型number或者nil取值范围1-65535是否必选可选传入此参数默认值为80注意事项无参数示例8080参数名称 sdcard\_opts.server\_port参数含义用户名数据类型string或者nil取值范围无特别限制是否必选可选传入此参数默认值为admin注意事项无参数示例user参数名称 sdcard\_opts.user\_name参数含义密码数据类型string或者nil取值范围无特别限制是否必选可选传入此参数默认值为123456注意事项无参数示例password参数名称 sdcard\_opts.user\_pwd}数据类型table或者nil取值范围参考参数含义内各字段说明是否必选可选传入此参数注意事项无参数示例自定义服务器参数{server\_port8080,-- 使用8080端口user\_nameuser,-- 自定义用户名user\_pwdpassword-- 自定义密码}返回值无示例-- 示例1使用默认参数创建server服务器-- 启动后连接默认AP热点直接访问日志中默认的地址http://192.168.4.1:80/explorer.html来访问文件管理服务器。exremotefile.open()-- 示例2自定义参数启动-- 启动后连接自定义AP热点访问日志中自定义的地址http://server_addr:server_port/explorer.html来访问文件管理服务器。-- 例如下面一段代码对应的访问地址为http://192.168.4.1:80/explorer.htmlexremotefile.open({ap_ssidLuatOS_FileHub,-- WiFi名称ap_pwd12345678-- WiFi密码},{spi_id1,-- SPI编号spi_cs20,-- CS片选引脚is_8000_development_boardfalse,-- 是否使用8000开发板is_sdiofalse-- 是否使用sdio挂载},{server_addr192.168.4.1,-- 服务器地址server_port80,-- 服务器端口user_nameadmin,-- 用户名user_pwd123456-- 密码})-- 示例3自定义参数启动使用8000开发板-- 启动后连接默认AP热点访问日志中的地址http://192.168.4.1:80/explorer.html来访问文件管理服务器。exremotefile.open(nil,{is_8000_development_boardtrue})4.2 exremotefile.close()功能关闭文件管理系统包括停止 SERVER 文件服务器、取消 TF/SD 卡挂载和停止 AP 热点。注意事项1. 如果文件管理系统尚未启动调用此函数会返回警告信息2. 关闭过程中会依次停止 SERVER 服务器、停止 AP 热点、取消挂载 SD 卡、关闭 SPI 和相关 GPIO3. 关闭完成后将释放所有相关资源参数无返回值无示例-- 关闭文件管理系统exremotefile.close()五、常见问题与解决方案5.1 无法连接到 AP 热点问题描述启动文件管理系统后移动设备无法搜索到或连接到 AP 热点。解决方案检查设备的天线是否连接良好尝试重启设备并重试确认自定义的 AP 名称和密码是否符合 Wi-Fi 规范例如密码长度是否 ≥8 位。5.2 无法挂载 SD 卡问题描述文件管理系统启动后无法访问 SD 卡中的文件。解决方案确认 SD 卡已经正确插入设备检查 SD 卡是否格式化为 FAT32尝试使用已知正常的 SD 卡确认 SPI 参数是否配置正确特别是片选引脚对于 Air8000 开发板需要启用 is_8000_development_board 选项。5.3 无法访问文件管理界面问题描述连接到 AP 热点后无法在浏览器中访问文件管理界面。解决方案确认 LuatOS/script/libs 扩展库目录下 explorer.html 文件是否烧录到设备中通过日志确认设备已经获取到正确的 IP 地址检查访问的 URL 是否正确确认服务器端口配置是否正确查看设备日志确认 SERVER 服务器是否成功启动。5.4 无法下载 SD 卡中文件问题描述文件管理系统启动后下载 SD 卡内文件夹中的文件失败。解决方案SD 卡目录下文件夹名称不能为中文否则会识别失败无法下载文件夹中文件确认文件夹命名是否符合规范不能用特殊字符做开头结尾。五、产品支持说明Air8000/8000A/8000W 等 Air8000 系列和 Air8101 等具有 Wi-Fi 功能的产品都支持 exremotefile 库。今天就分享到这里啦~~~

更多文章