diff --git a/SlnMesnac.Business/SlnMesnac.Business.csproj b/SlnMesnac.Business/SlnMesnac.Business.csproj
index 8ef8970..7786b98 100644
--- a/SlnMesnac.Business/SlnMesnac.Business.csproj
+++ b/SlnMesnac.Business/SlnMesnac.Business.csproj
@@ -5,4 +5,8 @@
enable
+
+
+
+
diff --git a/SlnMesnac.Business/TagScanBusiness.cs b/SlnMesnac.Business/TagScanBusiness.cs
new file mode 100644
index 0000000..28b7ad9
--- /dev/null
+++ b/SlnMesnac.Business/TagScanBusiness.cs
@@ -0,0 +1,75 @@
+using SlnMesnac.Model.domain;
+using SlnMesnac.TouchSocket;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+#region << 版 本 注 释 >>
+/*--------------------------------------------------------------------
+* 版权所有 (c) 2024 WenJY 保留所有权利。
+* CLR版本:4.0.30319.42000
+* 机器名称:T14-GEN3-7895
+* 命名空间:SlnMesnac.Business
+* 唯一标识:1a936e54-f672-4d86-b9bd-2747b75d4732
+*
+* 创建者:WenJY
+* 电子邮箱:
+* 创建时间:2024-09-19 9:49:11
+* 版本:V1.0.0
+* 描述:
+*
+*--------------------------------------------------------------------
+* 修改人:
+* 时间:
+* 修改说明:
+*
+* 版本:V1.0.0
+*--------------------------------------------------------------------*/
+#endregion << 版 本 注 释 >>
+namespace SlnMesnac.Business
+{
+ public class TagScanBusiness
+ {
+ private ApiServer apiServer;
+
+ public delegate void RefreshTagScanInfo(ScanLogModel scanLogModel);
+ public event RefreshTagScanInfo? RefreshTagScanInfoEvent;
+
+ public delegate void RefreshDeviceAlarmMessage(string message);
+ public event RefreshDeviceAlarmMessage? RefreshDeviceAlarmMessageEvent;
+
+
+ public TagScanBusiness(ApiServer apiServer)
+ {
+ this.apiServer = apiServer;
+
+ this.RefreshScanInfo();
+ }
+
+ private void RefreshScanInfo()
+ {
+ //扫描记录刷新
+ apiServer.ScanLogSocketAction += scan =>
+ {
+ RefreshTagScanInfoEvent?.Invoke(scan);
+ };
+
+ //告警状态刷新
+ apiServer.ScanStatusSocketAction += info =>
+ {
+ if (info != null && info.is_alarm == 1)
+ {
+ if (info.status_txt != null)
+ {
+ foreach (var item in info.status_txt)
+ {
+ RefreshDeviceAlarmMessageEvent?.Invoke(item);
+ }
+ }
+ }
+ };
+ }
+
+
+ }
+}
diff --git a/SlnMesnac.TouchSocket/ApiServer.cs b/SlnMesnac.TouchSocket/ApiServer.cs
index 6d0ab5b..dea7aaa 100644
--- a/SlnMesnac.TouchSocket/ApiServer.cs
+++ b/SlnMesnac.TouchSocket/ApiServer.cs
@@ -17,7 +17,7 @@ namespace SlnMesnac.TouchSocket
private readonly IBaseCodeService _baseCodeService;
- public Action? ScanLogSocketAction;
+ public Action? ScanLogSocketAction; //Update By WenJY 2024-09-19将返回值改为ScanLogModel
public Action? ScanStatusSocketAction;
@@ -71,8 +71,7 @@ namespace SlnMesnac.TouchSocket
[WebApi(HttpMethodType.POST)]
public Back ScanBack(ScanLogSocket scanStatus)
{
- ScanLogSocketAction?.Invoke(scanStatus);
- _scanService.Insert(new ScanLogModel()
+ var scan = new ScanLogModel()
{
CreateTime = scanStatus.CreateTime,
DataType = scanStatus.data_type,
@@ -80,8 +79,10 @@ namespace SlnMesnac.TouchSocket
Rfid = scanStatus.rfid,
Ocr = scanStatus.ocr,
Url = scanStatus.url
-
- });
+
+ };
+ ScanLogSocketAction?.Invoke(scan); //Update By WenJY 2024-09-19将返回值改为ScanLogModel
+ _scanService.Insert(scan);
return new Back();
}
}
diff --git a/SlnMesnac.WPF/Page/History/HistoryControl.xaml b/SlnMesnac.WPF/Page/History/HistoryControl.xaml
index 7c8f692..947c4f8 100644
--- a/SlnMesnac.WPF/Page/History/HistoryControl.xaml
+++ b/SlnMesnac.WPF/Page/History/HistoryControl.xaml
@@ -12,16 +12,35 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Foreground="#31446E" x:Name="dataGrid" Margin="0,10,0,0" >
diff --git a/SlnMesnac.WPF/Page/IndexControl.xaml b/SlnMesnac.WPF/Page/IndexControl.xaml
index 03f9968..0242341 100644
--- a/SlnMesnac.WPF/Page/IndexControl.xaml
+++ b/SlnMesnac.WPF/Page/IndexControl.xaml
@@ -146,14 +146,14 @@
RowHeight="31" AutoGenerateColumns="False" RowHeaderWidth="0"
GridLinesVisibility="None" ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.VerticalScrollBarVisibility="Hidden" BorderThickness="0" CanUserAddRows="False" HorizontalAlignment="Center"
- Foreground="#31446E" x:Name="dataGrid" >
+ Foreground="#31446E" x:Name="dataGrid" Margin="10,0,10,0">
-
+
diff --git a/SlnMesnac.WPF/ViewModel/IndexViewModel.cs b/SlnMesnac.WPF/ViewModel/IndexViewModel.cs
index 330ef07..a7a02ce 100644
--- a/SlnMesnac.WPF/ViewModel/IndexViewModel.cs
+++ b/SlnMesnac.WPF/ViewModel/IndexViewModel.cs
@@ -2,10 +2,13 @@
using CommunityToolkit.Mvvm.ComponentModel;
using LiveCharts;
using LiveCharts.Wpf;
+using Microsoft.Extensions.DependencyInjection;
+using SlnMesnac.Business;
using SlnMesnac.Model.domain;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -37,8 +40,16 @@ namespace SlnMesnac.WPF.ViewModel
{
public class IndexViewModel : ObservableObject
{
-
+ private TagScanBusiness tagScanBusiness;
public IndexViewModel()
+ {
+ tagScanBusiness = App.ServiceProvider.GetService();
+ this.Init();
+ this.RefreshScanInfo();
+ }
+
+
+ private void Init()
{
PassRate = 30;
@@ -54,19 +65,11 @@ namespace SlnMesnac.WPF.ViewModel
AxisX = new ObservableCollection { "8", "12", "16", "20" };
- ImagePath = "E:\\2024年项目\\RFID行李跟踪\\程序设计\\SlnMesnac.RfidIdentification\\SlnMesnac.WPF\\bin\\Debug\\net6.0-windows\\picture\\3898291920.jpg";
+
RefreshLogMessage($"1#站台任务下发站台任务下发站台任务下发站台任务下发站台任务下发站台任务下发");
- ScanItems = new ObservableCollection()
- {
- new ScanLogModel {CreateTime = DateTime.Now,DataType=1,Rfid="20240918",Code="20240918",Ocr="20240918"},
- new ScanLogModel {CreateTime = DateTime.Now,DataType=1,Rfid="20240918",Code="20240918",Ocr="20240918"},
- new ScanLogModel {CreateTime = DateTime.Now,DataType=1,Rfid="20240918",Code="20240918",Ocr="20240918"},
- };
-
- TagCode = "20240918";
- TagAmount = 362;
+ ScanItems = new ObservableCollection();
}
///
@@ -150,6 +153,25 @@ namespace SlnMesnac.WPF.ViewModel
set => SetProperty(ref _scanItems, value);
}
+ private void RefreshScanInfo()
+ {
+ tagScanBusiness.RefreshTagScanInfoEvent += info =>
+ {
+
+ App.Current.Dispatcher.Invoke(() =>
+ {
+ TagCode = info.Rfid;
+ ImagePath = info.Url;
+
+ string fileName = Path.GetFileName(info.Url);
+ info.Url = fileName;
+ ScanItems.Add(info);
+
+ TagAmount++;
+ });
+ };
+ }
+
private ObservableCollection listItems = new ObservableCollection();