Telit xE910 AT 接口
Telit 910 系列模块已更新,加入了将应用程序接入物联网设备管理门户。此 API 允许您使用一套全新的 AT 命令,轻松地对 Telit 910 系列模块上构建的任何设备进行功能扩展。
ME910 不支持 AT 命令
支持的模块包括:
- LE910
- HE910
- UE910
- GE910
支持大部分 TR50 命令。
只能使用应用程序令牌进行身份验证,无法使用用户凭据进行连接。
//为调制解调器设置 APN。
AT+CGDCONT=1,"IP","internetm2m.air.com"
//启动 PDP 上下文(IP 连接)
AT#SGACT=1,1
//配置连接到物联网设备管理门户
//设置保存在 NVM 中,只需设置一次。
AT#DWCFG=open-api.devicewise.com,0,b2Z4JLWY3d8K8Ome
//连接到物联网设备管理门户
AT#DWCONN=1
//发送 property.publish API 调用,提交“temp”属性数据。
AT#DWSEND=0,property.publish,key,temp,value,22.5
API 参考
| #DWCFG – 配置 deviceWISE 参数 | ||
|---|---|---|
| AT#DWCFG=[<serverUrl>[,<deviceIDSelector>[,<appToken>[,<security>[,<heartBeat>[,<autoReconnect>[,<overflowHandling>[,<atrunInstanceId>[,<serviceTimeout>[,<unused_1>[,<unused_2>[,<unused_3>]]]]]]]]]]]] | 此命令用于设置与 deviceWISE 功能相关的参数 参数: <serverUrl>- 以 address:port 的形式表示物联网设备管理门户实例 URL 的字符串参数。 <deviceIDSelector>0 – 1 (0=IMEI 1=CCID/ESN),如果未安装 SIM 卡或 CDMA ID,则基本为 0 <appToken> - 管理门户中提供的安全应用程序令牌,通常为 16 个字符的字符串。 <security> - 表示是否启用 SSL 加密的标志。 0 – 已禁用 SSL 加密(默认) 1 – 已启用 SSL 加密 如果需要启用 SSL 加密,则必须按以下步骤进行 某些初始设置。更多详细信息请参阅“SSL/TLS 用户指南”。 需要按以下方式启用 SSL 通道: AT#SSLEN=1,1 OK 如果需要服务器认证,则 #SSLSECCFG必须设置 如下: AT#SSLSECCFG=1,0,1,0 OK 然后,CA 证书(DER 格式)必须存储如下: AT#SSLSECDATA=1,1,1,<size> > …………………. // 存储 CA 证书 OK 只允许以上列出的 SSL 配置命令。安全模式下的 DW 连接无法同时用于任何 SSL 连接的启动命令(包括 SSL 套接字、FTPS、安全 SMTP 和 HTPS)。 <heartBeat> - 如果在 heartbeat 字段中指定的秒数内未接收到任何数据包,则将发送 heartbeat 消息,以保持连接活动。 默认:60 范围:10 - 86400 <autoReconnect> - 表示连接管理器是否应自动重新连接至服务的标志。 0 – 已禁用自动重新连接 1 – 延迟自动重新连接 - 下次发送时重新连接,以及每 3600 秒重新连接一次。 2 – 适度自动重新连接(默认)- 每 120 秒重新连接一次,第一天后每 3600 秒重新连接一次。 3 – 主动自动重新连接 - 每 120 秒重新连接一次。 <overflowHandling> - 表示数据管理中处理溢出的方法的标志。 0 – FIFO(默认) 1 – LIFO <atrunInstanceId> - 由服务用于运行 AT 命令的 AT 实例。 默认 4 范围 0 - 4 <serviceTimeout> - 定义了服务向服务器发出请求的最大时间间隔,以秒为单位。 默认 5 范围 1 - 120 |
|
|
AT#DWCFG? |
Read 命令以如下格式返回当前设置: #DWCFG:<serverUrl>,<deviceIDSelector>,<appToken>,<security>,<heartBeat>,<autoReconnect>,<overflowHandling>,<atrunInstanceId>,<serviceTimeout>,0,0,0 |
|
|
AT#DWCFG=? |
Test 命令返回<deviceIDSelector>, <security>, <heartBeat>, <AutoReconnect>、<atrunInstanceId>和<serviceTimeout>参数支持的范围,以及 <serverUrl> 和<appToken>参数的最大长度。 | |
| #DWCONN – 连接至物联网设备管理门户 | ||
|---|---|---|
|
AT#DWCONN=<connect> |
Set 命令用于与物联网设备管理门户连接/断开连接。\ 参数: <connect> - 与 连接/断开连接的标志 物联网设备管理门户
|
|
|
AT#DWCONN? |
Read 命令以如下格式返回所有参数的当前设置: #DWCONN: <connect>>,<status> 其中: <connect>定义如前 <status> 指真实的连接状态。值:
|
|
|
AT#DWCONN=? |
Test 命令用于报告所有参数值支持的范围 |
|
| #DWSTATUS – 查询连接状态 | ||
|---|---|---|
|
AT#DWSTATUS |
Execution 命令返回连接状态,包括某些运行时统计信息。 请注意,所有的统计信息都应存储在 RAM 中,而不是 NVM 中。
云将返回通用结构
#DWSTATUS:<connected><lastErrorCode>,<latency>,<pktsIn>,<pktsOut>,<bytesIn>,<bytesOut> <connected>:3 = 正在等待连接,2 = 已连接,1 = 正在尝试连接,0 = 已断开连接 <lastErrorCode>:客户端遇到的最后一个错误代码 <latency>:最后一次请求和答复之间测量到的毫秒数。 <pktsIn>:服务器追踪到的已接收的数据包数量 <pktsOut>:已发送的数据包数量。 <bytesIn>:已接收的字节数,TCP/IP 负载 <bytesOut>:已发送的字节数。 |
|
|
AT#DWSTATUS=? |
Test 命令用于报告 OK结果代码 |
|
|
#DWSEND – 发送数据至物联网设备管理门户 |
||
|---|---|---|
| AT#DWSEND=<type>,<param_1>[,<param_2>[,…[<param_n>]]] | Execution 命令允许将格式化的数据发送至物联网设备管理门户。 参数: <type> - 要发送的消息类型的类型代码。(0 代表正常请求,1 代表方法请求,2 代表方法更新,3 代表方法确认)
类型 0 的消息格式: <param_1> - 命令 – 要执行的 api 命令。 <param_i> - 表示第 i 个参数的字符串参数
类型 1 的消息格式: <param_1> - “thingKey” – 要执行的物的键值。 <param_2> - 超时 – 在返回请求错误之前等待的时间(单位:秒)。 <param_3> - 方法 – 要执行的物的方法键值。 <param_4> - 是否单项方法 – 0 或 1。 如果这些实例中不能同时有多个,则为 1。 <param_5+> - 方法的参数。表示第 i 个参数的字符串参数,其中 i=1,…,20。
类型 2 的消息格式: <param_1> - ID – 方法实例的标识符。 <param_2> - 消息 – 表示该方法的当前状态的消息。
类型 3 的消息格式: <param_1> -ID – 方法实例的标识符。 <param_2> - 状态 – 执行的整数结果状态。0 是 OK 的保留值。 <param_3 when status is set to non-zero>- 与状态关联的错误消息。 <param_3 when status is set to zero>- 方法的返回参数。 应使用键值对。 param_i应表示元素的名称,param_i+1应表示元素的值。
|
|
| AT#DWSEND=? | Test 命令用于报告 <ttype> 参数的最大长度。 | |
|
#DWSENDR – 发送原始数据至物联网设备管理门户 |
||
|---|---|---|
|
AT#DWSENDR=<dataLen> |
Execution 命令允许发送原始数据至物联网设备管理门户。 内容必须是有效的 JSON。
参数: <dataLen> - 要发送的字节数 范围:1 - 1500
该模块会用提示 <greater_than><space> 响应命令,并等待数据发送。 当选中<dataLen>字节发送完成后,操作将自动完成。 如果数据发送成功,则响应为 OK。 如果由于某个原因数据发送失败,则会报告错误代码。 对 AT#DWSENDR命令的响应会报告能够标识发送的 <msgId>值。接收队列也有 20 条消息的限制。 如果队列已满,则后续仍能成功发送,但会丢弃该特定请求的响应,直到从该队列中删除某个项为止(请参见命令 AT#DWRCV 和 AT#DWRCVR)。注意:只有当已用 AT#DWSENDR打开连接时,才可以使用 AT#DWCONN |
|
|
AT#DWSENDR=? |
Test 命令用于报告<dataLen>参数值支持的范围 | |
| #DWRCVR – 接收来自物联网设备管理门户的数据 | ||
|
AT#DWRCV=<msgId> |
Execution 命令允许用户读取来自物联网设备管理门户的原始数据;该模块会收到 URC #DWRING 对这些数据的通知。.
参数: <msgId> - 要接收的数据消息的索引,如 URC #DWRING 对这些数据的通知。 范围:>=1
如果接收到的数据是AT#DWSEND 先前发出的数据发送的结果,则 <msgId>值与 <msgId>的应答中报告的 AT#DWSEND 先前发出的数据发送的结果相等。
传入的服务器数据由 URC #DWRING 对这些数据的通知。以如下格式通知:
#DWRING: <type>,<msgId>,<len> 其中: <type> - - 要接收的消息类型 <msgId> - 要接收的数据消息的索引 <len> - 要接收的数据消息的长度
如果传入的数据用AT#DWRCV接受,则会接收格式化的数据并以如下 URC 显示:
#DWDATA: <msgId>,<error>,<len>,<param_1>[,<param_2>[,…[,<param_n>]]] 其中: <msgId>- 定义如上 <error> - 要接收的消息的错误代码,如果没有错误,则为 0。 <len>- 定义如上 <param_i> - 表示与指定类型关联的第 i 个参数的字符串参数 只有当已用 AT#DWRCV打开连接时,才可以使用AT#DWCONN,否则 ME 将引发错误。 如果接收到的数据是AT#DWSEND先前发出的数据发送的结果,则可以只使用 AT#DWRCV命令读取,而不用 AT#DWRCVR命令(即:AT#DWRCV与AT#DWRCVR不可互换)。 |
|
|
AT#DWRCV=? |
Test 命令用于报告所有参数值支持的范围。 |
|
| #DWRCVR - 接收来自服务的原始数据 | ||
| AT#DWRCVR=<msgId> | Execution 命令允许用户读取来自物联网设备管理门户的原始数据; URC #DWRING 对这些数据的通知。.
参数: <msgId>- 要接收的数据消息的索引,如 URC#DWRING 对这些数据的通知。 范围:>=1 如果接收到的数据是先前数据发送的结果(由AT#DWSENDR),那么<msgId>值与<msgId>的应答中报告的AT#DWSENDR. 传入的服务器数据由 URC#DWRING 对这些数据的通知。以如下格式通知: #DWRING: <type>,<msgId>,<len> 其中: <type> - 要接收的数据消息的类型 <msgId>- 要接收的数据消息的索引 <len> - 要接收的数据消息的长度
如果传入的数据用AT#DWRCVR接受,则会接收数据并以如下 URC 显示:
#DWRDATA: <msgId>,<len>,<data> 其中: <msgId>- 定义如上 <error>- 要接收的消息的错误代码,如果没有错误,则为 0。 <len>- 定义如上 <data>- 数据来自物联网设备管理门户 只有当已用AT#DWRCVR打开连接时,才可以使用AT#DWCONN,否则 ME 将引发错误。 如果接收到的数据是AT#DWSENDR先前发出的数据发送的结果,则可以只使用AT#DWRCVR命令读取,而不用AT#DWRCV命令(即:AT#DWRCV与AT#DWRCVR不可互换)。 |
|
|
AT#DWRCVR=? |
Test 命令用于报告所有参数值支持的范围。 | |
| #DWLRCV - 列出有关 物联网设备管理门户的挂起消息的信息 | ||
| AT#DWLRCV | Execution 命令允许用户以如下格式获取来自物联网设备管理门户的挂起消息的相关信息:
#DWLRCV: <msg_number>[,<msgId_1>,<msg_1_len>[,<msgId_2>,<msg_2_len>[,……<msgId_n>,<msg_n_len>]]]
其中: <msg_number> - 来自 的挂起消息的数量 物联网设备管理门户 范围:>=0 <msgId_i> - 要接收的第 i 条数据消息的索引 <msg_i_len> - 要接收的第 i 条数据消息的长度
只有当已用 AT#DWCONN 打开连接时,才可以使用 AT#DWLRCV,否则 ME 将引发错误。 |
|
| AT#DWLRCV=? | Test 命令用于报告OK结果代码 | |
| #DWEN - 启用代理功能 | ||
| AT#DWEN=<feat>,<en>[,<option1>[,<option2>[,<option3>[,<option4>[,<option5>]]]]] | Set 命令允许启用/禁用最多 8 个不同的 deviceWISE 功能。
参数: <feat> - 要启用或禁用的功能;范围 (0-7) 0 – 远程 AT 命令 1 – 位置报告 2 … 7 – 保留,以备将来使用。 <en> - 启用或禁用功能 0 – 禁用功能 1 – 启用功能 <optionX>(其中 X=1,..,5)- 基于功能的可选参数(字符串) 注:功能 0(远程 AT 命令)没有可选参数。 该<en>值只有在设备开机或重新启动后首次连接至物联网设备管理门户 (AT#DWCONN=1) 时,才需要考虑。 |
|
|
AT#DWEN? |
Read 命令以如下格式返回每个功能的当前设置: #DWEN: <feat>,<en>,<option1>,<option2>,<option3>,<option4>,<option5> |
|
| AT#DWEN=? | Test 命令用于报告参数值支持的范围<feat>与<en>参数支持的范围,以及<optionX>(其中,X=1,..,5)参数的最大长度 | |
配置 API
在连接至平台前,请务必配置 API,使其连接至正确的物联网设备管理门户实例,并具有正确的安全凭据以连接至您的帐号。 要配置 API,有两个 AT 命令(AT#DWCFG 和 AT#DWEN)必须在发出连接 (AT#DWCONN) 前设置。 配置 API 只需进行一次调用,由于设置持续保存在 NVM(非易失性内存)中,因此在模块断电时也可以保存任何设置。 在建立连接前,您应当始终调用这两个 API。 如有疑问,请勿指定可选参数。
远程 AT 支持
API 的一种特殊功能是能够在物联网设备管理门户中启用远程 AT 命令支持。 您可以使用远程 AT 支持,通过通过物联网设备管理门户来执行 AT 命令,从而轻松地诊断连接问题或执行远程配置更改。 要启用此功能,需要调用“AT#DWEN=0,1”以启用此支持。 启用或禁用此功能只有在建立连接时生效。
单个 <param_i>的长度没有限制,但 AT 命令字符串的总长度有限制,不得超过 400 个字符。如果超过此阈值,就会引发错误。
接收队列也有 20 条消息的限制。如果队列已满,则后续仍能成功发送,但会丢弃该特定请求的响应,直到从该队列中删除某个项为止(请参见命令 AT#DWRCV 和 AT#DWRCVR)。