# WJDataSenderService **Repository Path**: panbin2006/wjdata-sender-service ## Basic Information - **Project Name**: WJDataSenderService - **Description**: 调用平台数据接口上报设备以及业务数据 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-08-11 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 介绍 本项目主要用于以RCU为宿主机采集与融合算法相关设备的状态信息,以及RCU本身的设备指标信息上报给需要的平台。 ## 架构 ### 任务层 任务层主要用来创建新任务,例如:上报相机的设备状态信息;上报雷达的状态信息 ### 处理层 处理层会涉及到对应的通讯协议,目前此程序已经包含对HTTP协议封装。 ### 协议层(平台) 由于不同平台会使用的不同的协议,并且与协议是一一对应的关系,所以我们将对接的平台信息以及数据协议接口通过配置的方式写在配置文件中。 ### 日志层 利用 NLog 日志框架实现分级记录程序运行日志,方便对程序错误进行全方位定位,并且支持热更新。 ### 扩展操作 1. 修改程序配置文件:appsetting.json ,添加或修改对应的平台协议信息。 2. 修改设备信息配置文件:equipment.json,根据需要修改其中的内容,然后修改程序中映射的Model代码。 3. 根据协议内容确定Model层,编写与之对应的Request/Response的Model类型并且继承相应的接口类型IModel ,具体可以参考现有代码。 4. 编写协议处理层:首先创建不同的平台文件夹,然后再对应的文件夹中编写对应API处理类然后继承相应的协议接口类。 5. 编写Job层,也是任务层,相关代码参考现有代码。值得提的是在Job层需要组织我们的request数据,然后直接调用相关的协议处理层发送给对应的平台。 ### 发布 利用VS发布功能将程序发布成独立的不依赖运行框架的程序。目前不支持单个程序打包,否则会出现意向不到的后果。 或 使用发布命令发布:dotnet publish -c Release -o publish ### 部署 #### WINDOWS ```shell sc.exe create [WorkerServicesName] binpath= [publish\xxxx.exe] # WorkerServiceName 服务的名字 ,binpath 启动文件所在的路径 sc.exe start [WorkerServicesName] # 启动服务 sc.exe stop [WorkerServicesName]#停止服务 sc.exe delete [WorkerServicesName]# 删除服务 ``` #### LINUX 1. 切换到root用户,将发布好的文件夹拷贝到/home/wj/publish下。 2. 在当前目录下执行脚本:datasender_setup.sh ```sh sh datasender_setup.sh # 部署脚本 systemctl status wj-datasender.service # 查看服务状态 systemctl start wj-datasender.service # 启动服务 systemctl stop wj-datasender.service # 停止服务 ```