# Transfer **Repository Path**: pentiumCM/Transfer ## Basic Information - **Project Name**: Transfer - **Description**: init rep - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-09 - **Last Updated**: 2021-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目说明文档 ## 一、整体需求 对局域网内中的安全卫士的数据转发给区域网外部,如下图,A服务器 可以通过 B工控机获取到区域网内的摄像头数据,并且对控制器下达转向指令。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210623134115844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BlbnRpdW1DTQ==,size_16,color_FFFFFF,t_70) ## 二、整体架构 ### (一) 技术方案 #### 1. 数据交互 1. 采用 TCP 协议进行交互 2. TCP开源框架:采用 ZMQ 3. 交互方式: + 推送摄像头数据:采用 ZMQ 的订阅发布模式 + 操空控制机:采用 ZMQ 的请求响应模式 #### 2. 数据接口地址 数据协议采用 TCP 的方式,TCP服务端的 ip 和 端口,通过 `config.json` 文件进行配置,详细见第二部分,设备配置部分。 #### 3. 数据格式 #### (1)摄像头数据交互 1. TCP 服务端 ``` { "ipc_ip": "摄像头ip,字符串", "image": "numpy类型" } ``` 2. TCP 客户端 与某一台设备对应的 TCP服务端 建立连接即可获取到该台设备实时的摄像头图片数据。 #### (2)控制机交互 1. TCP 服务端 ``` { "control": "success / error", "light": "success / error" } ``` 2. TCP 客户端 ``` { "control_ip": "控制器ip,字符串", "angle": "控制机角度,int型" "is_light": "是否打开补光灯,int型(0关闭 /1打开)" } ``` ## 三、设备配置 1. config.json: 项目设备的配置方式,采用 json 文件进行配置。 > device_data:为json数组方式,每一组代表一套设备的 ip,以及部署 TCP 的 ip 和端口信息 > > control:为部署操纵控制机 TCP服务的 ip 和 端口信息 > > comment:为配置文件的说明信息 ``` { "device_data": [ { "ip_control": "188.0.6.16", "ip_ipc1": "188.0.6.17", "ip_ipc2": "188.0.6.18", "tcp_ip": "127.0.0.1", "tcp_port": "7000" } ], "control": { "tcp_ip": "127.0.0.1", "tcp_port": "7001" }, "comment": "device_data —— 摄像头数据配置, control —— 控制机服务配置" } ``` ## 四、程序部署 ### (一) 设备信息 1. 程序部署所在设备: + 桥工段工控机 + 操作系统:ubuntu + IP:10.143.22.150 + 用户:dt / pg1234567 ### (二) 部署要求 1. 程序开机自启: + 参考资料:https://blog.csdn.net/qq_19980431/article/details/101192870