Net
概述
网络相关接口。网络操作均为异步操作,所有函数执行均无返回值,需要事件中处理相关网络事件。需要注意的是,UDP和TCP使用相似的调用流程,只是没有真正的连接。
常量
网络事件
当收到msg.NET_EVENT消息时,消息内容中的"event"为以下内容:
Net.ERROR
Net.READY
Net.CONN_OK
Net.CONN_FAIL
Net.CONN_CLOSE
Net.SEND_OK
Net.SEND_FAIL
Net.RECV
Net.TIME
常量 | 说明 | 消息内容 |
---|---|---|
Net.ERROR | 发生错误 | |
Net.READY | 网络准备就绪 | |
Net.CONN_OK | 连接服务器成功 | id:连接id |
Net.CONN_FAIL | 连接服务器失败 | id:连接id |
Net.CONN_CLOSE | 连接服务器关闭 | id:连接id |
Net.SEND_OK | 发送成功 | id:连接id |
Net.SEND_FAIL | 发送失败 | id:连接id |
Net.RECV | 收到数据 | id:连接id data:收到的数据,类型为bytes |
Net.TIME | 同步时间的结果 | result:同步结果,true为成功,false为失败 |
函数
init
网络初始化,以下第一种调用适应于GPRS和4G版本,第二种调用适应于以太网版本。
Net.init([ap [,username [,password [,auth]]]])
Net.init([ip [,mask [,gateway [,dns]]]])
参数 必选 类型 说明 ap false String 运营商的AP名称,最多32字节,忽略则使用CMNET username false String 用户名,最多32字节 passwrd false String 密码,最多32字节 auth false String 鉴权类型,可以为"none","pap"和"chap",忽略为"none" ip false String 指定ip地址,忽略则从dhcp服务器自动获取ip mask false String 子网掩码,忽略则为"255.255.255.0" gateway false String 网关地址,忽略则为ip地址最后一段改为1 dns false String dns服务器地址,忽略则为网关地址 return null 无返回值
connect
连接服务器。模块可以启动4个连接。UDP本身不会建立连接,为了使用统一,使用connect来初始化通讯线程,事件里的CONN_OK只是初始化就绪,也不会有CONN_FAIL和CONN_CLOSE事件.
Net.connect(id, addr, port [, mode])
参数 必选 类型 说明 id true int 连接id,范围为0-3 addr true String 服务器IP或域名,最多64字节 port true int 服务器端口,范围为1-65535 mode false String 连接模式,只能用"tcp"和"udp",默认值为"tcp" return null 无返回值
tcp
建立一个TCP的自动连接,连接失败和被动断开不会有事件,自动重新连接。当太久没有收到数据和成功发送数据也会重新连接。调用close会退出些模式。
Net.tcp(id, addr, port [, recvExpired [, sendExpired]])
参数 必选 类型 说明 id true int 连接id,范围为0-3 addr true String 服务器IP或域名,最多64字节 port true int 服务器端口,范围为1-65535 recvExpired false int 接收超时时间,单位为秒,如果该时间内没有收到数据,则重新连接服务器。该值为零时则不检测接收超时。默认值为600 sendExpired false int 发送超时时间,单位为秒,如果该时间内没有成功发送过数据,则重新连接服务器。该值为零时则不检测发送超时。默认值为600 return null 无返回值
close
关闭连接。
Net.close(id)
参数 必选 类型 说明 id true int 连接id,范围为0-3 return null 无返回值
send
发送数据,数据长度最大为1K, 超过1k会被分包发送。发大数据量时,可以关闭数据送达确认选项,但也不能太快,太快会堵塞发送队列,一般多包数据发送间隔不应小于200毫秒。
Net.send(id, data_string | data_bytes [, asked])
参数 必选 类型 说明 id true int 连接id,范围为0-3 data_string true String 发送的数据,用于发送字符串 data_bytes true bytes 发送的数据,用于发送字节流 asked false boolean 是否等待数据送达,默认为true return null 无返回值
ip
获取本地的IP地址,需在网络就绪以后调用。。
Net.ip()
参数 必选 类型 说明 return string 本地IP地址的字符串
syncTime
同步网络时间到盒子,需在网络就绪以后调用。设置特定时间请看Box.setTime。
Net.syncTime()
参数 必选 类型 说明 server false String 指定NTP服务器,忽略则用"cn.pool.ntp.org" port false int 指定NTP服务器端口,忽略则用123 timeout false int 超时时间,单位为秒,默认为3秒,如果指定为0,则直接返回成功。不管调用是否等待结果,服务器在执行完后均发送Net.TIME事件 return boolean true表示成功,false表示失败
csq
获取网络信号强度,需在网络就绪以后调用,仅GPRS和4G版本有效。
Net.csq()
参数 必选 类型 说明 return int 99表示无信号,0-31表示有信号,值越大信号越好,一般值在15以上通讯会比较正常。
updateFW
从网络上更新固件,固件必须放在http服务器上。进入更新模式后会停掉当前的网络功能,更新成功或失败都会重启盒子。以太网版本暂未实现本接口。
Net.updateFW(url, crc)
参数 必选 类型 说明 url true String 固件的url crc true int 更新文件的校验码 return null 无返回值
updateJS
从网络上更新脚本,脚本必须放在http服务器上。进入更新模式后会停掉当前的网络功能,更新成功或失败都会重启盒子。以太网版本暂未实现本接口。
Net.updateJS(url, crc)
参数 必选 类型 说明 url true String 脚本的url crc true int 更新文件的校验码 return null 无返回值
isConnected
获取当前连接状态。
Net.isConnected(id)
参数 必选 类型 说明 id true int 连接id,范围为0-3 return Boolean 当前是否连接
recvExpired
获取当前连接接收超时时间。
Net.recvExpired(id)
参数 必选 类型 说明 id true int 连接id,范围为0-3 return int 上一次接到数据到现在的时间,单位为秒
sendExpired
获取当前连接发送超时时间。
Net.recvExpired(id)
参数 必选 类型 说明 id true int 连接id,范围为0-3 return int 上一次成功发送数据到现在的时间,单位为秒
shutdown
关闭网络模块。
Net.shutdown()
|参数|必选|类型|说明| |return||null|无返回值|