找回密码
 注册
关于网站域名变更的通知
查看: 274|回复: 0
打印 上一主题 下一主题

Cat 1开源项目一: 从0-1设计一款TCP版本RTU(支持Modbus+GNSS)产品的软硬件全过程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
 楼主| 发表于 2024-4-12 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本文为奇迹物联量产 RTU 产品设计资料分享,主要针对嵌入式 C 语言物联网开发爱好者学习交流可帮助以下人员降低物联网产品开发门槛
物联网Cat 1产品开发初学者: 本文将介绍产品的软硬件定义、硬件设计分析、软件设计分析,并详细讲解单一功能点功能模块的验证过程和测试验证方法。通过学习本内容,初学者可以在 1-2 天内完成一款 Cat 1 产品的开发全过程,快速提升物联网产品开发的实践能力。本文也是红豆开源产品的一个实战讲解项目。
负责开发类似RTU(Cat 1 版本)功能定义的产研人员:通过本案例,你将全面了解 RTU 的设计全部功能模块拆解分析,并结合红豆开源平台(开源硬件+RTOS 开源资料),快速进行微改动,完成自己的物联网产品项目研发设计。
需要设计一款RTU产品的项目负责人:本案开源了产品设计软硬件全部设计资料,以及产品手册、AT指令手册、JSON通信协议等开发成果,可以直接转为自己量产产品设计资料,节省开发成本。




TCP版RTU(支持Modbus+GNSS)项目概述RTU(Remote Terminal Unit),中文即远程终端控制系统,负责对现场信号、工业设备的监测和控制。RTU是构成企业综合自动化系统的核心装置,通常由信号输入/出模块、微处理器、有线/无线通讯设备、电源及外壳等组成,由微处理器控制,并支持网络系统。它实现企业中央监控与调度系统对生产现场一次仪表的遥测、遥控、遥信和遥调等功能。RTU可以实现远程测控设备,通过控制现场IO控制现场设备运行。
产品定义描述 产品功能定义:传统设备需要接入云平台,在不改变传统设备的情况下,通过串口连接一个可以连接服务器的设备,在不修改传统设备的情况下,赋能其上云功能。
TCP RTU+GNSS+Modbus采用5*6贴片卡/外置SIM卡/全网通卡,支持北斗/GPS定位,支持卡基站定位,内嵌看门狗,掉线自动恢复。标准工业RS232/485接口,可以支持6-20V的宽电压输入,支持5路DO,5路DI,1路AI。
     TCP RTU+GNSS+Modbus为用户提供标准固件以及对应源码,以及对应的TCP透传、GNSS、DI、DO、AI、Modbus等功能的例程详解,用户可以快速了解如何去从0开发一个项目,快速完成自己的产品功能定义,加速开发。
产品硬件分析框图:      系统框图
暂时无法在飞书文档外展示此内容

    功能简介
    1. 电源:向SOM核心板+底板,以及扩展外设提供电源
    2. SOM核心板+底板:产品核心部分
    3. 上位机:配置设备参数。
    4. 4G天线:信号接收发送
    5. DI/DO:开关量输入,输出
    6. AI:模拟输入
    7. SOM板和底板之间的接口使用板对板连接器

硬件资料包括,SOM板原理图和PCB,主板原理图和PCB,部分组件资料。

硬件设计原理图、Layout图、BOM信息等资料详情点击下面链接🔗:硬件开发部分
产品核心板资料和产品datesheet点击如下链接🔗:1)AM430EV5 SOM板1(5*6卡)   2)Datasheet

也可以购买标准硬件进行软件开发,购买链接:https://item.taobao.com/item.htm?id=768412868192&spm=a1z10.1-c-s.w4004-25306266394.3.7c4517edPbkQLY



   软件开发分析:开发一个项目,代码量庞大。一般情况下,一个项目开发,会把项目功能拆解成为一个个功能点,逐一实现,最后形成最终产品代码。
产品软件流程分析我们的目的是做一款RTU,一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元,它将末端检测仪表和执行机构与远程调控中心的主计算机连接起来。
项目实现功能:
  • AT指令配置设备运行参数,包括:服务器连接IP、端口号;心跳包开启/关闭;心跳包内容;注册包模式;注册包内容。以及复位和查询相关配置参数指令。
  • 可随时选择进入、退出透传模式
  • 心跳保持功能,心跳间隔可配置
  • 网络重连功能
  • 理论上可以发送无限长度数据包
  • 波特率固定为115200,可以根据客户需求定制
  • 网络AT指令和JSON协议配置功能,可以通过服务器下发远程AT指令配置
  • 支持远程升级
  • 支持5路DI,DI可以配置为,上拉/下拉,初始电平,主动上报,定时上报,可以单独读某一路,可以5路同时读
  • 支持5路DO,包含,可配上拉/下拉,初始电平,重启状态,可以单独设置某一路的输出电平,也可以同时设置5路的输出电平
  • 支持1路AI,可以采集4 - 20mA的电流,可以配置阈值,按照配置触发报警,周期上报
  • 闹钟功能,DO定时执行设置动作
  • IO联动,DI/AI作为输入源,DO跟随动作,包括正向跟随、反向跟随DI;阈值内、阈值外执行相应动作
  • 支持设置50组(01H 02H 03H 04H 05H 06H)指令,设置两组(10H)指令。支持按照设置的功能码等配置,通过Modbus轮训,支持Modbus RTU,JSON三种协议格式上报。


根据RTU应该具有的的功能,代码可以分为:数据存储模块,AT指令模块,切卡模块,透传模式切换模块,TCP模块,心跳模块,掉线重连模块,GNSS模块,DI模块,DO模块,AI模块,JSON模块,闹钟模块,Modbus模块。
暂时无法在飞书文档外展示此内容

模块内拆解的功能点分析模块是根据相似的功能,把对应的代码放到同一个源文件中。每个功能算作一个功能点,不同功能点组合以来,构成了模块的主要功能。
  • 数据存储功能点:包括文件创建,初始化,读写,关闭等。
  • AT指令功能点:包括串口初始化,串口数据接收,发送,数据分析,AT指令解析
  • 切卡功能点:包括GPIO初始化,复位切卡
  • 透传模式切换功能点:包括串口初始化,串口数据接收,发送,数据分析,切换模式
  • 掉线重连功能点:包括连接状态检测,掉线重连
  • TCP功能点:包括参数配置,创建Socket,连接服务器,发送,接收数据
  • 心跳功能点:包括参数配置,定时发送
  • GNSS功能点:包括参数配置,串口初始化,串口数据接收,数据分析,模式切换,定时上报
  • DI功能点:包括参数配置,GPIO初始化,中断检测,模式切换,定时上报,中断上报
  • AI功能点:包括参数配置,ADC接口初始化,电流计算,定时上报
  • DO功能点:包括参数配置,GPIO初始化,模式切换,定时上报,跟随DI或者AI
  • 闹钟功能点:包括参数配置,定时,超时动作
  • JSON功能点:包括数据接收,解析,数据发送
  • Modbus功能点:包括参数配置,数据接收,解析,数据发送
上述模块功能点大致是按照依赖顺序来的,下面讲述的模块实现可能要基于上面的功能点来实现。
开发过程(基于红豆平台搭乐高模式开发)按照上面的分析,开发的过程就是实现一个个功能点,几个功能点完成一个模块,几个模块完成一个项目的开发。开发过程会从核心功能点验证,完整代码详解,调试三个章节来讲,如何使用服务层API或应用层组件中的代码实现功能点和模块,从而完成整个项目。在软件开发部分,我们对这个开源项目进行了模块划分,并且对每个模块拆解出相应的功能点,这个章节,我们要对所有功能点,逐一验证,拼接出我们最终的RTU产品代码。
本产品基于以上软件分析涉及以下14个功能模块:数据存储模块,AT指令模块,切卡模块,透传模式切换模块,TCP模块,心跳模块,掉线重连模块,GNSS模块,DI模块,DO模块,AI模块,JSON模块,闹钟模块,Modbus模块 。
暂时无法在飞书文档外展示此内容
这14个功能模块在红豆开源平台RTOS系统服务层组件&应用层组件都提供相关的服务,可以直接采用搭乐高开发模式。红豆平台的相关资源介绍链接:红豆平台RTOS技术架构
第一步:基于RTOS的组件快速完成每一个功能模块的验证,针对本次工程每个功能模块验证详情链接:核心功能点验证
第二步:验证完功能点和功能模块后,从0快速搭建出一个RTU工程,进行系统级联调测试。RTU工程完整代码讲解链接:完整代码详解 ;RTU工程代码调试详解链接:调试:产品固件Gitee链接:软件源码树文件介绍及Gitee链接。

本工程的代码对第一次接触红豆平台也非常友好,提供详细的代码讲解备注,例如以下:文件模块的代码,可以迅速了解上手,也可以根据自己的需求做优化改进。
int dtu_init_trans_conf(void){    //初始化连接类型    st_dtu_file_t.type = 0;    //初始化默认IP,onenet 多协议接入 tcp    sprintf(st_dtu_file_t.ip,"183.230.40.40");    //初始化端口    st_dtu_file_t.port = 1811;    //设置默认上报心跳    st_dtu_file_t.heartflag = 1;    //设置默认心跳内容为hearttest    sprintf(st_dtu_file_t.heart,"hearttest");    //设置心跳间隔时间为30s    st_dtu_file_t.hearttime = 30;    //设置默认上报注册包    st_dtu_file_t.linkflag = 1;    //设置注册包内容为"*275619#amazIoT4000mt#AP4000MT*",内容是根据onenet 多协议接入,tcp配置的脚本上报规则,上报后,onenet会不停下发    sprintf(st_dtu_file_t.link,"*275619#amaziot4000mt#AP4000MT*");    //配置网络AT指令默认前缀是"am.iot"    sprintf(st_dtu_file_t.cmdpw,"am.iot");    //三合一切卡,默认卡是    st_dtu_file_t.sim = 1;    //sim卡禁止切卡标志    st_dtu_file_t.simlock = 0;    //默认不上报gnss语句    st_dtu_file_t.gpsflag = 0;    //返回文件首地址    return 0;}工程成果下载开发成果属于项目完成后,总结出来的一些说明性文件,包括Datasheet,AT指令手册,通信协议,以及固件等,可以作为本开源项目的工程量产资料。
Datasheet
SCH的讲解和Gerber文件资料
产品BOM
AT指令手册
JSON通信协议
固件

如需下载相关资料或者需要技术交流请联系我们:


物联网技术发展日新月异,也欢迎反馈您的技术需求,我们会及时更新迭代红豆平台的技术应用能力。
欢迎同学们走进AmazIOT知识库的世界!这里是为物联网人构建的百度百科,以便帮助你更快更简单的开发物联网产品。
IoT Wiki初心:
我们在物联网 ODM 解决方案的长期实践中,一直受到物联网技术碎片化和产业资源碎片化的困扰。从产品选项、方案制定,到开发和测试,物联网碎片的技术信息一直影响着团队的效率和产品交付。为了降低重复造轮子的工作,我们开始对物联网的碎片化技术和产业资源相关产品知识进行沉淀管理。后来发现,许多同行都面临着类似的困扰,因此我们决定将内部沉淀的知识库以 Wiki 的形式开放给所有物联网行业开发者,希望能为更多的物联网人减少一些重复造轮子的工作。



部分素材来源于网络,仅用于交流学习,如有侵权请联系删除!

[size=auto;html=1;","target":"dH7YFYpH","value":""},"2K26NcYA":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1077.5","y":"425"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"2K26NcYA","parent":&quotect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"3W8LoUm3":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"908.75","y":"70"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"3W8LoUm3","parent":&quotect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"4KKRggXF":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1397.5","y":"60"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"4KKRggXF","parent":&quotect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"4WOWbQzP":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"893.75","y":"215"},"diagramCategory":"general","diagramName":"Rectangle","id":"4WOWbQzP","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"解析数据","vertex":"1"},"4owJqaiW":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"4owJqaiW","parent":"Pect1uf9","source":"fbYqtUC6","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"MhgA8QAz","value":""},"5FIapK5q":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1026.25","y":"780"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"5FIapK5q","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"5ZCNvE33":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"1122.5","y":"490"},"as":"geometry","relative":"1"},"edge":"1","id":"5ZCNvE33","parent":"Pect1uf9","source":"2K26NcYA","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"5a3SpUQL":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"193.75","y":"770"},"diagramCategory":"general","diagramName":"text","id":"5a3SpUQL","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"心跳模块","vertex":"1"},"68u6p9z2":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"68u6p9z2","parent":"Pect1uf9","source":"16A3xQgJ","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"b1hCm4Mz","value":""},"7EJGC418":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"7EJGC418","parent":"Pect1uf9","source":"nhB2lwWl","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"AaGjayCS","value":""},"7tKIILVh":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"597.5","y":"455"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"7tKIILVh","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"9ZbONQIu":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"265","y":"525"},"as":"geometry","relative":"1"},"edge":"1","id":"9ZbONQIu","parent":"Pect1uf9","source":"a6bZZufs","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;","target":"xvUVR2ya","value":""},"A2Z5GNlH":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"597.5","y":"810"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"A2Z5GNlH","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"AaGjayCS":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"582.5","y":"955"},"diagramCategory":"general","diagramName":"Rectangle","id":"AaGjayCS","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"上报GPS","vertex":"1"},"B7Bx8S8Y":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"195","y":"875"},"diagramCategory":"general","diagramName":"Diamond","id":"B7Bx8S8Y","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"心跳上报是否超时","vertex":"1"},"Bl1tRtit":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"1071.25","y":"845"},"as":"geometry","relative":"1"},"edge":"1","id":"Bl1tRtit","parent":"Pect1uf9","source":"5FIapK5q","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"ChGxoB8x":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"1370","y":"125"},"diagramCategory":"general","diagramName":"Diamond","id":"ChGxoB8x","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否有输入","vertex":"1"},"DW4yXTTi":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1026.25","y":"1035"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"DW4yXTTi","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"DeHc6R3r":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"380","y":"255"},"diagramCategory":"general","diagramName":"Rectangle","id":"DeHc6R3r","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"复位","vertex":"1"},"DpuO2lew":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"DpuO2lew","parent":"Pect1uf9","source":"g9tuXlgi","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"mWOFTN6B","value":""},"F1vbzzXm":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"961.25","y":"315"},"-1-Array":{"-0-mxPoint":{"x":"1179.25","y":"315"},"as":"points"},"as":"geometry","relative":"1"},"edge":"1","id":"F1vbzzXm","parent":"Pect1uf9","source":"rc4wFIac","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"F4Ma7dvL":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"265","y":"410"},"as":"geometry","relative":"1"},"edge":"1","id":"F4Ma7dvL","parent":"Pect1uf9","source":"mjPey3oE","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;","target":"a6bZZufs","value":"是"},"GadL7TeB":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"GadL7TeB","parent":"Pect1uf9","source":"4WOWbQzP","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"iJfuezQ6","value":""},"GlU883BR":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"380","y":"395"},"diagramCategory":"general","diagramName":"Rectangle","id":"GlU883BR","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"执行指令","vertex":"1"},"HSdTnv03":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"HSdTnv03","parent":"Pect1uf9","source":"a6bZZufs","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"GlU883BR","value":"是"},"Hw86J0Cz":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"Hw86J0Cz","parent":"Pect1uf9","source":"AaGjayCS","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"p9h23Wyz","value":""},"JIllbhYP":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1370","y":"435"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"JIllbhYP","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"JOBpCTpC":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"222.5","y":"810"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"JOBpCTpC","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"JOOhgMB2":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"JOOhgMB2","parent":"Pect1uf9","source":"TkcXIdbM","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"SF2t4kWx","value":""},"JPpRhfm8":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"267.5","y":"875"},"as":"geometry","relative":"1"},"edge":"1","id":"JPpRhfm8","parent":"Pect1uf9","source":"JOBpCTpC","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"KOlfhdHD":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"265","y":"120"},"-1-Array":{"-0-mxPoint":{"x":"440","y":"120"},"as":"points"},"as":"geometry","relative":"1"},"edge":"1","id":"KOlfhdHD","parent":"Pect1uf9","source":"DeHc6R3r","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;","value":""},"KYPQ3C3I":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"807.5","y":"599"},"diagramCategory":"general","diagramName":"Rectangle","id":"KYPQ3C3I","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"控制IO","vertex":"1"},"KapY0iJe":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"KapY0iJe","parent":"Pect1uf9","source":"xvUVR2ya","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"eYGkY755","value":"是"},"LZNaXkpW":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"596.25","y":"60"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"LZNaXkpW","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"LfNX73Tu":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"LfNX73Tu","parent":"Pect1uf9","source":"ChGxoB8x","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"jh5blLKY","value":""},"MhgA8QAz":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"205","y":"230"},"diagramCategory":"general","diagramName":"Rectangle","id":"MhgA8QAz","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"按照配置上报心跳(GPS上报)","vertex":"1"},"MlE0eEdz":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"1000","y":"750"},"diagramCategory":"general","diagramName":"text","id":"MlE0eEdz","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"闹钟模块","vertex":"1"},"MqVOoV6P":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"998.75","y":"845"},"diagramCategory":"general","diagramName":"Diamond","id":"MqVOoV6P","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否超时","vertex":"1"},"N5LGvkNZ":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"795","y":"520"},"diagramCategory":"general","diagramName":"Diamond","id":"N5LGvkNZ","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否收到DO控制","vertex":"1"},"NaBODqac":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"207.5","y":"955"},"diagramCategory":"general","diagramName":"Rectangle","id":"NaBODqac","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"上报心跳","vertex":"1"},"P4UP6zi8":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"P4UP6zi8","parent":"Pect1uf9","source":"B7Bx8S8Y","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"NaBODqac","value":""},"Pect1uf9":{"id":"Pect1uf9","parent":"Xfazc13W"},"RQ4cY7YS":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"440.0000000000002","y":"314.9999999999999"},"as":"geometry","relative":"1"},"edge":"1","id":"RQ4cY7YS","parent":"Pect1uf9","source":"GlU883BR","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"RpiAmv9c":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"RpiAmv9c","parent":"Pect1uf9","source":"UQU5kJaq","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"Xs4te6W9","value":""},"Ru76ECWF":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"953.75","y":"135"},"as":"geometry","relative":"1"},"edge":"1","id":"Ru76ECWF","parent":"Pect1uf9","source":"3W8LoUm3","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"S7t3XQrp":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"S7t3XQrp","parent":"Pect1uf9","source":"b1sGS9bJ","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"UQU5kJaq","value":""},"S9AIZaKZ":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1397.5","y":"315"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"S9AIZaKZ","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"SF2t4kWx":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"1062.5","y":"570"},"diagramCategory":"general","diagramName":"Rectangle","id":"SF2t4kWx","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"上报","vertex":"1"},"T2f0cdZp":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"641.25","y":"125"},"as":"geometry","relative":"1"},"edge":"1","id":"T2f0cdZp","parent":"Pect1uf9","source":"LZNaXkpW","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"T8ByAIPA":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"1051.25","y":"395"},"diagramCategory":"general","diagramName":"text","id":"T8ByAIPA","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"DO模块","vertex":"1"},"TkcXIdbM":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"1050","y":"490"},"diagramCategory":"general","diagramName":"Diamond","id":"TkcXIdbM","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否定时时间超时","vertex":"1"},"Txmv9FSo":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"568.75","y":"770"},"diagramCategory":"general","diagramName":"text","id":"Txmv9FSo","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"GPS模块","vertex":"1"},"UL8fl65Q":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"1415","y":"500"},"as":"geometry","relative":"1"},"edge":"1","id":"UL8fl65Q","parent":"Pect1uf9","source":"JIllbhYP","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"UQU5kJaq":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"582.5","y":"600"},"diagramCategory":"general","diagramName":"Rectangle","id":"UQU5kJaq","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"通过串口输出","vertex":"1"},"WEUcvllN":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"WEUcvllN","parent":"Pect1uf9","source":"N5LGvkNZ","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"KYPQ3C3I","value":""},"Wo96iuSu":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"Wo96iuSu","parent":"Pect1uf9","source":"kxGSa66N","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"DW4yXTTi","value":""},"Wu9ZNhBH":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"1343.75","y":"405"},"diagramCategory":"general","diagramName":"text","id":"Wu9ZNhBH","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"AI模块","vertex":"1"},"WydjEOYd":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"880","y":"30"},"diagramCategory":"general","diagramName":"text","id":"WydjEOYd","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"Modbus模块","vertex":"1"},"X29ria5W":{"-0-mxGeometry":{"-0-mxPoint":{"as":"offset"},"as":"geometry","relative":"1","x":"-0.3378","y":"-3"},"connectable":"0","id":"X29ria5W","parent":"gSWHCL8U","style":"edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];","value":"否","vertex":"1"},"Xfazc13W":{"id":"Xfazc13W"},"Xs4te6W9":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"597.5","y":"710"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"Xs4te6W9","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"YdxmV62m":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"881.25","y":"135"},"diagramCategory":"general","diagramName":"Diamond","id":"YdxmV62m","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否收到从机数据","vertex":"1"},"ZFzfcbC4":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"125","y":"440"},"-1-Array":{"-0-mxPoint":{"x":"150","y":"590"},"-1-mxPoint":{"x":"150","y":"260"},"as":"points"},"as":"geometry","relative":"1"},"edge":"1","id":"ZFzfcbC4","parent":"Pect1uf9","source":"eYGkY755","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;","target":"MhgA8QAz","value":""},"ZzAX0hfN":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"ZzAX0hfN","parent":"Pect1uf9","source":"p77PjYNp","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"fbYqtUC6","value":""},"a6bZZufs":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"192.5","y":"405"},"diagramCategory":"general","diagramName":"Diamond","id":"a6bZZufs","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否是网络AT指令","vertex":"1"},"aD1B2zUo":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"aD1B2zUo","parent":"Pect1uf9","source":"z2A1aIIm","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"rc4wFIac","value":""},"abSC7AXl":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"596.25","y":"315"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"abSC7AXl","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"adk1WGz1":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"adk1WGz1","parent":"Pect1uf9","source":"ChGxoB8x","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"xHS1Dcza","value":""},"b1hCm4Mz":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"581.25","y":"205"},"diagramCategory":"general","diagramName":"Rectangle","id":"b1hCm4Mz","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"配置信息","vertex":"1"},"b1sGS9bJ":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"570","y":"520"},"diagramCategory":"general","diagramName":"Diamond","id":"b1sGS9bJ","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否收到下行数据","vertex":"1"},"boJnUPCK":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"570","y":"30"},"diagramCategory":"general","diagramName":"text","id":"boJnUPCK","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"AT指令模块","vertex":"1"},"bw0Iq6bK":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1077.5","y":"680"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"bw0Iq6bK","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"cHeWsNkd":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"642.5","y":"875"},"as":"geometry","relative":"1"},"edge":"1","id":"cHeWsNkd","parent":"Pect1uf9","source":"A2Z5GNlH","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"cJSaUZPo":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"cJSaUZPo","parent":"Pect1uf9","source":"xHS1Dcza","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"S9AIZaKZ","value":""},"ciWABX32":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"220","y":"649"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"ciWABX32","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"dH7YFYpH":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"222.5","y":"1065"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"dH7YFYpH","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"eYGkY755":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"205","y":"560"},"diagramCategory":"general","diagramName":"Rectangle","id":"eYGkY755","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"TCP上报透传数据","vertex":"1"},"fbYqtUC6":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"205","y":"130"},"diagramCategory":"general","diagramName":"Rectangle","id":"fbYqtUC6","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"进入透传","vertex":"1"},"g9tuXlgi":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"1355","y":"580"},"diagramCategory":"general","diagramName":"Rectangle","id":"g9tuXlgi","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"上报","vertex":"1"},"gSWHCL8U":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"417.5","y":"350"},"as":"geometry","relative":"1"},"edge":"1","id":"gSWHCL8U","parent":"Pect1uf9","source":"mjPey3oE","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;","target":"MhgA8QAz","value":""},"i3Kz0q80":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"i3Kz0q80","parent":"Pect1uf9","source":"b1hCm4Mz","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"abSC7AXl","value":""},"iJfuezQ6":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"908.75","y":"325"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"iJfuezQ6","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"jG2Z0r5O":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"jG2Z0r5O","parent":"Pect1uf9","source":"MqVOoV6P","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"kxGSa66N","value":""},"jgdc0WZW":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"jgdc0WZW","parent":"Pect1uf9","source":"b1sGS9bJ","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"N5LGvkNZ","value":""},"jh5blLKY":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"1580","y":"125"},"diagramCategory":"general","diagramName":"Diamond","id":"jh5blLKY","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否定时时间超时","vertex":"1"},"kxGSa66N":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"1011.25","y":"925"},"diagramCategory":"general","diagramName":"Rectangle","id":"kxGSa66N","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"按照配置动作","vertex":"1"},"mWOFTN6B":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"1370","y":"690"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"mWOFTN6B","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"mjPey3oE":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"192.5","y":"330"},"diagramCategory":"general","diagramName":"Diamond","id":"mjPey3oE","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否收到透传数据","vertex":"1"},"nhB2lwWl":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"570","y":"875"},"diagramCategory":"general","diagramName":"Diamond","id":"nhB2lwWl","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"GPS上报是否超时","vertex":"1"},"nx9GjPir":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"nx9GjPir","parent":"Pect1uf9","source":"rVBMKNOU","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"g9tuXlgi","value":""},"o5LCUqQr":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"o5LCUqQr","parent":"Pect1uf9","source":"eYGkY755","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;","target":"ciWABX32","value":""},"p77PjYNp":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"220","y":"60"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"p77PjYNp","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"开始","vertex":"1"},"p9h23Wyz":{"-0-mxGeometry":{"as":"geometry","height":"30","width":"90","x":"597.5","y":"1065"},"diagramCategory":"general","diagramName":"RoundedRectangle","id":"p9h23Wyz","parent":"Pect1uf9","style":"rounded=1;whiteSpace=wrap;html=1;","value":"结束","vertex":"1"},"pnhcjuL8":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"pnhcjuL8","parent":"Pect1uf9","source":"SF2t4kWx","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"bw0Iq6bK","value":""},"pt9rj14y":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"650","y":"700"},"-1-Array":{"-0-mxPoint":{"x":"868","y":"700"},"as":"points"},"as":"geometry","relative":"1"},"edge":"1","id":"pt9rj14y","parent":"Pect1uf9","source":"KYPQ3C3I","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"qgEFyVQx":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"qgEFyVQx","parent":"Pect1uf9","source":"MhgA8QAz","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"mjPey3oE","value":""},"rVBMKNOU":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"1342.5","y":"500"},"diagramCategory":"general","diagramName":"Diamond","id":"rVBMKNOU","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否定时时间超时","vertex":"1"},"rc4wFIac":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"1118.75","y":"214"},"diagramCategory":"general","diagramName":"Rectangle","id":"rc4wFIac","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"延时","vertex":"1"},"ta2LLJuF":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"210","x":"170","y":"30"},"diagramCategory":"general","diagramName":"text","id":"ta2LLJuF","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"透传模块","vertex":"1"},"tmEc27WQ":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"642.5","y":"520"},"as":"geometry","relative":"1"},"edge":"1","id":"tmEc27WQ","parent":"Pect1uf9","source":"7tKIILVh","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"waalH9F7":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"1652.5","y":"245"},"as":"geometry","relative":"1"},"edge":"1","id":"waalH9F7","parent":"Pect1uf9","source":"jh5blLKY","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;","target":"xHS1Dcza","value":""},"woiCiVAU":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"woiCiVAU","parent":"Pect1uf9","source":"YdxmV62m","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"4WOWbQzP","value":""},"xHS1Dcza":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"1382.5","y":"205"},"diagramCategory":"general","diagramName":"Rectangle","id":"xHS1Dcza","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;","value":"上报","vertex":"1"},"xvUVR2ya":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"192.5","y":"480"},"diagramCategory":"general","diagramName":"Diamond","id":"xvUVR2ya","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"是否需要上报DI,AI","vertex":"1"},"yCD5YxIO":{"-0-mxGeometry":{"-0-mxPoint":{"as":"targetPoint","x":"1442.5","y":"125"},"as":"geometry","relative":"1"},"edge":"1","id":"yCD5YxIO","parent":"Pect1uf9","source":"4KKRggXF","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","value":""},"yJ4DCdri":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"1371.25","y":"30"},"diagramCategory":"general","diagramName":"text","id":"yJ4DCdri","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"DI模块","vertex":"1"},"yhRhbzCr":{"-0-mxGeometry":{"as":"geometry","relative":"1"},"edge":"1","id":"yhRhbzCr","parent":"Pect1uf9","source":"YdxmV62m","style":"edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;","target":"z2A1aIIm","value":""},"z2A1aIIm":{"-0-mxGeometry":{"as":"geometry","height":"40","width":"145","x":"1106.25","y":"135"},"diagramCategory":"general","diagramName":"Diamond","id":"z2A1aIIm","parent":"Pect1uf9","style":"rhombus;whiteSpace=wrap;html=1;","value":"发送设置的指令","vertex":"1"},"zE7W64wk":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"142.5","x":"568.75","y":"415"},"diagramCategory":"general","diagramName":"text","id":"zE7W64wk","parent":"Pect1uf9","style":"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=21;","value":"下行数据模块","vertex":"1"}}},"diagramType":"flowchart"}}},"RhBdd2IdaoSiQCxE4chcJTcInkh":{"id":"RhBdd2IdaoSiQCxE4chcJTcInkh","snapshot":{"type":"heading3","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"模块内拆解的功能点分析"},"attribs":{"0":"*0+b"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"L8y5dKhBpoDweoxwYXscoKatnNg":{"id":"L8y5dKhBpoDweoxwYXscoKatnNg","snapshot":{"type":"text","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"模块是根据相似的功能,把对应的代码放到同一个源文件中。每个功能算作一个功能点,不同功能点组合以来,构成了模块的主要功能。"},"attribs":{"0":"*0+1o"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false,"text_indent":1}},"TP9NdaaPZonm6Gx5W0Fc7WBrnwi":{"id":"TP9NdaaPZonm6Gx5W0Fc7WBrnwi","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"数据存储功能点:包括文件创建,初始化,读写,关闭等。"},"attribs":{"0":"*0+q"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"Vrw7dVSvVoz0ZrxqCzHcQPNGnX8":{"id":"Vrw7dVSvVoz0ZrxqCzHcQPNGnX8","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"AT指令功能点:包括串口初始化,串口数据接收,发送,数据分析,AT指令解析"},"attribs":{"0":"*0+11"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"I5l5dLTtmoLiDmxkOuncUXdwnac":{"id":"I5l5dLTtmoLiDmxkOuncUXdwnac","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"切卡功能点:包括GPIO初始化,复位切卡"},"attribs":{"0":"*0+k"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"M1Ohd1VLJoAliDx7LQycjNMOnkc":{"id":"M1Ohd1VLJoAliDx7LQycjNMOnkc","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"透传模式切换功能点:包括串口初始化,串口数据接收,发送,数据分析,切换模式"},"attribs":{"0":"*0+11"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"ZHMKdC6FOoMTzoxdN1WcpPaWn4c":{"id":"ZHMKdC6FOoMTzoxdN1WcpPaWn4c","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"掉线重连功能点:包括连接状态检测,掉线重连"},"attribs":{"0":"*0+l"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"QpXDd4udQodoDZxPzhLcLRUAnTg":{"id":"QpXDd4udQodoDZxPzhLcLRUAnTg","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"TCP功能点:包括参数配置,创建Socket,连接服务器,发送,接收数据"},"attribs":{"0":"*0+10"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"D570d6aa1ofS0MxZNJGchHFHnQf":{"id":"D570d6aa1ofS0MxZNJGchHFHnQf","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"心跳功能点:包括参数配置,定时发送"},"attribs":{"0":"*0+h"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"JGfHdFTKCoM6XZxBLGDcxG62nsf":{"id":"JGfHdFTKCoM6XZxBLGDcxG62nsf","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"GNSS功能点:包括参数配置,串口初始化,串口数据接收,数据分析,模式切换,定时上报"},"attribs":{"0":"*0+16"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"FNwwdnHsvouhUmxu9MzcGO9PnVe":{"id":"FNwwdnHsvouhUmxu9MzcGO9PnVe","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"DI功能点:包括参数配置,GPIO初始化,中断检测,模式切换,定时上报,中断上报"},"attribs":{"0":"*0+14"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"UE03dVgwzoK1itxj0fucNFgznud":{"id":"UE03dVgwzoK1itxj0fucNFgznud","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"AI功能点:包括参数配置,ADC接口初始化,电流计算,定时上报"},"attribs":{"0":"*0+v"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"RBNQdc3pmoscgRxImZ0chUhTnLc":{"id":"RBNQdc3pmoscgRxImZ0chUhTnLc","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"DO功能点:包括参数配置,GPIO初始化,模式切换,定时上报,跟随DI或者AI"},"attribs":{"0":"*0+13"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"HLDrdjUQ6odWALx6skTcvziGnfg":{"id":"HLDrdjUQ6odWALx6skTcvziGnfg","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"闹钟功能点:包括参数配置,定时,超时动作"},"attribs":{"0":"*0+k"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"A8Pkdj8hJonnNXxWUo2cyIw8nGf":{"id":"A8Pkdj8hJonnNXxWUo2cyIw8nGf","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"JSON功能点:包括数据接收,解析,数据发送"},"attribs":{"0":"*0+m"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"GQ6Gd47uAobuZCxibPhcmqLDnvb":{"id":"GQ6Gd47uAobuZCxibPhcmqLDnvb","snapshot":{"type":"bullet","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"Modbus功能点:包括参数配置,数据接收,解析,数据发送"},"attribs":{"0":"*0+t"}},"apool":{"numToAttrib":{"0":["author","6792471247994273793"]},"nextNum":1}},"align":"","folded":false}},"RW5ldqN8FoaV78xB9iTcLAj2nlg":{"id":"RW5ldqN8FoaV78xB9iTcLAj2nlg","snapshot":{"type":"text","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"上述模块功能点大致是按照依赖顺序来的,下面讲述的模块实现可能要基于上面的功能点来实现。"},"attribs":{"0":"*0+17"}},"apool":{"numToAttrib":{"0":["author","6811428175583674370"]},"nextNum":1}},"align":"","folded":false,"text_indent":0}},"LXSHd4h77oDoijxRLaDcims7neh":{"id":"LXSHd4h77oDoijxRLaDcims7neh","snapshot":{"type":"heading1","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"][color=#99CCFF;strokeColor=#000000;strokeWidth=2","value":"云端","vertex":"1"},"0eerhurH":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"90","x":"150","y":"488.75"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"0eerhurH","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2;rotation=-40;","value":"","vertex":"1"},"6zyeFVNI":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"77.5","x":"261.25","y":"488.75"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"6zyeFVNI","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2;rotation=90;","value":"","vertex":"1"},"F8IQvQp8":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"90","x":"150","y":"420"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"F8IQvQp8","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2","value":"","vertex":"1"},"HzFQycoM":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"90","x":"560","y":"361"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"HzFQycoM","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2;rotation=-40;","value":"","vertex":"1"},"IUHSfdwP":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"90","x":"360","y":"488.75"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"IUHSfdwP","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2;rotation=-138;","value":"","vertex":"1"},"N1axZEvd":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"450","y":"540"},"diagramCategory":"general","diagramName":"Rectangle","id":"N1axZEvd","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"AI","vertex":"1"},"OfZOtNYZ":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"77.5","x":"261.25","y":"350"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"OfZOtNYZ","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2;rotation=90;","value":"","vertex":"1"},"Pect1uf9":{"id":"Pect1uf9","parent":"Xfazc13W"},"WYTWYGtj":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"30","y":"400"},"diagramCategory":"general","diagramName":"Rectangle","id":"WYTWYGtj","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"电源","vertex":"1"},"Xfazc13W":{"id":"Xfazc13W"},"aFaCBW4Q":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"450","y":"400"},"diagramCategory":"general","diagramName":"Rectangle","id":"aFaCBW4Q","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"4G天线","vertex":"1"},"frIugipK":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"240","y":"260"},"diagramCategory":"general","diagramName":"Rectangle","id":"frIugipK","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"可扩展IO","vertex":"1"},"n4q6nYDj":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"240","y":"540"},"diagramCategory":"general","diagramName":"Rectangle","id":"n4q6nYDj","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"上位机","vertex":"1"},"oSrnuMsa":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"30","y":"540"},"diagramCategory":"general","diagramName":"Rectangle","id":"oSrnuMsa","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"DI/DO","vertex":"1"},"voNaqUeu":{"-0-mxGeometry":{"as":"geometry","height":"60","width":"120","x":"240","y":"400"},"diagramCategory":"general","diagramName":"Rectangle","id":"voNaqUeu","parent":"Pect1uf9","style":"rounded=0;whiteSpace=wrap;html=1;fillColor=#CCE5FF;","value":"SOM核心板+底板","vertex":"1"},"yTSuwHoj":{"-0-mxGeometry":{"as":"geometry","height":"20","width":"90","x":"360","y":"420"},"diagramCategory":"arrow","diagramName":"SlenderTwoWayArrow","id":"yTSuwHoj","parent":"Pect1uf9","style":"shape=mxgraph.arrows.slender_two_way_arrow;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;strokeWidth=2","value":"","vertex":"1"}}},"diagramType":"flowchart"}}},"BHYBdn3beoMkeMxWn58c3Tq1nvu":{"id":"BHYBdn3beoMkeMxWn58c3Tq1nvu","snapshot":{"type":"text","parent_id":"DQPPdM8wuoCQqKxgdTscrpAznnh","comments":[],"locked":false,"hidden":false,"author":"6792471247994273793","children":[],"text":{"initialAttributedTexts":{"text":{"0":"]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-10 17:03 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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