芯片管理联调平台时序图
sequenceDiagram
联调平台-->>联调平台:上传芯片信息
联调平台-->>联调平台:上传正式号信息
联调平台-->>联调平台:挂起写卡任务
联调平台->>oneNet: lwm2m方式创建设备,mqtt方式不需要,nosdk不使用sdk,直接触发设备上线,写卡
空中写卡平台-->>空中写卡平台:准备
终端设备(卡)-->>终端设备(卡):开机
终端设备(卡)->>oneNet:上报imsi1
oneNet->>联调平台:imsi1上线
联调平台-->>联调平台:查找相关任务
联调平台->>oneNet:OTAreq+时间戳
oneNet->>终端设备(卡):OTAreq+时间戳
终端设备(卡)-->>终端设备(卡):准备
终端设备(卡)->>oneNet:OTAready+时间戳
oneNet->>联调平台:OTAready+时间戳
联调平台-->>联调平台:比较时间戳(超过三分钟,重新发送OTAreq)
联调平台->>oneNet:OTAStart
oneNet->>终端设备(卡):OTAStart
联调平台->>空中写卡平台:eid:旧号重写为新号
空中写卡平台->>终端设备(卡):下发指令(短信)
终端设备(卡)-->>终端设备(卡):写卡
终端设备(卡)-->>终端设备(卡):重启
终端设备(卡)->>oneNet:上报imsi2
终端设备(卡)->>空中写卡平台:上报写卡结果(短信)
oneNet->>联调平台:imsi2上线
联调平台-->>联调平台:比较imsi变化与任务关系
联调平台->>oneNet:OTAfinish
oneNet->>终端设备(卡):OTAfinish
mqtt 和 lwm2m 发送 OTAfinish 的详细处理
graph TB
id17{获取未结束的写卡任务}-->|isend=fasle存在|未结束的写卡任务;
id17-->|isend=fasle不存在|id18{获取已结束的写卡任务};
id18-->|isend=true存在|已结束的写卡任务;
id18-->|isend=true不存在|得到写卡任务;
未结束的写卡任务-->得到写卡任务;
已结束的写卡任务-->得到写卡任务;
得到写卡任务-->id1{判断写卡任务};
id1-->id2[写卡任务为空];
id1-->id3[写卡任务不为空];
id2-->id4[没有相关的写卡记录 不处理];
id6[获取onenet设备对应关系]-->|eid|id7[onenet设备对应关系];
id5{写卡指令下发状态}-->|已下发|id7{newImsi和imsi判断};
id3-->id5;
id7-->|写卡newImsi等于onenet设备对应关系的imsi|id10[下发OTAFINISH:0:];
id11{判断写卡结果}-->|写卡结果为空或者等于0|id12[修改写卡结果状态,结束写卡任务];
id10-->id11;
id5-->|未下发|id13{已发送req时长判断};
id13-->|超过三分钟|id14[下发OTAREQ];
id13-->|不超过三分钟并且已下发req|id15[不处理直接返回];
id13-->|未下发req|id14;
id7-->|写卡newImsi不等于onenet设备对应关系的imsi|id50;
id11-->|写卡结果为其它|id16[不修改写卡结果状态];
id50[写卡任务是否已结束]-->|已结束|id51[不处理直接返回]
id50-->|未结束|id13
nosdk 写卡
写卡结果存在于写卡平台,暂时未上报到联调平台