CFIOT library functions for Lua

Global function

全局函数

This()

当前虚拟机名称、包路径、lua lib路径,用于从指定路径加载模块

  • 参数

  • 返回值

Table,{LuaVMName=”虚拟机名称”,PackagePath=”虚拟机目录”,LuaLibPath=”lua标准库目录”}

  • 例子
local PackagePath=this().PackagePath--当前虚拟机加载用户自定义模块的根目录
local LuaLibPath=this().LuaLibPath--当前虚拟机加载lua官方模块的根目录
package.path = PackagePath .. [[/?/init.lua;]] .. PackagePath .. [[/?.lua;]] .. package.path
package.path = LuaLibPath .. [[/?/init.lua;]] .. LuaLibPath .. [[/?.lua;]] .. package.path
local LuaVMName=this().LuaVMName--当前虚拟机的名称

cf_iot

模块功能:虚拟机核心功能,定时器、虚拟机消息机制、看门狗

cf_iot.GetFirmwareInfo()

获取固件信息

  • 参数

  • 返回值

String FirmwareInfoStr,固件信息

  • 例子
local FirmwareInfoStr=cf_iot.GetFirmwareInfo()

cf_iot.GetParameters()

获取固件参数设置信息

  • 参数

  • 返回值

String ParameterStr,固件信息

  • 例子
local ParameterStr=cf_iot.GetParameters()

cf_iot.print(Info,B)

获取固件参数设置信息

  • 参数

参数

类型

释义

Info

string

打印信息

B

boolean

是否将信息发送到服务器

  • 返回值

  • 例子
cf_iot.print("test",false)

cf_iot.SetDebug(VMName,B)

设置虚拟机调试模式

  • 参数

参数

类型

释义

VMName

string

虚拟机名称

B

boolean

是否打开虚拟机调试模式,true:打开调试,异常信息上行至服务器

false:关闭虚拟机调试

  • 返回值

  • 例子
cf_iot.SetDebug(LuaVMName,false)

cf_iot.Watchdog(VMName,I)

发送虚拟机看门狗信号

  • 参数

参数

类型

释义

VMName

string

虚拟机名称

I

number

数字信号值

  • 返回值

  • 例子
cf_iot.Watchdog(LuaVMName,1)

cf_iot.SetWatchdogTimeout(VMName,I)

设置看门狗信号超时时间,单位为秒

  • 参数

参数

类型

释义

VMName

string

虚拟机名称

I

number

超时时间,单位为秒,大于20,默认120秒

  • 返回值

  • 例子
cf_iot.SetWatchdogTimeout(LuaVMName,300)

cf_iot.AddTimer(VN,TN,It,Func)

增加软件定时器,用于周期性回调函数

  • 参数

参数

类型

释义

VN

string

虚拟机名称

TN

string

定时器名称

It

number

周期执行时间间隔,单位为秒

Func

定时器回调函数

  • 返回值

  • 例子

5秒发送一次看门狗信号

cf_iot.AddTimer(LuaVMName,"MainTimer",5000,function()
    cf_iot.Watchdog(LuaVMName,1)--发送看门狗信号
end)

 cf_iot.DeleteTimer(VN,TN)

删除定时器

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

TN

string

定时器名称

  1. 返回值

  1. 例子
cf_iot.DeleteTimer(LuaVMName,"WaitingDataTimer")

cf_iot.TimerExist(VN,TN)

判断定时器是否存在

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

TN

string

定时器名称

  1. 返回值

Boolean,true:定时器存在,false:定时器不存在

  1. 例子
local b=cf_iot.TimerExist(LuaVMName,"WaitingDataTimer")

cf_iot.SetOnMessageHandler(VN,Func)

设置虚拟机消息回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

消息回调函数

  1. 返回值

  1. 例子
local VM_OnMessage= function(data)
    cf_iot.print(json.encode(data),false)
end

cf_iot.SetOnMessageHandler(LuaVMName,VM_OnMessage)

cf_iot.SendMessage(VN,DVN,Msg)

给目标虚拟机发消息

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

DVN

string

目标虚拟机名称

Msg

table

消息内容

  1. 返回值

  1. 例子

向虚拟机"app2",发送消息

local msg={Source=LuaVMName,Dst="app2",Cont="test"}

cf_iot.SendMessage(LuaVMName,"app2",msg)

common

模块功能:通用库函数

common.CRC16(T)

CRC16校验算法

  1. 参数

参数

类型

释义

T

table

虚拟机名称

  1. 返回值

table r, CRC校验码

  1. 例子
function crc16(array)

local len=table.getn(array)

local r=common.CRC16(array)

table.insert(array, r[1])

table.insert(array, r[2])

end

local t=crc16({0x01,0x03,0x00,0x00,0x00,0x02})

common.DecToBin(I)

10进制转二进制

  1. 参数

参数

类型

释义

I

number

十进制数字

  1. 返回值

table r,string b, 二进制数组和字符串

  1. 例子
local t,s=common.DecToBin(10)

--s为”00001010”,t为{0,0,0,0,1,0,1,0}

common.HexToDec(S)

16进制字符串转10进制数字

  1. 参数

参数

类型

释义

S

string

16进制字符串

  1. 返回值

number, 10进制数字

  1. 例子
local n=common.HexToDec(“ff”)

common.HexToDec1(S)

16进制字符串转10进制数字

  1. 参数

参数

类型

释义

S

string

16进制字符串,可表示负数

  1. 返回值

number, 10进制数字

  1. 例子
local n=common.HexToDec1(“ff9b”)

--n为-101

json

模块功能:json序列化和反序列化

json.decode(S)

json字符串反序列化为table

  1. 参数

参数

类型

释义

S

string

json字符串

  1. 返回值

table/nil,table或nil(转换失败时)

  1. 例子
local FirmwareInfo=json.decode(cf_iot.GetFirmwareInfo())

if FirmwareInfo~=nil then

local IMEI=FirmwareInfo.ModuleState.IMEI

local CCID=FirmwareInfo.ModuleState.CCID

end

json.encode(T)

table序列化为json字符串

  1. 参数

参数

类型

释义

T

table

待序列化的table结构

  1. 返回值

string/nil, json字符串或nil(转换失败时)

  1. 例子
local data={a=1,b=2,c=3}

local jsonstr=json.encode(data)

if jsonstr~=nil then

end

http

模块功能:http请求、上传文件

http.Get(URL,P)

get请求

  1. 参数

参数

类型

释义

URL

sting

http请求url

P

sting

请求参数

  1. 返回值

string result,string/nil err,请求结果和错误信息

  1. 例子
result,err=http.Get(“http://www.baidu.com”,”s=1&b=2”)

If err ~=nil then

end

http.Post(URL,P)

post请求

  1. 参数

参数

类型

释义

URL

sting

http请求url

P

sting

请求参数

  1. 返回值

string result,string/nil err,请求结果和错误信息

  1. 例子
result,err=http.Post(“http://www.baidu.com”,”s=1&b=2”)

If err ~=nil then

end

http.Upload(URL,P,FD,FN,T)

post请求

  1. 参数

参数

类型

释义

URL

sting

http请求url

P

sting

文件路径

FD

sting

字段名称

FN

sting

文件名

T

number

上传超时,单位秒

  1. 返回值

string result,string/nil err,文件上传结果和错误信息

  1. 例子
local result,err=http.Upload(UploadUrl,storage.GetFilePath(LuaVMName,"log"),"file","log",5)

If err ~=nil then

end

http.GetUploadUrl()

获取默认上传路径

  1. 参数

  1. 返回值

string url,默认上传路径

  1. 例子
local url=http.GetUploadUrl()

mqtt

模块功能:MQTT客户端

mqtt.Publish(topic,qos,retain,payload)

mqtt消息推送

  1. 参数

参数

类型

释义

topic

sting

消息主题

qos

sting

传输的机制0/1/2

retain

boolean

是否离线时保存

payload

sting

消息内容

  1. 返回值

  1. 例子
mqtt.Publish(“/topic/test”,0,false,jsonstr)

mqtt.AddSubscribeTopic(topic)

增加订阅主题

  1. 参数

参数

类型

释义

topic

sting

消息主题

  1. 返回值

  1. 例子
mqtt.AddSubscribeTopic(“/topic/test”)

mqtt.DeleteSubscribeTopic(topic)

删除订阅主题

  1. 参数

参数

类型

释义

topic

sting

消息主题

  1. 返回值

  1. 例子
mqtt.DeleteSubscribeTopic(“/topic/test”)

mqtt.SetOnMessageHandler(VN,Func)

设置mqtt消息回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

消息回调函数

  1. 返回值

  1. 例子
local mqtt_OnMessage = function(msg)--消息处理函数

local Toppic=msg.Toppic

local tb=json.decode(msg.Payload)

end

mqtt.SetOnMessageHandler(LuaVMName,mqtt_OnMessage)--设置消息处理回调函数

mqtt.GetMQTTSettings()

mqtt设置参数

  1. 参数

  1. 返回值

table,包含ClientID,UserName,Password,SubscribeTopic,PublishTopic

  1. 例子
Local data=mqtt.GetMQTTSettings()

cf_iot.print(json.encode(data),false)

websocket

模块功能:websocket客户端

websocket.SendMessage(payload)

websocket消息推送

  1. 参数

参数

类型

释义

payload

sting

消息内容

  1. 返回值

  1. 例子
websocket.SendMessage(jsonstr)

websocket.SetOnMessageHandler(VN,Func)

设置websocket消息回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

消息回调函数

  1. 返回值

  1. 例子
local websocket_OnMessage = function(msg)--消息处理函数

local msgObj=json.decode(msg)

local channel=msgObj.channel

if channel~=nil

then

local DeviceNo=msgObj.DeviceNo

local Data=msgObj.Data

end

end

websocket.SetOnMessageHandler(LuaVMName,websocket_OnMessage)--设置消息处理回调函数

storage

模块功能:文件循环存储、日志

storage.WriteByteToFile(VN,DATA)

数据写入到虚拟机存储目录中的当天文件,磁盘满时,自动清理旧文件

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

DATA

table

消息内容

  1. 返回值

  1. 例子
storage.WriteByteToFile(LuaVMName,data.byteArray)

storage.GetFilePath(VN,FN)

获取文件名在虚拟机存储目录中的完整路径

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

FN

string

文件名称

  1. 返回值

string,文件完整路径

  1. 例子
local path=storage.GetFilePath(LuaVMName,"20210711")

storage.GetFileList(VN)

获取虚拟机存储目录中的文件列表

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

  1. 返回值

string,文件列表,json字符串

  1. 例子
local json=storage.GetFileList(LuaVMName)

storage.ClearPartialStorage(VN,Count)

清除虚拟机存储目录中指定数量的文件

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Count

number

清除文件数量

  1. 返回值

  1. 例子
storage.ClearPartialStorage(LuaVMName,10)

storage.WriteByteToLog(VN,DATA)

数据写入到虚拟机存储目录中的日志文件,磁盘满时,自动清理旧的数据文件

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

DATA

table

消息内容

  1. 返回值

  1. 例子
storage.WriteByteToLog(LuaVMName,data.byteArray)

storage.ClearLog(VN)

清空虚拟机存储目录中日志文件内容

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

  1. 返回值

  1. 例子
storage.ClearLog(LuaVMName)

storage.GetLogSize(VN)

获取虚拟机存储目录中日志文件大小

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

  1. 返回值

number,日志文件大小

  1. 例子
local size=storage.GetLogSize(LuaVMName)

hardware

模块功能:AT、短信、串口

hardware.SendAt(cmd,Formatter,Timeout)

发送AT指令

  1. 参数

参数

类型

释义

cmd

string

at命令

Formatter

string

格式化器

imei:提取imei

ccid:提取ccid

CSQ:提取信号值

Revision:提取版本号

Timeout

number

超时,单位秒

  1. 返回值

string,AT响应内容

  1. 例子
local atResponseStr=hardware.SendAt("at+cgsn\r","",100)

local Revisionstr=hardware.SendAt("ati\r","Revision",100)

local IMEIstr=hardware.SendAt("at+cgsn\r","imei",100)

local CCIDstr=hardware.SendAt("at+qccid\r","ccid",100)

local CSQstr=hardware.SendAt("at+csq\r","CSQ",100)

hardware.SendSMS(NUM,Content)

发送文本短信

  1. 参数

参数

类型

释义

NUM

string

号码

Content

string

内容

  1. 返回值

  1. 例子
hardware.SendSMS("15395016712","send sms")

hardware.SetOnSMSHandler(VN,Func)

设置短消息回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

消息回调函数

  1. 返回值

  1. 例子
local LteModule_OnSMS = function(msg)--短信处理函数
    local info="sms:" .. msg.No .. ":" .. msg.Content
    mqtt.Publish("CloudEmbedded/lua/print",0,false,info)
end

hardware.SetOnSMSHandler(LuaVMName,LteModule_OnSMS)--设置短信处理回调函数

hardware.SetOnGPSHandler(VN,Func)

设置GPS回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

消息回调函数

  1. 返回值

  1. 例子
local Gps_data={Longitude=0,Latitude=0,N_S="",E_W="",Speed=0,Direction=0,Mode="",DateTime=""}

local GPSModular_OnGPS = function(data)--gps处理函数
    Gps_data.Longitude=data.Longitude
    Gps_data.Latitude=data.Latitude
    Gps_data.N_S=data.N_S
    Gps_data.E_W=data.E_W
    Gps_data.Speed=data.Speed
    Gps_data.Direction=data.Direction
    Gps_data.Mode=data.Mode
    Gps_data.DateTime=data.DateTime
    mqtt.Publish("CloudEmbedded/lua/print",0,false,json.encode(Gps_data))
end

hardware.SetOnGPSHandler(LuaVMName,GPSModular_OnGPS)--设置gps处理回调函数

hardware.SetSerialOnDataHandler(VN,PN,Func)

设置串口数据回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

PN

string

串口号

Func

function

消息回调函数

  1. 返回值

  1. 例子
local Serial1_OnData= function(data)--串口1数据处理函数

--16进制字符数组 data.hexArray

--byte数组data.byteArray

end

hardware.SetSerialOnDataHandler(LuaVMName,”Serial1”,Serial1_OnData)

hardware.SetHardwareOnEvent(VN,Func)

设置硬件事件回调函数

  1. 参数

参数

类型

释义

VN

string

虚拟机名称

Func

function

回调函数

  1. 返回值

  1. 例子
local Hardware_OnEvent= function(data)

    local portName=data.portName

    local EventName=data.EventName

    local Message=portName ..":".. EventName .. ":" .. data.Message

end

hardware.SetHardwareOnEvent(LuaVMName,Hardware_OnEvent)

hardware.SerialOpen(PN,BD,DB,PS,SB,RT)

串口打开

  1. 参数

参数

类型

释义

PN

string

串口号

BD

number

波特率

DB

number

数据位

PS

string

校验位

SB

number

停止位

RT

number

读超时、单位毫秒

  1. 返回值

  1. 例子
hardware.SerialOpen("Serial1",9600,8,"None",1,100)

hardware.SerialWriteData(PN,DATA)

向指定串口写16进制字符串

  1. 参数

参数

类型

释义

PN

string

串口号

DATA

string

16进制字符串

  1. 返回值

  1. 例子
hardware.SerialWriteData("Serial1","01 05 00 00 00 00 CD CA")

hardware.SerialWriteDataByte(PN,DATA)

向指定串口写二进制数据

  1. 参数

参数

类型

释义

PN

string

串口号

DATA

table

  1. 返回值

  1. 例子
hardware.SerialWriteDataByte("Serial1",{0x01,0x05,0x00,0x00,0xFF,0x00,0x8C,0X3A})

hardware.SetSerialDataRoute(Route)

串口数据路由

  1. 参数

参数

类型

释义

Route

number

0:服务器,1:lua虚拟机

  1. 返回值

  1. 例子
hardware.SetSerialDataRoute(1)

hardware.SetSerialWriteDataSleep(S)

设置串口发送数据包后延迟时间,单位毫秒

  1. 参数

参数

类型

释义

S

number

延迟时间

  1. 返回值

  1. 例子
hardware.SetSerialWriteDataSleep(200)

media

media.SearchAllIPCamera()

启动onvif搜索摄像机

  1. 参数

  1. 返回值

  1. 例子
media.SearchAllIPCamera()

media.GetIPCameraParameters(IP)

获取摄像机信息

  1. 参数

参数

类型

释义

IP

string

摄像机IP或为空字符串

  1. 返回值

string,摄像机信息

  1. 例子
local jsonstr=media.GetIPCameraParameters("")

media.GetIPCameraState(IP)

获取摄像机状态信息

  1. 参数

参数

类型

释义

IP

string

摄像机IP或为空字符串

  1. 返回值

string,摄像机状态信息

  1. 例子
local jsonstr=media.GetIPCameraState("")

media.Screenshot(SN,KEY,FN,FP,HP)

采集图像

  1. 参数

参数

类型

释义

SN

string

摄像机序列号

KEY

string

码流标识符

FN

string

文件名

FP

string

ftp上传路径

HP

string

http上传路径

  1. 返回值

  1. 例子
media.Screenshot("007D50117625","SecondStreamProfileToken_640_352","testScreenshot","/Media",”/upload”)

media.VideoRecording(SN,KEY,FN,FP,HP,D,T)

视频录制

  1. 参数

参数

类型

释义

SN

string

摄像机序列号

KEY

string

码流标识符

FN

string

文件名

FP

string

ftp上传路径

HP

string

http上传路径

D

number

视频录制时长

T

string

视频文件类型,avi/flv

  1. 返回值

  1. 例子
media.VideoRecording("007D50117625","SecondStreamProfileToken_640_352","testScreenshot","",”/upload”,10,”flv”)

media.StartPushStream(SN,KEY,SURL,HURL,RURL,FURL)

视频推流

  1. 参数

参数

类型

释义

SN

string

摄像机序列号

KEY

string

码流标识符

SURL

string

推流地址

HURL

string

RURL

string

FURL

string

  1. 返回值

  1. 例子
media.StartPushStream("007D50117625","SecondStreamProfileToken_640_352","rtmp://tx.direct.huya.com/huyalive/1199558764847?seq=1605155499051&type=simple","","","")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值