Browse Source

更新接口文档

luoguangyi 2 years ago
parent
commit
893c87f87d
3 changed files with 238 additions and 171 deletions
  1. 6 1
      docs/.vuepress/config.js
  2. 17 9
      docs/iot/description.md
  3. 215 161
      docs/iot/message.md

+ 6 - 1
docs/.vuepress/config.js

@@ -53,9 +53,14 @@ module.exports = {
                     children: [{ title: '接口文档', path: '/iot/iot', collapsable: true }]
                 },
                 {
-                    title: '说明文档',
+                    title: '服务说明文档',
                     collapsable: true,
                     children: [{ title: '数据结构说明', path: '/iot/description', collapsable: true }]
+                },
+                {
+                    title: '通信报文格式',
+                    collapsable: true,
+                    children: [{ title: '通信报文格式', path: '/iot/message', collapsable: true }]
                 }
             ],
             '/version': [

+ 17 - 9
docs/iot/description.md

@@ -320,17 +320,17 @@ ii. 否则,使用最新的修补数据。
 
 ## 4.iot服务有哪些服务,依赖关系是怎样的?
 
-![image5](./img/image5.png)
+![image5](http://assets.processon.com/chart_image/598a7b27e4b058e0a2f1f5bb.png)
 
 服务列表
 
-| 服务名称                | 服务说明                                                     | 说明 |
-| ----------------------- | ------------------------------------------------------------ | ---- |
-| iot-client              | iot采集集成,负责集成各种IOT数据,对接各种二方、三方系统,各种协议的数据 |      |
-| iot-project             | 边缘端IOT数据,上传下达的转发服务,所有iot数据都是传输到iot-project,然后再转发到iot-collect/iot-control,只是上传下达的搬运工,不生产数据,也不处理数据。 |      |
-| iot-collect/iot-control | 云端采集控制程序,程序一式两份,一份用于采集(iot-collect),一份用于控制(iot-control),一式两份的初衷是考虑到控制的稳定性。这两个服务是几个服务中唯一对业务方提供接口的服务,iot-collec提供主要接口:查询采集实时数据、查询分精度数据、采集值统计;iot-control提供主要接口:下发控制指令、查询指令结果。 |      |
-| compute-engine          | 分精度计算程序,根据数据库中配置的项目ID+表号+功能号+最小分精度类型,计算出对应的分精度;其实有两个程序。 |      |
-| iot-onlinestatus        | 计算设备和系统的在离线状态;这是一个证明自己还或者的命题,正常理解中,在离线状态应该可以采集到,是一种IOT数据,但是实际情况下,在离线状态采集不到,大部分对象不会证明自己还活着,需要根据对象有没有其他的活动来推断;具体就是:如果对象在最近一段时间 有过其他的采集数据,那么设置设备在线,反之离线。 |      |
+| 服务名称         | 服务说明                                                     | 说明 |
+| ---------------- | ------------------------------------------------------------ | ---- |
+| iot-client       | iot采集集成,负责集成各种IOT数据,对接各种二方、三方系统,各种协议的数据 |      |
+| iot-project      | 边缘端IOT数据,上传下达的转发服务,所有iot数据都是传输到iot-project,然后再转发到iot-collect/iot-control,只是上传下达的搬运工,不生产数据,也不处理数据。iot-project也可以提供边缘端的一些实时数据查询和websocket推送能力; |      |
+| iot-collect      | 云端采集控制程序,这个服务是几个服务中唯一对业务方提供接口的服务,iot-collec提供主要接口:查询采集实时数据、查询分精度数据、采集值统计下发控制指令、查询指令结果,实时websocket推送数据等。 |      |
+| compute-engine   | 分精度计算程序,根据数据库中配置的项目ID+表号+功能号+最小分精度类型,计算出对应的分精度;其实有两个程序。 |      |
+| iot-onlinestatus | 计算设备和系统的在离线状态;这是一个证明自己还或者的命题,正常理解中,在离线状态应该可以采集到,是一种IOT数据,但是实际情况下,在离线状态采集不到,大部分对象不会证明自己还活着,需要根据对象有没有其他的活动来推断;具体就是:如果对象在最近一段时间 有过其他的采集数据,那么设置设备在线,反之离线。 |      |
 
 ### 数据降频
 
@@ -429,9 +429,13 @@ zillion的维护和新功能、扩展性;(对比开源Phoenix)
 ### 7.1、涉及服务:
 
 zkt-control:远端控制服务,负责日程、模式、日历和定时控制指令的生成
+
 zkt-project-control:边缘端控制服务,接受zkt-project-control的定时轮询下发的指令,并在指令设置的时间下发指令到iot-project;
+
 iot-project:边缘iot服务,http方式接受控制指令,并转发指令到iot-client服务,同时下发记录同步到iot-control
+
 iot-control:云端控制服务,http方式接受控制指令,也接受iot-project控制记录保存到hbase;
+
 iot-client:对接设备或者子系统进行具体的采集和控制
 
 ### 7.2、服务版本:
@@ -464,10 +468,14 @@ http://ip:port/sync_pointset_post
 
 ### 7.5、控制流程
 
-1.新建模式、日常、绑定设备、日历绑定模式(详见产品文档,产品使用说明等)
+1.新建模式、日程、绑定设备、日历绑定模式(详见产品文档,产品使用说明等)
+
 2.到达设置时间点后观察hbase数据库记录,如果有记录,说明没问题,没记录的时候:检查设备的绑点、
+
 手自动状态设定、日程日历设定、数据库记录和相关服务日志;
+
 3.自动控制前先保证手动控制是可以控制成功,手动控制后记得修改回去对应的手自动状态;
+
 4.云-》边的指令默认15分钟下发一次,每次下发的时候下发15分钟后的2小时的指令,极限时间是15+15=30分钟,所以新建日程中30分钟后的指令才是一定可以下发,15分钟内的一定不会下发下去的;
 
 ```

+ 215 - 161
docs/iot/message.md

@@ -1,288 +1,346 @@
-# ***IOT采集与控制报文***
 
 
 
-**注:TCP通信为解决粘包问题,在包头和包围需要增加左括号和有括号。**
 
-TCP示例	(1101070037;1;connect)
+# ***IOT采集与控制报文 v1.0.0***
 
-UDP示例	1101070037;1;connect
+ 2022年2月16号
 
+## 通讯说明:
 
+- **所有报文同时支持TCP和UDP报文方式,并且使用TCP和UDP等价,仅仅是通讯方式的区别,其他没有区别;**
 
-# ***连接***
+- **数据上传包可以一次传多个,分隔符使用&,回包的时候&分割的包可能分成多个小包进行回包**
 
-连接包	采集器 -> 本网关
+  示例: 1101070037;1;report;20010203040506;123;1001;2;11;3.1;12;3.2**&**1101070038;1;report;20010203040506;123;1001;2;11;3.1;12;3.2
 
-| 建筑 | 网关 | 类型 |
-| ---- | ---- | ---- |
-| 字符 | 整数 | 字符 |
+- **注:TCP通信为解决半包粘包问题,在包头和包围需要增加左括号和有括号。**
+
+  TCP示例	(1101070037;1;connect)
+
+  UDP示例	1101070037;1;connect
+
+- **为避免理解偏差,通信双方均使用目前的服务名称**;涉及服务iot-collect,iot-project,iot-client3个服务之间通讯使用;iot-control服务作废,功能合并到iot-collect;
+
+  IBMS业务: iot-client<--->iot-project<--->iot-collect
+
+  资管业务:     iot-client<--->iot-collect
+
+  有控制业务必须有iot-project服务,没有控制业务的可以省略iot-project服务;
+
+- **时间格式统一采用yyyyMMddHHmmss;**
+
+- **历史原因,iot服务的文档以及tcp/udp/http通讯中提到的建筑一律为10位的不带Pj的项目id,不再另行说明**;
+
+## 1 心跳类报文
+
+心跳类的报文有3种类,connect/heart/buildingheart。
+
+connect和heart等价,无本质上区别,作为iot-client与 北向服务心跳报文;
+
+connect包目前默认5分钟1次,heart包1分钟1次;
+
+**心跳包作用:**
+
+- 心跳报文作为服务连接正常的判断依据,心跳响应成功后才可以继续各种数据传输;
+- 通过不断发送心跳防止服务长时间不通讯后断开;
+- 通过相应回包时间进行时间校准对比;
+
+buildingheart是iot-project和iot-collect服务的心跳报文,作为云端控制指令的下发使用,判断被控制信息点的项目是否存在的,控制指令会下发到对应项目的iot-project,一个项目只能部署一份iot-project;
+
+### ***1.1 连接***
+
+**连接包**	iot-client --> iot-project/iot-collect
+
+| 建筑 | 网关 | 类型    |
+| ---- | ---- | ------- |
+| 字符 | 整数 | connect |
 
 示例	1101070037;1;connect
 
-应答包
+**应答包**   iot-project/iot-collect -> iot-client
 
-| 建筑 | 网关 | 类型 | 时间 |
-| ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 时间 |
+| 建筑 | 网关 | 类型       | 时间 |
+| ---- | ---- | ---------- | ---- |
+| 字符 | 整数 | connectack | 时间 |
 
 示例	1101070037;1;connectack;20010203040506
 
- 
-
-# ***心跳***
+### ***1.2 心跳***
 
-心跳包	采集器 -> 本网关
+**心跳包**	iot-client --> iot-project/iot-collect
 
-| 建筑 | 网关 | 类型 |
-| ---- | ---- | ---- |
-| 字符 | 整数 | 字符 |
+| 建筑 | 网关 | 类型  |
+| ---- | ---- | ----- |
+| 字符 | 整数 | heart |
 
 示例	1101070037;1;heart
 
-应答包
+**应答包** iot-project/iot-collect --> iot-client
 
-| 建筑 | 网关 | 类型 | 时间 |
-| ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 时间 |
+| 建筑 | 网关 | 类型     | 时间 |
+| ---- | ---- | -------- | ---- |
+| 字符 | 整数 | heartack | 时间 |
 
 示例	1101070037;1;heartack;20010203040506
 
-# ***buildingheart心跳***
+### ***1.3 项目心跳***
 
-心跳包	采集器 -> 本网关
+***项目心跳***包	iot-project -> iot-collect
 
-| 建筑 | 网关 | 类型 |
-| ---- | ---- | ---- |
-| 字符 | 整数 | 字符 |
+| 建筑 | 网关 | 类型          |
+| ---- | ---- | ------------- |
+| 字符 | 整数 | buildingheart |
 
 示例	 1101070037;0;buildingheart
 
-应答包
+**应答包**	iot-collect --> iot-project
 
-| 建筑 | 网关 | 类型 | 时间 |
-| ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 时间 |
+| 建筑 | 网关 | 类型             | 时间 |
+| ---- | ---- | ---------------- | ---- |
+| 字符 | 整数 | buildingheartack | 时间 |
 
 示例	1101070037;0;buildingheartack;20211227110548
 
-# ***数据上传***
+### ***1.4 点位心跳清单及其有效期***
 
-数据上报包	采集器 -> 本网关
+判断点位离线使用
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 数量 | 功能1 | 数据1 | 。。。 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ----- | ----- | ------ |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 整数  | 字符  | 。。。 |
+数据有效期全部为秒,有效期为负1(-1)代表长期有效,没有过期时间
 
-示例	1101070037;1;report;20010203040506;123;1001;2;11;3.1;12;3.2
+有效期只支持下面几个-1,120,600,1800,7200,172800,如果设置的不是上述值,会向上取整找到对应的值,比如设置180,会向上取整到600;
 
-应答包
+```
+    SECOND_DEFAULT(-1, "默认值,长期有效"),
+    SECOND_120(120, "2分钟"),
+    SECOND_600(600, "10分钟"),
+    SECOND_1800(1800, "30分钟"),
+    SECOND_7200(7200, "2小时"),
+    SECOND_172800(172800, "48小时");
+```
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 |
-| ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 |
+**点位清单包**	iot-client --> iot-project
 
-示例	1101070037;1;reportack;;123
+| 建筑 | 网关 | 类型          | 时间 | 有效期(秒) | 序号 | 页容量 | 总页数 | 页编号 | 总条数 | 表号1 | 功能1 | 。。。 |
+| ---- | ---- | ------------- | ---- | ---------- | ---- | ------ | ------ | ------ | ------ | ----- | ----- | ------ |
+| 字符 | 整数 | pointValidity | 时间 | 整数       | 整数 | 整数   | 整数   | 整数   | 整数   | 字符  | 整数  | 。。。 |
 
- 
+示例	1101070037;1;20010203040506;600;123;123;50;5;5;2;1001;11;1001;12
 
-本网关将数据上报包转发上级程序,等待上级程序应答包并转发采集器
+**应答包** iot-project --> iot-client  
 
-数据上传包可以一次传多个,分隔符使用&
+| 建筑 | 网关 | 类型             | 时间 | 有效期(秒) | 序号 | 页容量 | 总页数 | 页编号 | 总条数 | 表号1 | 功能1 | 。。。 |
+| ---- | ---- | ---------------- | ---- | ---------- | ---- | ------ | ------ | ------ | ------ | ----- | ----- | ------ |
+| 字符 | 整数 | pointValidityAck | 时间 | 整数       | 整数 | 整数   | 整数   | 整数   | 整数   | 字符  | 整数  | 。。。 |
 
-数据上传包可以在最前面增加辅助信息,分隔符使用$
+示例	1101070037;1;pointValidityAck;20010203040506;600;123;50;5;5;2;1001;11;1001;12
 
- 
+## 2 采集通讯报文
 
-# ***文本上传***
+### ***2.1 数值数据上传***
 
-数据上报包	采集器 -> 本网关
+**数据上报包**	iot-client -> iot-project-->iot-collect
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 数量 | 功能1 | 数据1 | 。。。 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ----- | ----- | ------ |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 整数  | 字符  | 。。。 |
+| 建筑 | 网关 | 类型   | 时间 | 序号 | 表号 | 数量 | 功能1 | 数据1 | 功能号2 | 数据2 | 。。。 |
+| ---- | ---- | ------ | ---- | ---- | ---- | ---- | ------- | ----- | ------- | ----- | ------ |
+| 字符 | 整数 | report | 时间 | 整数 | 字符 | 整数 | 整数    | 字符  | 整数    | 字符  | 。。。 |
 
-示例	1101070037;1;text;20010203040506;123;1001;2;11;hello;12;world
+示例	1101070037;1;report;20010203040506;123;1001;2;11;3.1;12;3.2
 
-应答包
+**应答包** iot-collect -> iot-project -->  iot-client
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 |
-| ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 |
+| 建筑 | 网关 | 类型      | 时间 | 序号 |
+| ---- | ---- | --------- | ---- | ---- |
+| 字符 | 整数 | reportack | 空   | 整数 |
 
-示例	1101070037;1;textack;;123
+示例	1101070037;1;reportack;;123
 
- 
+数据上传包可以一次传多个,分隔符使用&
 
-本网关将数据上报包转发上级程序,等待上级程序应答包并转发采集器
+### ***2.2 文本数据上传***
 
-数据上传包可以一次传多个,分隔符使用&
+**数据上报包**	iot-client -> iot-project-->iot-collect
 
- 
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 数量 | 功能号1 | 数据1 | 。。。 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ------- | ----- | ------ |
+| 字符 | 整数 | text | 时间 | 整数 | 字符 | 整数 | 整数    | 字符  | 。。。 |
+
+示例	1101070037;1;text;20010203040506;123;1001;2;11;hello;12;world
+
+**应答包** iot-collect -> iot-project -->  iot-client
+
+| 建筑 | 网关    | 类型 | 时间 | 序号 |
+| ---- | ------- | ---- | ---- | ---- |
+| 字符 | textack | 字符 | 空   | 整数 |
 
-# ***消息上传***
+示例	1101070037;1;textack;;123
+
+数据上传包可以一次传多个,分隔符使用&;
+
+### ***2.3 事件消息上传***
 
-数据上报包	采集器 -> 本网关
+数据上报包	iot-client -> iot-project-->iot-collect
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 消息类型 | 消息内容 |
-| ---- | ---- | ---- | ---- | ---- | -------- | -------- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符     | 字符     |
+| 建筑 | 网关 | 类型      | 时间 | 序号 | 消息类型 | 消息内容 |
+| ---- | ---- | --------- | ---- | ---- | -------- | -------- |
+| 字符 | 整数 | happening | 时间 | 整数 | 字符     | 字符     |
 
 示例	1101070037;1;happening;20010203040506;123;firealarm;{"id":"abc"}
 
 应答包
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 |
-| ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 |
+| 建筑 | 网关 | 类型         | 时间 | 序号 |
+| ---- | ---- | ------------ | ---- | ---- |
+| 字符 | 整数 | happeningack | 空   | 整数 |
 
 示例	1101070037;1;happeningack;20010203040506;123;firealarm;{"id":"abc"}
 
- 
+## 3 控制通讯报文
 
-本网关将数据上报包转发上级程序,等待上级程序应答包并转发采集器
+###  ***3.1 点位设置***
 
- 
+控制点位设置
 
-# ***点位清单上传***
+**点位设置包**	iot-collect-->iot-project
 
-点位清单包	采集器 -> 本网关
+| 建筑 | 网关 | 类型     | 时间 | 序号 | 表号 | 功能 | 数据 |
+| ---- | ---- | -------- | ---- | ---- | ---- | ---- | ---- |
+| 字符 | 整数 | pointset | 空   | 整数 | 字符 | 整数 | 字符 |
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 页容量 | 总页数 | 页编号 | 总条数 | 表号1 | 功能1 | 。。。 |
-| ---- | ---- | ---- | ---- | ---- | ------ | ------ | ------ | ------ | ----- | ----- | ------ |
-| 字符 | 整数 | 字符 | 空   | 整数 | 整数   | 整数   | 整数   | 整数   | 字符  | 整数  | 。。。 |
+示例	1101070037;1;pointset;20010203040506;123;1001;11;3.1
 
-示例	1101070037;1;pointupload;;123;50;5;5;2;1001;11;1001;12
+示例	1101070037;1;pointset;20010203040506;123;1001;11;[3.1,3.2,3.3]
 
-应答包
+**应答包** iot-project --> iot-collect
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 页容量 | 总页数 | 页编号 |
-| ---- | ---- | ---- | ---- | ---- | ------ | ------ | ------ |
-| 字符 | 整数 | 字符 | 空   | 整数 | 整数   | 整数   | 整数   |
+| 建筑 | 网关 | 类型        | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
+| ---- | ---- | ----------- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
+| 字符 | 整数 | pointsetack | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
 
-示例	1101070037;1;pointuploadack;;123;50;5;5
+示例	1101070037;1;pointsetack;20010203040506;123;1001;11;3.1;20010203040507;success
 
- 
+### 3.2 点位设置下发协议
 
-# ***点位读取***
+控制点位下发
 
-点位读取包	应用软件 -> 采集软件
+**下发包**	 iot-project -->  iot-client
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 |
+| 建筑 | 网关 | 类型        | 时间 | 序号 | 表号 | 功能 | 数据 |
+| ---- | ---- | ----------- | ---- | ---- | ---- | ---- | ---- |
+| 字符 | 整数 | senddownset | 空   | 整数 | 字符 | 整数 | 字符 |
 
-示例	1101070037;1;pointread;;123;1001;11
+示例	1101070037;1;senddownset;20010203040506;123;1001;11;3.1
 
-应答包
+示例	1101070037;1;senddownset;20010203040506;123;1001;11;[3.1,3.2,3.3]
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 结束时间 | 状态 | 数据 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符     | 字符 | 字符 |
+**应答包** iot-client -> iot-project
+
+| 建筑 | 网关 | 类型           | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
+| ---- | ---- | -------------- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
+| 字符 | 整数 | senddownsetack | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
 
 示例
 
-1101070037;1;pointreadack;20010203040506;123;1001;11;20010203040507;success;3.1
+1101070037;1;senddownsetack;20010203040506;123;1001;11;3.1;20010203040507;success
 
-1101070037;1;pointreadack;20010203040506;123;1001;11;20010203040507;failure_rrr
+### ***3.3 点位设置通知***
 
- 
+直接通过iot-project进行的控制设定,通过点位设置通知同步到iot-collect,然后保存到数据库中;
 
-**读取下发协议**
+**点位设置包**	iot-project --> iot-collect
 
-下发包	采集软件 -> 采集器
+| 建筑 | 网关 | 类型           | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
+| ---- | ---- | -------------- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
+| 字符 | 整数 | reportpointset | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 |
+示例	1101070037;1;reportpointset;20010203040506;123;1001;11;3.1;;
 
-示例	1101070037;1;senddownread;;123;1001;11
+示例	1101070037;1;reportpointset;20010203040506;123;1001;11;3.1; 20010203040506;failure_point_not_exist
 
-应答包
+**应答包**   iot-collect --> iot-project
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 结束时间 | 状态 | 数据 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符     | 字符 | 字符 |
+| 建筑 | 网关 | 类型              | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
+| ---- | ---- | ----------------- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
+| 字符 | 整数 | reportpointsetack | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
 
-示例
+示例	1101070037;1;reportpointsetack;20010203040506;123;1001;11;3.1; 20010203040506;failure_point_not_exist
 
-1101070037;1;senddownreadack;20010203040506;123;1001;11;20010203040507;success;3.1
 
-1101070037;1;senddownreadack;20010203040506;123;1001;11;20010203040507;failure_rrr
 
- 
+## 4 作废报文
 
-# ***点位设置***
+作废报文都是历史曾经设计支持过的,但是基于以下原因,以后不再支持的报文类型:
 
-点位设置包	上级程序->本网关
+- 该功能已经删除,pointupload
+- 该功能没有场景在继续使用,考虑作废,
+- 已有更好的提供方式,不再推荐使用的功能如presentset,presentreportack,pointupload,virtualpointset
+- 功能适用场景太有限,考虑不再支持,如pointread
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 | 字符 |
+作废的报文以后不再继续提供支持,也不再文档中做过多介绍;
 
-示例	1101070037;1;pointset;20010203040506;123;1001;11;3.1
+###  ***4.1 点位清单上传***(已作废)
 
-示例	1101070037;1;pointset;20010203040506;123;1001;11;[3.1,3.2,3.3]
+点位清单包	采集器 -> 本网关
 
-应答包
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 页容量 | 总页数 | 页编号 | 总条数 | 表号1 | 功能1 | 。。。 |
+| -------- | -------- | -------- | -------- | -------- | ---------- | ---------- | ---------- | ---------- | --------- | --------- | ---------- |
+| 字符 | 整数 | 字符 | 空   | 整数 | 整数   | 整数   | 整数   | 整数   | 字符  | 整数  | 。。。 |
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
+示例	1101070037;1;pointupload;;123;50;5;5;2;1001;11;1001;12
 
-示例	1101070037;1;pointsetack;20010203040506;123;1001;11;3.1;20010203040507;success
+应答包
 
- 
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 页容量 | 总页数 | 页编号 |
+| -------- | -------- | -------- | -------- | -------- | ---------- | ---------- | ---------- |
+| 字符 | 整数 | 字符 | 空   | 整数 | 整数   | 整数   | 整数   |
 
-**设置下发协议**
+示例	1101070037;1;pointuploadack;;123;50;5;5
 
-下发包	本网关 -> 采集器
+### ***4.2 点位读取***(已作废)
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
-| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 | 字符 |
+点位读取包	应用软件 -> 采集软件
 
-示例	1101070037;1;senddownset;20010203040506;123;1001;11;3.1
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
+| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 |
 
-示例	1101070037;1;senddownset;20010203040506;123;1001;11;[3.1,3.2,3.3]
+示例	1101070037;1;pointread;;123;1001;11
 
 应答包
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 结束时间 | 状态 | 数据 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- | ---- |
+| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符     | 字符 | 字符 |
 
 示例
 
-1101070037;1;senddownsetack;20010203040506;123;1001;11;3.1;20010203040507;success
-
- 
-
-# ***点位设置通知***
+1101070037;1;pointreadack;20010203040506;123;1001;11;20010203040507;success;3.1
 
-本地监听端口来的设置指令及应答包,会发给上级程序
+1101070037;1;pointreadack;20010203040506;123;1001;11;20010203040507;failure_rrr
 
-点位设置包	本网关->上级程序
+###  **4.3 读取下发协议(已作废)**
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
+下发包	采集软件 -> 采集器
 
-示例	1101070037;1;reportpointset;20010203040506;123;1001;11;3.1;;
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- |
+| 字符 | 整数 | 字符 | 空   | 整数 | 字符 | 整数 |
 
-示例	1101070037;1;reportpointset;20010203040506;123;1001;11;3.1; 20010203040506;failure_point_not_exist
+示例	1101070037;1;senddownread;;123;1001;11
 
 应答包
 
-| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 数据 | 结束时间 | 状态 |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- |
-| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符 | 字符     | 字符 |
+| 建筑 | 网关 | 类型 | 时间 | 序号 | 表号 | 功能 | 结束时间 | 状态 | 数据 |
+| ---- | ---- | ---- | ---- | ---- | ---- | ---- | -------- | ---- | ---- |
+| 字符 | 整数 | 字符 | 时间 | 整数 | 字符 | 整数 | 字符     | 字符 | 字符 |
 
-示例	1101070037;1;reportpointsetack;20010203040506;123;1001;11;3.1; 20010203040506;failure_point_not_exist
+示例
 
- 
+1101070037;1;senddownreadack;20010203040506;123;1001;11;20010203040507;success;3.1
+
+1101070037;1;senddownreadack;20010203040506;123;1001;11;20010203040507;failure_rrr
 
-# ***虚拟点位设置下发***
+###  ***4.4 虚拟点位设置下发***(已作废)
 
 点位设置包	上级程序->本网关
 
@@ -300,9 +358,7 @@ UDP示例	1101070037;1;connect
 
 示例	1101070037;0;virtualpointsetack;20010203040506;123;1001;11;3.1
 
- 
-
-# ***查询当前上传值***
+### ***4.5 查询当前上传值***(已作废)
 
 点位读取包	上级程序 ->本网关
 
@@ -320,9 +376,7 @@ UDP示例	1101070037;1;connect
 
 示例	1101070037;1;presentreportack;20010203040506;123;1001;11;20010203040506;3.1
 
- 
-
-# ***查询当前设置值***
+### ***4.6 查询当前设置值(已作废)***
 
 点位读取包	上级程序 ->本网关