- --必须在这个位置定义PROJECT和VERSION变量
- --PROJECT:ascii string类型,可以随便定义,只要不使用,就行
- --VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
- PROJECT = "SDCARD"
- VERSION = "2.0.0"
- --加载日志功能模块,并且设置日志输出等级
- --如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
- require "log"
- LOG_LEVEL = log.LOGLEVEL_TRACE
- --[[
- 如果使用UART输出日志,打开这行注释的代码"--log.openTrace(true,1,115200)"即可,根据自己的需求修改此接口的参数
- 如果要彻底关闭脚本中的输出日志(包括调用log模块接口和Lua标准print接口输出的日志),执行log.openTrace(false,第二个参数跟调用openTrace接口打开日志的第二个参数相同),例如:
- 1、没有调用过sys.opntrace配置日志输出端口或者最后一次是调用log.openTrace(true,nil,921600)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false)即可
- 2、最后一次是调用log.openTrace(true,1,115200)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false,1)即可
- ]]
- --log.openTrace(true,1,115200)
- require "sys"
- require "net"
- --每1分钟查询一次GSM信号强度
- --每1分钟查询一次基站信息
- net.startQueryAll(60000, 60000)
- --此处关闭RNDIS网卡功能
- --否则,模块通过USB连接电脑后,会在电脑的网络适配器中枚举一个RNDIS网卡,电脑默认使用此网卡上网,导致模块使用的sim卡流量流失
- --如果项目中需要打开此功能,把ril.request("AT+RNDISCALL=0,1")修改为ril.request("AT+RNDISCALL=1,1")即可
- --注意:core固件:V0030以及之后的版本、V3028以及之后的版本,才以稳定地支持此功能
- ril.request("AT+RNDISCALL=0,1")
- --加载控制台调试功能模块(此处代码配置的是uart1,波特率115200)
- --此功能模块不是必须的,根据项目需求决定是否加载
- --使用时注意:控制台使用的uart不要和其他功能使用的uart冲突
- --使用说明参考demo/console下的《console功能使用说明.docx》
- --require "console"
- --console.setup(1, 115200)
- --加载硬件看门狗功能模块
- --根据自己的硬件配置决定:1、是否加载此功能模块;2、配置Luat模块复位单片机引脚和互相喂狗引脚
- --合宙官方出售的Air201开发板上有硬件看门狗,所以使用官方Air201开发板时,必须加载此功能模块
- --[[
- require "wdt"
- wdt.setup(pio.P0_30, pio.P0_31)
- ]]
- --加载网络指示灯和LTE指示灯功能模块
- --根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚
- --合宙官方出售的Air720U开发板上的网络指示灯引脚为pio.P0_1,LTE指示灯引脚为pio.P0_4
- require "netLed"
- pmd.ldoset(2,pmd.LDO_VLCD)
- netLed.setup(true,pio.P0_1,pio.P0_4)
- --网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinktime配置的默认值
- --如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长
- --加载错误日志管理功能模块【强烈建议打开此功能】
- --如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api
- require "errDump"
- errDump.request("udp://ota.airm2m.com:9072")
- --加载远程升级功能模块【强烈建议打开此功能】
- --如下3行代码,只是简单的演示如何使用update功能,详情参考update的api以及demo/update
- --PRODUCT_KEY = "v32xEAKsGTIEQxtqgwCldp5aPlcnPs3K"
- --require "update"
- --update.request()
- --加载SD卡功能测试模块
- require "testSdCard"
- --启动系统框架
- sys.init(0, 0)
- sys.run()
复制代码
SD 播放
- module(..., package.seeall)
- require"audio"
- function sdCardTask()
- sys.wait(5000)
- --挂载SD卡,返回值0表示失败,1表示成功
- io.mount(io.SDCARD)
-
- --第一个参数1表示sd卡
- --第二个参数1表示返回的总空间单位为KB
- local sdCardTotalSize = rtos.get_fs_total_size(1,1)
- log.info("sd card total size "..sdCardTotalSize.." KB")
-
- --第一个参数1表示sd卡
- --第二个参数1表示返回的总空间单位为KB
- local sdCardFreeSize = rtos.get_fs_free_size(1,1)
- log.info("sd card free size "..sdCardFreeSize.." KB")
-
-
- --遍历读取sd卡根目录下的最多10个文件或者文件夹
- if io.opendir("/sdcard0") then
- for i=1,10 do
- local fType,fName,fSize = io.readdir()
- if fType==32 then
- log.info("sd card file",fName,fSize)
- elseif fType == nil then
- break
- end
- end
- io.closedir("/sdcard0")
- end
-
- --向sd卡根目录下写入一个pwron.mp3
- io.writeFile("/sdcard0/pwron.mp3",io.readFile("/lua/pwron.mp3"))
- --播放sd卡根目录下的pwron.mp3
- audio.play(0,"FILE","/sdcard0/pwron.mp3",audiocore.VOL7,function() sys.publish("AUDIO_PLAY_END") end)
- sys.waitUntil("AUDIO_PLAY_END")
-
- --卸载SD卡,返回值0表示失败,1表示成功
- io.unmount(io.SDCARD)
- end
- sys.taskInit(sdCardTask)
复制代码
短短几行代码就就可以实现MP3播放,YYDS
关键audio函数:模块功能:音频播放.
支持MP3、amr文件播放;
支持本地TTS播放、通话中TTS播放到对端(需要使用支持TTS功能的core软件)
0
|
|
|
|
|
|