C# 第二阶段 modbus

news/2024/12/26 22:08:10/

1:nuget添加依赖

新建项目后,添加NModbus,

2:测试软件:Modbus slave ,新建一个从站,并连接

3:通信测试

4:本次学到的内容

        4.1:用的DockPanel标签,使其能自适应。

        4.2:ContentControl标签,切换主页面布局

        4.3:mvvm架构,绑定数据以及操作

<Window x:Class="Device_Data.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Device_Data"mc:Ignorable="d"Title="自动化设备" Height="auto" Width="auto" MinWidth="800" MinHeight="800" Background="#E1F5FE"><Grid><DockPanel LastChildFill="true"><!--LastChildFill="true" true 最后一个子元素填充剩余空间--><Border DockPanel.Dock="Left" BorderBrush="Black" BorderThickness="1" Width="100"><StackPanel><Button  Content="主页面" Height="30" Width="75" Margin="0,20,0,0"/><Button Click="show_console" Command="{Binding consoleView}" Content="输出" Height="30" Width="75" Margin="0,20,0,0"/><Button Click="show_data" Command="{Binding dataView}" Content="看板" Height="30" Width="75" Margin="0,20,0,0"/></StackPanel></Border><Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="auto" Height="50"><StackPanel Orientation="Horizontal"><Label Content="IP:" Height="auto" Width="auto" Margin="10"/><TextBox Name="IP_Data" Height="20" TextWrapping="Wrap" Text="192.168.10.246" Width="auto" MinWidth="100"/><Label Content="端口:" Height="auto" Width="auto" Margin="10"/><TextBox Name="Port" Height="20" TextWrapping="Wrap" Text="502" Width="auto" MinWidth="50"/><Button Click="link" Content="连接" Height="20" Width="56" Margin="50,10,1,10"/><Button Click="stop_link" Content="断开连接" Height="20" Width="56" Margin="20,10,1,10"/><Button Click="read_data" Content="开始接收" Height="20" Width="56" Margin="20,10,1,10"/><Button Click="stop_read" Content="停止接收" Height="20" Width="56" Margin="20,10,1,10"/></StackPanel></Border><Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="auto" MinHeight="500"><ContentControl x:Name="mainConten"/></Border><Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Height="40"><StackPanel HorizontalAlignment="Left"  VerticalAlignment="Bottom" Height="30"  Width="auto" Orientation="Horizontal"><Label Content="控制台" Height="28" Width="87" FontSize="15"/><Button Click="clear" Content="清空" Height="30" Width="87"/></StackPanel></Border><Border DockPanel.Dock="Bottom" Background="White" BorderBrush="Black" BorderThickness="1" Width="auto" Height="auto"  Margin="10,10,10,10"><TextBox Name="result" TextWrapping="Wrap" Text="" TextChanged="TextBox_TextChanged"/></Border></DockPanel></Grid>
</Window>

源码地址:c#WPFModbusmvvm应用资源-CSDN文库


http://www.ppmy.cn/news/1558363.html

相关文章

解决在vue3+vite+element-plus 中echarts在el-dialog无法正常显示问题

核心&#xff1a;在dom加载完成后调用echarts实例 的resize()方法 这里是一个例子 这里封装一个echarts <template><div class"container" ref"container"></div> </template> <script lang"ts" setup> import {…

如何使用 WebAssembly 扩展后端应用

1. WebAssembly 简介 随着互联网的发展&#xff0c;越来越多的应用借助 Javascript 转到了 Web 端&#xff0c;但人们也发现&#xff0c;随着移动互联网的兴起&#xff0c;需要把大量的应用迁移到手机端&#xff0c;随着手端的应用逻辑越来越复杂&#xff0c;Javascript 的解析…

js创建对象的方式

1.字面量 const obj {}2.工厂函数 function createPerson(name, age) {return {name,age,greet() {console.log("Hello!");}}; }const person createPerson("Charlie", 35);3.Object.create 4.构造函数 cosnt obj new Object()5.class class Perso…

武汉市电子信息与通信工程职称公示了

2024年武汉市电子信息与通信工程专业职称公示了&#xff0c;本次公示通过人员有109人。 基本这已经是今年武汉市工程相关职称最后公示了&#xff0c;等待出证即可。 为什么有人好奇&#xff0c;一样的资料&#xff0c;都是业绩、论文等&#xff0c;有的人可以过&#xff0c;有的…

评估大语言模型在药物基因组学问答任务中的表现:PGxQA

​这篇文献主要介绍了一个名为PGxQA的资源&#xff0c;用于评估大语言模型&#xff08;LLM&#xff09;在药物基因组学问答任务中的表现。 研究背景 药物基因组学&#xff08;Pharmacogenomics, PGx&#xff09;是精准医学中最有前景的领域之一&#xff0c;通过基因指导的治疗…

安卓帧率获取

背景 性能优化&#xff0c;经常用到一些指标&#xff0c;诸如帧率、功耗等。对于普通app来讲&#xff0c; 之前一直使用gfxinfo指令获取丢帧率。但是这个指令无法获取游戏的帧率&#xff0c;查阅资料&#xff0c;发现SurfaceFlinger可以获取游戏帧率。 帧率获取原理 获取当前f…

视频的音乐怎么提取为MP3格式?

MP3是一种广泛使用的音频压缩格式&#xff0c;以其高效的压缩率和良好的音质表现&#xff0c;成为了数字音频领域中的佼佼者&#xff0c;广泛应用于音乐存储、传输和播放。在日常生活中&#xff0c;我们经常遇到需要从视频中提取音频并将其转换为MP3格式的情况。视频的音乐怎么…

Rust之抽空学习系列(五)—— 所有权(上)

Rust之抽空学习系列&#xff08;五&#xff09;—— 所有权&#xff08;上&#xff09; 1、什么是所有权 所有权是确保Rust程序安全的一种机制 安全则是指程序中没有未定义的行为未定义的行为是指在执行一段代码时&#xff0c;结果不可预测且未被编程语言指定的情况Rust的基…