|
|
|
|
@ -29,6 +29,7 @@ using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
using System.Windows.Threading;
|
|
|
|
|
using System.Xml.Serialization;
|
|
|
|
|
using TouchSocket.Core;
|
|
|
|
|
using static Microsoft.WindowsAPICodePack.Shell.PropertySystem.SystemProperties.System;
|
|
|
|
|
using Task = System.Threading.Tasks.Task;
|
|
|
|
|
@ -96,12 +97,30 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当前状态 空闲 盘点中 写入中
|
|
|
|
|
/// </summary>
|
|
|
|
|
private string _CurrentState = "空闲";
|
|
|
|
|
public string CurrentState
|
|
|
|
|
{
|
|
|
|
|
get => _CurrentState;
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
if (_CurrentState != value)
|
|
|
|
|
{
|
|
|
|
|
_CurrentState = value;
|
|
|
|
|
RaisePropertyChanged(() => CurrentState);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public ProductionLineViewModel()
|
|
|
|
|
{
|
|
|
|
|
GetOrderInfoCommand = new RelayCommand<object>(t => RefreshData(t));
|
|
|
|
|
ChangeTypeView = App.ServiceProvider.GetService<ChangeTypeViewModel>();
|
|
|
|
|
// 构造函数里注册
|
|
|
|
|
WeakReferenceMessenger.Default.Register<Real_DataInfo>(this, RefreshOrderNo);
|
|
|
|
|
WeakReferenceMessenger.Default.Register<string, string>(this, "Cancel", StopMessage);
|
|
|
|
|
_StringChange = App.ServiceProvider.GetService<StringChange>();
|
|
|
|
|
_logger = App.ServiceProvider.GetService<SerilogHelper>();
|
|
|
|
|
appConfig = App.ServiceProvider.GetService<AppConfig>();
|
|
|
|
|
@ -176,6 +195,15 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).NextProductNo = real_Data.NextProductNo;
|
|
|
|
|
|
|
|
|
|
rfidList.FirstOrDefault(x => x.deviceid == real_Data.Deviceid).Set_BeginIdentify().GetAwaiter().GetResult();
|
|
|
|
|
CurrentState = "盘点中";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 停止盘点消息
|
|
|
|
|
/// </summary>
|
|
|
|
|
private void StopMessage(object o, string e)
|
|
|
|
|
{
|
|
|
|
|
CurrentState = "空闲";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LoadDeviceInfo()
|
|
|
|
|
@ -208,44 +236,6 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//Real_DataInfo real_DataInfo = new Real_DataInfo()
|
|
|
|
|
//{
|
|
|
|
|
// Name = "1",
|
|
|
|
|
// Deviceid = "10001",
|
|
|
|
|
// Connectstr = "192.168.0.1:20108",
|
|
|
|
|
// LineNo = "6#",
|
|
|
|
|
// OrderNo = "123456",
|
|
|
|
|
// ProductType = "整芯带",
|
|
|
|
|
// WriteCount = "0",
|
|
|
|
|
// RfidCount = "20",
|
|
|
|
|
// IsOnline = "未连接",
|
|
|
|
|
// RfidASCII = "0",
|
|
|
|
|
// RfidEPC = "0",
|
|
|
|
|
// ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
|
|
|
|
|
// WriteTime = DateTime.Now.AddSeconds(10).ToString("yyyy-MM-dd HH:mm:ss"),
|
|
|
|
|
// ProductStatus = "生产中",
|
|
|
|
|
// WriteStatus = "写入成功",
|
|
|
|
|
//};
|
|
|
|
|
//Real_DataInfo real_DataInfo2 = new Real_DataInfo()
|
|
|
|
|
//{
|
|
|
|
|
// Name = "2",
|
|
|
|
|
// Deviceid = "10002",
|
|
|
|
|
// Connectstr = "127.0.0.1:20108",
|
|
|
|
|
// LineNo = "7#",
|
|
|
|
|
// OrderNo = "123456",
|
|
|
|
|
// ProductType = "整芯带",
|
|
|
|
|
// WriteCount = "0",
|
|
|
|
|
// RfidCount = "20",
|
|
|
|
|
// IsOnline = "未连接",
|
|
|
|
|
// RfidASCII = "0",
|
|
|
|
|
// RfidEPC = "0",
|
|
|
|
|
// ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
|
|
|
|
|
// WriteTime = DateTime.Now.AddSeconds(10).ToString("yyyy-MM-dd HH:mm:ss"),
|
|
|
|
|
// ProductStatus = "生产中",
|
|
|
|
|
// WriteStatus = "写入成功",
|
|
|
|
|
//};
|
|
|
|
|
//real_DataInfos.Add(real_DataInfo);
|
|
|
|
|
//real_DataInfos.Add(real_DataInfo2);
|
|
|
|
|
App.Current.Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
Deviceinfo.Clear();
|
|
|
|
|
@ -283,7 +273,6 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
/// <param name="tagInfos"></param>
|
|
|
|
|
private async void RecvIdentifyData_Instance(string iCombineId, List<TagInfo> tagInfos)
|
|
|
|
|
{
|
|
|
|
|
string info = "";
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (string.IsNullOrEmpty(Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).OrderNo))
|
|
|
|
|
@ -314,6 +303,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
+ DateTime.Now.ToString("yy")
|
|
|
|
|
+ Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).NextProductNo
|
|
|
|
|
+ Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).SerialNo;
|
|
|
|
|
CurrentState = "写入中";
|
|
|
|
|
//写入 三次重写
|
|
|
|
|
bool writeflag = await rfidList.FirstOrDefault(x => x.deviceid == iCombineId).Set_Write(tagInfos[0].EPC, WriteData);
|
|
|
|
|
if (!writeflag)
|
|
|
|
|
@ -333,6 +323,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).WriteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).WriteStatus = "成功";
|
|
|
|
|
LastWriteState = "成功";
|
|
|
|
|
@ -355,27 +346,22 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var a = databaseService._helper.Insert(real_Readdata);
|
|
|
|
|
//刷新界面
|
|
|
|
|
//Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).RfidASCII = Encoding.ASCII.GetString(tagInfos[0].EPC);
|
|
|
|
|
//Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
//RefreshEventArgs(iCombineId, tagInfos);
|
|
|
|
|
AddRFIDData(iCombineId, tagInfos);
|
|
|
|
|
}
|
|
|
|
|
await Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
await Task.Delay(1000);
|
|
|
|
|
await rfidList.FirstOrDefault(x => x.deviceid == iCombineId)!.Set_BeginIdentify();
|
|
|
|
|
CurrentState = "盘点中";
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
Log.Error($"读结果准备写入时异常:{e.Message}");
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
CurrentState = "空闲";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void RefreshEventArgs(string iCombineId, List<TagInfo> tagInfos)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
|