diff --git a/ModbusDemo/Device/ModbusRTU.cs b/ModbusDemo/Device/ModbusRTU.cs
index 7b63209..1494b6b 100644
--- a/ModbusDemo/Device/ModbusRTU.cs
+++ b/ModbusDemo/Device/ModbusRTU.cs
@@ -328,6 +328,7 @@ namespace ModbusDemo.Device
m.RequestData = responseStr;
_modbusDbContext.Add(m);
_modbusDbContext.SaveChanges();
+
//判断发送回来的数据是否正确
CheckData.CheckResponse(response);
diff --git a/ModbusDemo/VIew/CoilUC.xaml b/ModbusDemo/VIew/CoilUC.xaml
index d07854e..7d84322 100644
--- a/ModbusDemo/VIew/CoilUC.xaml
+++ b/ModbusDemo/VIew/CoilUC.xaml
@@ -149,8 +149,20 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ModbusDemo/VIew/RegisterUC.xaml b/ModbusDemo/VIew/RegisterUC.xaml
index adaf8cb..6c167c9 100644
--- a/ModbusDemo/VIew/RegisterUC.xaml
+++ b/ModbusDemo/VIew/RegisterUC.xaml
@@ -147,5 +147,22 @@
Style="{StaticResource MaterialDesignRaisedDarkButton}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ModbusDemo/VIew/SettingsUC.xaml b/ModbusDemo/VIew/SettingsUC.xaml
index 3be6244..d771eb6 100644
--- a/ModbusDemo/VIew/SettingsUC.xaml
+++ b/ModbusDemo/VIew/SettingsUC.xaml
@@ -31,7 +31,7 @@
-
+
diff --git a/ModbusDemo/VIewModel/CoilUCViewModel.cs b/ModbusDemo/VIewModel/CoilUCViewModel.cs
index eed4199..fba086f 100644
--- a/ModbusDemo/VIewModel/CoilUCViewModel.cs
+++ b/ModbusDemo/VIewModel/CoilUCViewModel.cs
@@ -17,6 +17,8 @@ namespace ModbusDemo.VIewModel
///
public class CoilUCViewModel : BindableBase
{
+ //定义数据库操作
+ private ModbusDbContext _modbusDbContext;
//获取读线圈的类
private IModbusRTU _modbusRTU;
//定义读线圈的命令
@@ -127,7 +129,7 @@ namespace ModbusDemo.VIewModel
set
{
_writeData = value;
- RaisePropertyChanged();
+
}
}
@@ -152,70 +154,15 @@ namespace ModbusDemo.VIewModel
}
- public CoilUCViewModel(SerialPort serialPort, ModbusRTU modbusRTU)
+ public CoilUCViewModel(SerialPort serialPort, ModbusRTU modbusRTU, ModbusDbContext modbusDbContext)
{
_serialPort = serialPort;
ReadCoilCmm = new DelegateCommand(ReadCoil);
_modbusRTU = modbusRTU;
WriteCoilCmm = new DelegateCommand(WriteCoil);
-
-
- ModbusLogList = new List();
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "读取",
- RequestData = "01 03 00 00 00 02",
- ResponseData = "01 03 04 00 0A 00 0B",
-
- Time = DateTime.Now.AddMinutes(-5)
- });
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "写入",
- RequestData = "01 06 00 01 00 03",
- ResponseData = "01 06 00 01 00 03",
-
- Time = DateTime.Now.AddMinutes(-2)
- });
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "读取",
- RequestData = "01 03 00 00 00 02",
- ResponseData = "01 03 04 00 0A 00 0B",
-
- Time = DateTime.Now.AddMinutes(-5)
- });
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "写入",
- RequestData = "01 06 00 01 00 03",
- ResponseData = "01 06 00 01 00 03",
-
- Time = DateTime.Now.AddMinutes(-2)
- });
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "读取",
- RequestData = "01 03 00 00 00 02",
- ResponseData = "01 03 04 00 0A 00 0B",
-
- Time = DateTime.Now.AddMinutes(-5)
- });
-
- ModbusLogList.Add(new ModbusLog
- {
- OperationType = "写入",
- RequestData = "01 06 00 01 00 03",
- ResponseData = "01 06 00 01 00 03",
-
- Time = DateTime.Now.AddMinutes(-2)
- });
-
+ _modbusDbContext = modbusDbContext;
+ //初始化查询操作
+ ModbusLogList = GetOperateCoil();
}
///
@@ -266,5 +213,18 @@ namespace ModbusDemo.VIewModel
}
}
+
+ ///
+ /// 获取展示数据
+ ///
+ ///
+ private List GetOperateCoil()
+ {
+ return _modbusDbContext.ModbusLog
+ .Where(log => log.OperationType == "读线圈" || log.OperationType == "写线圈")
+ .OrderByDescending(log => log.Time) // 按时间倒序,最新的在前
+ .Take(20) // 只取前20条记录
+ .ToList(); // 执行查询
+ }
}
}
diff --git a/ModbusDemo/VIewModel/RegisterUCViewModel.cs b/ModbusDemo/VIewModel/RegisterUCViewModel.cs
index a267095..623a469 100644
--- a/ModbusDemo/VIewModel/RegisterUCViewModel.cs
+++ b/ModbusDemo/VIewModel/RegisterUCViewModel.cs
@@ -1,4 +1,5 @@
using ModbusDemo.Device;
+using ModbusDemo.Model;
using Prism.Commands;
using Prism.Mvvm;
using System;
@@ -13,7 +14,8 @@ namespace ModbusDemo.VIewModel
{
class RegisterUCViewModel:BindableBase
{
-
+ //定义数据库操作类
+ private ModbusDbContext _modbusDbContext;
//获取读线圈的类
private IModbusRTU _modbusRTU;
//定义读线圈的命令
@@ -131,16 +133,32 @@ namespace ModbusDemo.VIewModel
#endregion
+ private List _modbusLogList;
+
+ public List ModbusLogList
+ {
+ get { return _modbusLogList; }
+ set
+ {
+ _modbusLogList = value;
+ RaisePropertyChanged();
+ }
+ }
+
public RegisterUCViewModel()
{
}
- public RegisterUCViewModel(SerialPort serialPort, ModbusRTU modbusRTU)
+ public RegisterUCViewModel(SerialPort serialPort, ModbusRTU modbusRTU,ModbusDbContext modbusDbContext)
{
_serialPort = serialPort;
ReadRegisterCmm = new DelegateCommand(ReadRegister);
_modbusRTU = modbusRTU;
WriteRegisterCmm = new DelegateCommand(WriteRegister);
+ _modbusDbContext = modbusDbContext;
+
+ ModbusLogList = GetOperateRegister();
+
}
@@ -208,5 +226,17 @@ namespace ModbusDemo.VIewModel
}
}
+ ///
+ /// 获取展示数据
+ ///
+ ///
+ private List GetOperateRegister()
+ {
+ return _modbusDbContext.ModbusLog
+ .Where(log => log.OperationType == "读寄存器" || log.OperationType == "写寄存器")
+ .OrderByDescending(log => log.Time) // 按时间倒序,最新的在前
+ .Take(20) // 只取前20条记录
+ .ToList(); // 执行查询
+ }
}
}