收藏官网首页
查看: 2663|回复: 5

[资料] GAgent详解

发表于 2016-12-22 16:28:02 | 显示全部楼层 |阅读模式
教您5分钟接入机智云,实现傻瓜式开发
GAgent是运行在各种通讯模组上的一款应用程序(固件),可以提供上层应用(手机APP等控制端、云端)到产品设备的双向数据通讯,此外,还提供对设备的配置入网、发现绑定、程序升级等功能。
产品开发者使用GAgent后,只需要关心产品的业务逻辑开发,不用关心数据的通讯功能开发,大大降低了开发的难度。该固件遵循以下协议《机智云平台标准接入协议之MCU与WiFi模组通讯》、《机智云平台标准接入协议之设备与云端通讯》、《机智云平台标准接入协议之App与设备通讯》。
GAgent功能概述

GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。可将GAgent移植到WiFi模组、GPRS模组、PC端等。目前机智云提供由机智云移植的WiFi模组对应固件有:汉枫LPB100乐鑫8266、汉枫LPT120、高通4004 、RealTek 8711AM 、庆科3162等。
GAgent接入机智云流程1.设备上电
A、GAgent请求设备信息
B、回复GAgent设备信息
C、设备正常工作,需回复GAgent发出的心跳包
D、GAgent网络状态发生变化通知mcu。
2.配置入网
配置入网:使设备连接路由器,目前主要有3种配网方式airkiss(微信)、airlink、softap。
3.搜索绑定设备控制设备前必须绑定设备,WIFI普遍采用局域网发现绑定设备方式,而gprs模组由于没有局域网,只能采用扫码绑定。
4.下发、上报设备数据
下发设备数据:一般指的是APP、云端控制设备。局域网内APP可以选择是否经过云端再下发给GAgent或者不经过云端直接下发给GAgent。
上报设备数据:一般指的是设备主动上报当前状态,当设备MCU收到WiFi模组控制产生的状态变化,设备MCU应立刻主动上报当前状态,发送频率不受限制。但如设备的状态的变化是由于用户触发或环境变化所产生的,其发送的频率不能快于6秒每次。建议按需上报,有特殊上报需求请联系机智云。
5.GAgent OTA流程
GAgent OTA是指通过机智云官网创建远程推送GAgent固件规则后,通知当前模组更新到对应新固件。GAgent OTA有两种触发动作:云端主动通知OTA动作;GAgent连接云端检查是否需要OTA。
6.MCU OTA流程
MCU OTA是指通过机智云官网创建远程推送MCU固件规则后,通知当前MCU更新到对应新固件。MCU OTA过程,即GAgen向MCU进行大文件传输。
7.MCU上传大文件至机智云
设备采集的数据过大时,MCU可以通过GAgent向机智云传输大文件。上传到机智云后,可通过相应接口接收。目前APP暂不支持获取MCU上传的大文件。
8.产测流程
产测主要应用在设备生产检测过程中,对设备检测的一种方法。目前产测适用于WiFi模组,不适用GPRS模组。
GAgent关键策略1.重启与重置命令什么时候用?
当GAgent在正常工作中因为某些因素而长时间无法连接云端,需要重启模组,可以由设备使用者手动重启设备,也可以由MCU主动发送命令重启Wifi模组。此外,GAgent有异常处理策略,当出现异常时,会自动重启。
重置指擦除GAgent保存的DID、SSID、密码等信息。发送置命命令后,Wifi模组会自行重启。主要应用场景:当设备从A用户转移到B用户,B用户不希望A用户控制设备。
2.可绑定时间怎么用?
机智云设备绑定机制:APP与设备在同一局域网,如果GAgent没有设定绑定时间,则任意装有相关APP用户随时都能绑定设备,存在一定安全隐患。设备绑定时间,用户在可绑定时间内可以绑定设备,提高了安全性。
3.局域网、广域网心跳及离线判断条件。
局域网:
APP与GAgent心跳:4s一次,三次超时离线。
广域网:
APP与云端心跳:55s一次,三次超时离线。
GAgent与云端心跳:55s一次,三次超时离线。
4.WiFi模组配网网络环境要求
  • .部分WiFi模组无法识别路由器ssid为中文,建议将路由器ssid设置为英文。
  • .路由器加密方式建议采用AES加密
  • .关闭AP隔离
5.WiFi模组连接路由器策略
  • .缓存最近一次连接成功的路由热点(不关心是否连接外网成功)
  • .使用当前的ssid和pwd连接路由器,失败后立即重试,如果重试超过30S都连接不成功,则尝试连接最近一次连接成功的路由热点(当前热点与最近一次连接成功热点不同)。如果仍然失败,则交替尝试连接当前热点和最近一次成功连接的热点。
  • .连接路由超过2分钟,仍然失败时,以STA模式重启模组,重新开始上一步动作。
  • .连接成功,当前ssid/pwd和连接成功ssid/pwd更新。
    备注:当前ssid和最近连接成功的ssid可能是同一个

6.配网策略说明
  • .收到配置入网命令后,进入配置(softAP/AirLink)模式,等待接收ssid和pwd;
  • .成功获取到ssid和pwd,则自动连接路由器,连接路由策略见上;
  • .如果使用获取到的ssid和pwd成功连上路由,则发送配置成功包(可能会重启);
  • .airlink超时自动进入softAP配置模式,softAP也超时,才认为是配置超时退出;
  • .获取ssid/pwd超时退出,则连接最近一次连接成功的路由热点,连接路由策略见上;
  • .若没有缓存热点,则进入无网模式(STA & disconnect)。无网模式不保存,下次启动后不进入无网模式。
7.上电入网策略
  • .上电后,若没有指定工作模式,则以STA模式启动,自动连接路由器,连接路由器策略见上;
  • .如果没有ssid信息,则进入softAP配置模式,配置策略见上;
8.掉线重连策略
  • .在连接路由正常情况下,掉线后立即重连。
  • .若连接失败,第一次立即重连,之后每次重连间隔每次累加10秒,即10秒,20秒,30秒……。
  • .连接10次仍然失败时,重新通过机智云获取设备连接域名。获取域名成功后,进行DNS解析
  • .解析成功后,若ip地址相较之前ip有变化,立即重连云端,重连时间从0开始重新累加。
  • .解析成功后,若ip地址相较之前ip无变化,继续按照之前的重连间隔进行累加重连;
  • .当重连间隔增加到10分钟时,不再累加,以后每次重连间隔保持在10分钟;
  • .累积1个小时没连上云端,则重启(无小循环连接情况下,2分钟后重启)
  • .如果连接路由器不成功,不尝试重连云端。
  • .恢复连接路由器后,立即重连云端,重连时间从0开始。
  • .若连接失败,遵循上面连接路由正常的重连策略。
备注:云端掉线的重启策略可定制,需要考虑小循环的优先级。若小循环优先级高,云端掉线重启理解重启;若小循环优先级中,云端掉线重启仅在无小循环客户端连接持续10分钟的情况下重连;若小循环优先级低,云端掉线重启可以立即重启。
9.路由断连恢复策略
  • .路由断连后,模组进入本地模式(小循环、大循环不可用);
  • .重连路由成功后进入正常工作模式(小循环、大循环可用),重启小循环服务,重启大循环服务;
  • .断开路由连接超过2分钟仍然没有恢复路由器连接,模组重启自身。
10.OTA策略
GAgent OTA:包括下载、存储、校验、更新4个过程。
  • .下载:获取下载链接并判断是否需要下载(硬件版本号一致,软件版本号大于当前软件版本号),进行下载,目前不支持断点续传。下载失败后不再下载。
  • .存储:下载过程中进行分片存储到flash中缓存区域
  • .校验:进行md5值校验,确认文件传输正确
  • .更新:有主、备两个区域。替换进行更新,确认如果更新失败,程序仍然可以从另一区域正常启动。
MCU OTA:包括下载、存储、校验、传输4个过程。
  • .下载、存储、校验同GAgent OTA一样;
  • .传输:通知MCU有固件传输,并分片传输给MCU,每片需要进行sum校验,传输完成后mcu需要进行md5校验。MCU成功后重启GAgent,以让GAgent重新握手获取更新后的MCU信息。
11.云端OTA通知推送
云端只会给当时在线设备推送;对于当时不在线,或者没升级成功的设备,云端会每天推送一次
12.GPRS模组流量的基本要求
设备与机智云数据交互主要采用MQTT协议。设备与机智云数据交互的最小数据量是设备与机智云通讯的心跳。mqtt心跳是2个字节,tcp协议头是40字节,50秒一次,需要包括心跳和心跳回复。所以每50秒流量是:(40+2)*2=84 Bytes。一个月按30天算流量大概是:72K。所以GPRS模组至少需要每个月有72K流量,以保证GPRS可以正常上网。

1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2017-2-15 09:54:38 | 显示全部楼层
github上的GAgent一直都没有更新吗?
GAgent怎么支持网关类设备?

0

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2017-7-3 12:10:25 | 显示全部楼层
进入配对模式,是否会有60秒绑定时间?

点评

是的,第一次绑定等待时间比较长。 从第二次开始就在几秒钟内  详情 回复 发表于 2017-7-3 15:15
 楼主| 发表于 2017-7-3 15:15:26 | 显示全部楼层
Rock110 发表于 2017-7-3 12:10
进入配对模式,是否会有60秒绑定时间?

是的,第一次绑定等待时间比较长。
从第二次开始就在几秒钟内
1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

3

帖子

67

积分

注册会员

Rank: 2

积分
67
发表于 2017-8-15 23:19:29 来自手机 | 显示全部楼层
ESP8266模块首单6.8元
能把协议发出来吗?代码可以开源吗?

点评

最初版源码下载地址 https://github.com/gizwits/Gizwits-GAgent 目前没有更新计划了  详情 回复 发表于 2017-8-16 11:49
 楼主| 发表于 2017-8-16 11:49:45 | 显示全部楼层
nicklgw 发表于 2017-8-15 23:19
能把协议发出来吗?代码可以开源吗?

最初版源码下载地址  https://github.com/gizwits/Gizwits-GAgent   目前没有更新计划了
1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

© 2011-2017 Gizwits ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表