C#实现数据采集系统-系统优化服务封装

news2024/12/23 18:11:21

系统优化-服务封装

现在我们调用modbustcp和mqtt都直接在Program,所有加载和功能都混合在一起,比较难以维护
在这里插入图片描述

类似asp.net core项目的Program.cs代码如下,构建服务配置和启动
在这里插入图片描述

要实现的效果,Main方法中就是一个服务启动,只需要几行代码
在这里插入图片描述

分析代码

这里分成两部分,一部分是配置文件加载,另一部分是各种功能调用和启动

在这里插入图片描述

优化封装

配置封装

在DAqOption增加List<RegisterPoint>数据点位集合,让配置信息都在一个Option中,他将作为参数传递到后续的服务中去

public class DAqOption
{
    public DeviceLink DeviceLi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗健康类应用,适合采用哪些风格?本文归纳之,并附案例。

医疗健康类应用的设计风格应该注重用户友好性、专业性和清晰易懂。以下是一些适合医疗健康类应用采用的设计风格&#xff1a; 1. 清晰简洁的界面&#xff1a; 医疗健康类应用的界面设计应该简洁清晰&#xff0c;避免过多花哨的元素&#xff0c;让用户能够快速找到他们需要的信…

JAVA-案列练习-ATM项目

在JAVA入门学习后进行的项目练习——模拟ATM系统。 目录 1.设计内容和要求 2.代码实现 &#xff08;1&#xff09;ATM账号类的定义 &#xff08;2&#xff09;ATM类中的操作 &#xff08;3&#xff09;操作说明 3.总结 1.设计内容和要求 01 系统架构搭建&#xff0c;欢…

Spring Cloud全解析:注册中心之Eureka架构介绍

Eureka架构介绍 Eureka在设计时采用的是AP原则&#xff0c;是Netflix的一个子模块&#xff0c;用于微服务的服务注册与发现 P:Partition tolerance,网络分区容错。类似多机房部署&#xff0c;保证服务稳定性A: Availability&#xff0c;可用性C:Consistency &#xff0c;一致…

【时时三省】(C语言基础)函数递归

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ——csdn时时三省 什么是递归 程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法&#xff0c;它通常把一个大型复杂…

Jenkin:动态选择Git分支

Jenkin&#xff1a;动态选择Git分支 build时输入分支 构建的时候添加一个字符参数 选择设置的变量&#xff0c;需要用${}括起来 构建时的效果 build时下拉选择分支 安装Git 参数插件 添加git参数 选择设置的变量&#xff0c;需要用${}括起来 构建时的效果

如何在不同设备上检查您的 IP 地址?

IP 地址&#xff08;Internet 协议地址&#xff09;是网络上设备的唯一标识符。了解如何查找 IP 地址对于解决网络问题、设置网络设备和维护网络安全非常重要。本文将详细介绍如何在不同设备上检查 IP 地址&#xff0c;包括 Windows 计算机、Mac 计算机、智能手机&#xff08;A…

计算机网络快速入门---百年前人们不敢想象的黑科技

目录 1.引言 2.快递VS网络 3.网络模型 3.1两个模型 3.2传输过程 4.IP 4.1IP简介 4.2解决方案一 5.局域网和互联网 5.1局域网说明 5.2互联网说明 6.网络攻击 1.引言 注意&#xff0c;这个只是一个快速入门&#xff0c;不是我开始进行系统学习了&#xff0c;这个博客…

【unity小技巧】unity性能优化以及如何进行性能测试

文章目录 前言GPU性能优化打包素材 CPU性能优化代码执行优化 性能测试Vector2.Distance 和 sqrMagnitude哪个好&#xff1f;动画切换优化shader属性优化 URP渲染器资产优化对象池优化删除没必要的空函数图片、音乐音效、贴图等素材压缩ScriptableObject优化参数参考完结 前言 …

数据结构与算法-15高级数据结构_树论(堆树)

堆树 1 简介 1.1 什么是堆树 定义&#xff1a;堆树是一种特殊的完全二叉树&#xff0c;其中每个节点的值都遵循一定的堆属性。具体来说&#xff0c;堆分为最大堆和最小堆。 最大堆&#xff1a;在最大堆中&#xff0c;每个父节点的值都大于或等于其任何子节点的值。这意味着…

SpringMVC02

1.拦截器 1.1基本概念 SpringMVC 中的Interceptor拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆等操作。对于SpringMVC拦截器的定义方式 有两种: 实现接口:org.springframework.web.ser…

CAD-文字、图块、多行文字,沿多段线对齐到多段线的顶点,沿直线进行均分,都可以操作

图块和文字对齐直线-均布直线-对齐多段线顶点-旋转平行 (defun c:duiqi () ;将图块与直线对齐&#xff0c;并均分。;先创建的图块排最右;先等分的坐标排最右;刚好对应了(defun MoveToPosition (Blockname p_list / ent refPoint dx dy) ;移动对象到指定坐标(prompt "\nSel…

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧

【Git-驯化】一文学会git中对代码进行存储操作&#xff1a;git stash技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内…

@change事件传参

change事件传参 change"(value)>handleChange(value, item,index)" 这样可以接收index参数区分是哪一个组件事件&#xff0c;又可以接收子组件传的value值 <div class"boxItem" v-for"(item, index) in checkPeopleList" :key"inde…

VUE实现TAB切换不同页面

VUE实现TAB切换不同页面 实现效果 资源准备 ReceiveOrderList, TodoListMulti, SignList 这三个页面就是需要切换的页面 首页代码 <template><div><el-tabs v-model"activeTab" type"card" tab-click"handleTabClick"><…

用于相位解包的卷积和空间四向 LSTM 联合网络

原文&#xff1a;A Joint Convolutional and Spatial Quad-Directional LSTM Network for Phase Unwrapping 作者&#xff1a;Malsha V. Perera 和 Ashwin De Silva 摘要&#xff1a; 相位展开是一个经典的病态问题&#xff0c;其目标是从包裹相位中恢复真实的相位。本文&…

鸿蒙(API 12 Beta2版)NDK开发【使用Node-API扩展能力接口】

简介 [扩展能力接口]进一步扩展了Node-API的功能&#xff0c;提供了一些额外的接口&#xff0c;用于在Node-API模块中与ArkTS进行更灵活的交互和定制&#xff0c;这些接口可以用于创建自定义ArkTS对象等场景。 Node-API接口开发流程参考[使用Node-API实现跨语言交互开发流程]…

非负数、0和正整数 限制最大值且保留两位小数在elementpuls表单中正则验证

一、结构 <el-form-item label"单价&#xff1a;" prop"price"><el-inputv-model.trim"formData.price"placeholder"请输入"blur"formMethod.fixTwo"><template #append>(元)</template></el-i…

基础算法:离散化(C++实现)

文章目录 1. 离散化的定义2. 离散化例题2.1 离散化二分2.2 离散化哈希表 1. 离散化的定义 离散化是一种在程序设计和算法优化中常用的技术&#xff0c;其核心思想是将无限空间中有限的个体映射到有限的空间中去&#xff0c;以此提高算法的时空效率。具体来说&#xff0c;离散化…

Docker 安装 GitLab教程

本章教程,主要介绍如何在Docker 中安装GitLab。 GitLab 是一个开源的 DevOps 平台,提供了一整套工具,用于软件开发生命周期的各个阶段,从代码管理到 CI/CD(持续集成和持续交付/部署),再到监控和安全分析。 一、拉取镜像 docker pull gitlab/gitlab-ce:latest二、创建 G…

【React】探讨className的正确使用方式

文章目录 一、className的正确用法二、常见错误解析三、实例解析四、错误分析与解决五、注意事项六、总结 在React开发中&#xff0c;正确使用className属性对组件进行样式设置至关重要。然而&#xff0c;由于JavaScript和JSX的特殊性&#xff0c;开发者常常会犯一些小错误&…