跳转至

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|无返回值|