优化项目代码

This commit is contained in:
2026-04-22 14:45:50 +08:00
parent 4f00c84639
commit ae94957917
16 changed files with 42 additions and 36 deletions

View File

@@ -27,15 +27,23 @@ namespace 头罩视野
InitializeComponent(); InitializeComponent();
ModbusHelper.Connect("192.168.1.10", 502); // 连接一次,全局生效 ModbusHelper.Connect("192.168.1.10", 502); // 连接一次,全局生效
} }
//private void GoHome(object s, RoutedEventArgs e) => MainFrame.Content = new Views.ChangeLanguage();
private void GoTest(object s, RoutedEventArgs e) => MainFrame.Content = new Views.PageTest(); // 程序退出
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
//ModbusHelper.Dispose();
}
//private void GoTest(object s, RoutedEventArgs e) => MainFrame.Content = new Views.PageTest();
private void GoRecord(object s, RoutedEventArgs e) => MainFrame.Content = new Views.RecordDate(); private void GoRecord(object s, RoutedEventArgs e) => MainFrame.Content = new Views.RecordDate();
private void GoView(object s, RoutedEventArgs e) => MainFrame.Content = new Views.RecordPage(); //private void GoView(object s, RoutedEventArgs e) => MainFrame.Content = new Views.RecordPage();
private void GoVisiPage(object s, RoutedEventArgs e) => MainFrame.Content = new Views.VisiData(); private void GoVisiPage(object s, RoutedEventArgs e) => MainFrame.Content = new Views.VisiData();
//NavigationService.Navigate(new Views.RecordDate()); 页面相互跳转 //NavigationService.Navigate(new Views.RecordDate()); 页面相互跳转
private void ShowError(string msg) => MessageBox.Show(msg, "错误", MessageBoxButton.OK, MessageBoxImage.Error); //private void ShowError(string msg) => MessageBox.Show(msg, "错误", MessageBoxButton.OK, MessageBoxImage.Error);
} }
} }

View File

@@ -1,18 +1,19 @@
using System.Net.Sockets; using Modbus.Device;
using .Services.Data; using Microsoft.Win32;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Net.Sockets;
using System.Text; using System.Text;
using System.Windows; using System.Windows;
using Microsoft.Win32; using .Services.Data;
public static class ModbusHelper public static class ModbusHelper
{ {
// 全局唯一连接,所有页面共用 // 全局唯一连接,所有页面共用
public static TcpClient TcpClient => ModbusResourceManager.Instance.TcpClient; public static TcpClient TcpClient => ModbusResourceManager.Instance.TcpClient;
// 统一连接方法(全项目只调用一次) // 统一连接方法(全项目只调用一次)
public static bool Connect(string ip, int port = 502) public static bool Connect(string ip, int port = 502)
{ {

View File

@@ -10,8 +10,8 @@ namespace 头罩视野
public class TestRecord public class TestRecord
{ {
public int Id { get; set; } public int Id { get; set; }
public string Time { get; set; } public string Time { get; set; } = string.Empty;
public string Date { get; set; } public string Date { get; set; } = string.Empty;
public double LeftEyeArea { get; set; } public double LeftEyeArea { get; set; }
public double RightEyeArea { get; set; } public double RightEyeArea { get; set; }
public double BinocularArea { get; set; } public double BinocularArea { get; set; }

View File

@@ -23,7 +23,6 @@ namespace 头罩视野.Views
public partial class PageTest : Page public partial class PageTest : Page
{ {
private TcpClient _tcpClient => ModbusResourceManager.Instance.TcpClient;
private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster; private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
DispatcherTimer _timer; DispatcherTimer _timer;
DataChange c = new DataChange(); DataChange c = new DataChange();
@@ -32,7 +31,7 @@ namespace 头罩视野.Views
//// 定时采集用 //// 定时采集用
private DispatcherTimer testTimer; private DispatcherTimer testTimer;
// 保存上一条数据(用于去重) // 保存上一条数据(用于去重)
private TestDataStore.TestRecord _lastRecord; private TestDataStore.TestRecord? _lastRecord;
public PageTest() public PageTest()
{ {
@@ -53,10 +52,6 @@ namespace 头罩视野.Views
return; return;
} }
// 获取客户端
var client = ModbusHelper.TcpClient;
} }
//复位btn //复位btn
@@ -75,11 +70,11 @@ namespace 头罩视野.Views
ma.BtnClickFunction(Function.ButtonType., 1); ma.BtnClickFunction(Function.ButtonType., 1);
} }
//反转 //反转
private bool _isPressing = false; //private bool _isPressing = false;
private async void Button_Click_ResDown(object sender, MouseButtonEventArgs e) private async void Button_Click_ResDown(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).CaptureMouse(); ((Button)sender).CaptureMouse();
_isPressing = true; //_isPressing = true;
await Task.Run(() => await Task.Run(() =>
{ {
//重新占位写入 //重新占位写入
@@ -97,11 +92,11 @@ namespace 头罩视野.Views
} }
//正转 //正转
private bool _isPressing1 = false;
private async void Button_Click_ForDown(object sender, MouseButtonEventArgs e) private async void Button_Click_ForDown(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).CaptureMouse(); ((Button)sender).CaptureMouse();
_isPressing1 = true;
await Task.Run(() => await Task.Run(() =>
{ {
@@ -116,7 +111,6 @@ namespace 头罩视野.Views
{ {
((Button)sender).ReleaseMouseCapture(); ((Button)sender).ReleaseMouseCapture();
_isPressing1 = false;
System.Diagnostics.Debug.WriteLine("正传end"); System.Diagnostics.Debug.WriteLine("正传end");
} }

View File

@@ -46,7 +46,14 @@ namespace 头罩视野.Views
DynamicHeader(); DynamicHeader();
// 2. 调用(名字和上面的变量一致) // 2. 调用(名字和上面的变量一致)
// 2. 启动定时器定时读取数据每100ms读一次 // 2. 启动定时器定时读取数据每100ms读一次
StartPlcReadTimer(100); StartPlcReadTimer(100);
//// 判断连接
if (!ModbusHelper.IsConnected)
{
MessageBox.Show("未连接");
return;
}
} }
//动态生成表头 //动态生成表头
void DynamicHeader() void DynamicHeader()
@@ -75,7 +82,7 @@ namespace 头罩视野.Views
_plcReadTimer.Start(); _plcReadTimer.Start();
} }
private void ReadPlcData(object sender, ElapsedEventArgs e) private void ReadPlcData(object? sender, ElapsedEventArgs e)
{ {
if (_modbusMaster == null || !ModbusHelper.TcpClient.Connected) if (_modbusMaster == null || !ModbusHelper.TcpClient.Connected)
return; return;

View File

@@ -6,7 +6,7 @@
xmlns:local="clr-namespace:头罩视野.Views" xmlns:local="clr-namespace:头罩视野.Views"
mc:Ignorable="d" mc:Ignorable="d"
d:DesignHeight="768" d:DesignWidth="1024" d:DesignHeight="768" d:DesignWidth="1024"
Background="#F5F7FA" Loaded="Page_Loaded" Background="#F5F7FA" Loaded="Page_Loaded"
Title="RecordPage"> Title="RecordPage">
<Page.Resources> <Page.Resources>

View File

@@ -29,7 +29,7 @@ namespace 头罩视野.Views
public partial class RecordPage : Page public partial class RecordPage : Page
{ {
private TcpClient _tcpClient => ModbusResourceManager.Instance.TcpClient;
private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster; private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
public RecordPage() public RecordPage()

View File

@@ -25,7 +25,7 @@ namespace 头罩视野.Views
private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster; private IModbusMaster _modbusMaster => ModbusResourceManager.Instance.ModbusMaster;
DispatcherTimer _timer; DispatcherTimer _timer;
DataChange c = new DataChange(); DataChange c = new DataChange();
Function ma; Function ma ;
public VisiData() public VisiData()
{ {
InitializeComponent(); InitializeComponent();
@@ -40,8 +40,6 @@ namespace 头罩视野.Views
return; return;
} }
// 获取客户端
var client = ModbusHelper.TcpClient;
} }
//复位btn //复位btn
private void Button_Click_Reset(object sender, RoutedEventArgs e) private void Button_Click_Reset(object sender, RoutedEventArgs e)
@@ -61,11 +59,11 @@ namespace 头罩视野.Views
//反转 //反转
private bool _isPressing = false;
private async void Button_Click_ResDown(object sender, MouseButtonEventArgs e) private async void Button_Click_ResDown(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).CaptureMouse(); ((Button)sender).CaptureMouse();
_isPressing = true;
await Task.Run(() => { await Task.Run(() => {
//重新占位写入 //重新占位写入
_modbusMaster.WriteSingleCoilAsync(1, 10, true); _modbusMaster.WriteSingleCoilAsync(1, 10, true);
@@ -77,16 +75,15 @@ namespace 头罩视野.Views
private void Button_Click_ResUp(object sender, MouseButtonEventArgs e) private void Button_Click_ResUp(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).ReleaseMouseCapture(); ((Button)sender).ReleaseMouseCapture();
_isPressing = false;
System.Diagnostics.Debug.WriteLine("end1111"); System.Diagnostics.Debug.WriteLine("end1111");
} }
//正转 //正转
private bool _isPressing1 = false; //private bool _isPressing1 = false;
private async void Button_Click_ForDown(object sender, MouseButtonEventArgs e) private async void Button_Click_ForDown(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).CaptureMouse(); ((Button)sender).CaptureMouse();
_isPressing1 = true; //_isPressing1 = true;
await Task.Run(() => { await Task.Run(() => {
//重新占位写入 //重新占位写入
@@ -99,8 +96,7 @@ namespace 头罩视野.Views
private void Button_Click_ForUp(object sender, MouseButtonEventArgs e) private void Button_Click_ForUp(object sender, MouseButtonEventArgs e)
{ {
((Button)sender).ReleaseMouseCapture(); ((Button)sender).ReleaseMouseCapture();
_isPressing1 = false;
System.Diagnostics.Debug.WriteLine("正传end"); System.Diagnostics.Debug.WriteLine("正传end");
} }

View File

@@ -1,4 +1,4 @@
#pragma checksum "..\..\..\..\Views\RecordPage.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "7C25257D5B49F85310AA23991215A080D30141C5" #pragma checksum "..\..\..\..\Views\RecordPage.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "2C38967E29481C17659DB2B3BEE79230294D83EF"
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// 此代码由工具生成。 // 此代码由工具生成。