流程说明
合宙 IOT 通用报文协议 AirCloud
九、流程说明
9.1 AirCloud 连接流程
- 初始化配置:设备初始化配置,调用 setup 方法
- 调用 open 方法:启动连接流程
- 获取连接信息:调用 getip 服务,获取连接信息
- 获取服务器信息:获取成功后,获取服务器信息;失败则重复获取三次,三次都失败则返回失败
- 创建连接:创建连接,连接服务器
- 发送鉴权请求:连接成功后,发送鉴权请求
- 鉴权成功:鉴权成功后,进行状态数据上报、文件上报、接收下发数据和指令
- 启动心跳机制:启动心跳机制,定期发送心跳
- 重连机制:若连接失败,进入重连机制,先用当前连接信息重连,达到最大重连次数后重新调用 getip 服务

9.2 文件上传流程
- 调用上传接口:设备调用上传接口(upload_image/upload_audio)
- 检查 getip 服务:检查是否使用 getip 服务,若否则返回失败(手动填写 IP 不允许上传)
- 检查文件存在:检查文件是否存在,若否则返回失败
- 检查服务器连接:检查是否连接到服务器,若否则返回失败
- 检查上传配置:检查上传配置(url),若无配置则调用 getip 获取
- 上传文件:获取配置成功后,开始上传文件
- 发送通知:根据上传结果发送成功或失败通知
- 返回结果:返回上传结果

9.3 运维日志功能流程
9.3.1 初始化流程
- 初始化 excloud.setup:在 excloud.setup 时初始化运维日志功能
- 检查是否启用:检查是否启用运维日志功能,若否则返回成功但功能禁用
- 初始化 exmtn:调用 exmtn.init 初始化,若失败则返回失败并记录错误
- 初始化成功:初始化成功后,运维日志功能可用

9.3.2 日志写入流程
- 调用 excloud.mtn_log:调用 excloud.mtn_log 接口写入日志
- 检查是否启用:检查是否启用运维日志功能,若否则返回失败
- 记录日志:调用 exmtn.log 记录日志,返回成功

9.3.3 日志上传流程
- 接收上传请求:接收运维日志上传请求并处理
- 检查是否正在上传:检查是否正在上传,若是则抛弃新请求
- 发送响应:发送运维日志上传响应,启动上传任务
- 设置上传标志:设置上传标志位,扫描运维日志文件
- 遍历日志文件:遍历检查每个日志文件,若文件存在且不为空则开始上传
- 检查上传配置:检查上传配置,若无配置则调用 getip 获取
- 上传文件:获取配置成功后,调用 upload_file 上传文件
- 发送状态通知:根据上传结果发送成功或失败状态通知
- 通知上传进度:通知上传进度,若还有文件则继续上传
- 通知上传完成:所有文件上传完成后,通知上传完成并清除上传标志位

9.4 时序图
9.4.1 http+mqtt基本业务

9.4.2 http+tcp基本业务

9.4.3 http+udp基本业务
