|
|
|
@ -45,7 +45,6 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
public List<RfidAbsractFactory> rfidList;
|
|
|
|
public List<RfidAbsractFactory> rfidList;
|
|
|
|
private AppConfig appConfig;
|
|
|
|
private AppConfig appConfig;
|
|
|
|
private DispatcherTimer _timer;
|
|
|
|
private DispatcherTimer _timer;
|
|
|
|
private ObservableCollection<RFIDRecord> _rfidHistoryRecords = new ObservableCollection<RFIDRecord>();
|
|
|
|
|
|
|
|
private RealReadDataService dataService = RealReadDataService.Instance;
|
|
|
|
private RealReadDataService dataService = RealReadDataService.Instance;
|
|
|
|
|
|
|
|
|
|
|
|
#region 关联属性
|
|
|
|
#region 关联属性
|
|
|
|
@ -61,13 +60,25 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<RFIDRecord> RFIDHistoryRecords
|
|
|
|
private ObservableCollection<real_readdata> _preparedWriteList = new ObservableCollection<real_readdata>();
|
|
|
|
|
|
|
|
public ObservableCollection<real_readdata> PreparedWriteList
|
|
|
|
{
|
|
|
|
{
|
|
|
|
get { return _rfidHistoryRecords; }
|
|
|
|
get { return _preparedWriteList; }
|
|
|
|
set
|
|
|
|
set
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_rfidHistoryRecords = value;
|
|
|
|
_preparedWriteList = value;
|
|
|
|
RaisePropertyChanged(() => RFIDHistoryRecords);
|
|
|
|
RaisePropertyChanged(() => PreparedWriteList);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private ObservableCollection<real_readdata> _tempRecordList = new ObservableCollection<real_readdata>();
|
|
|
|
|
|
|
|
public ObservableCollection<real_readdata> TempRecordList
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get { return _tempRecordList; }
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_tempRecordList = value;
|
|
|
|
|
|
|
|
RaisePropertyChanged(() => TempRecordList);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -122,15 +133,93 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public RelayCommand<object> GetOrderInfoCommand { get; set; }
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 订单号
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private string _orderNo;
|
|
|
|
|
|
|
|
public string OrderNo
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _orderNo;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_orderNo != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_orderNo = value;
|
|
|
|
|
|
|
|
RaisePropertyChanged(() => OrderNo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 产线号
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private string _lineNo;
|
|
|
|
|
|
|
|
public string LineNo
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _lineNo;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_lineNo != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_lineNo = value;
|
|
|
|
|
|
|
|
RaisePropertyChanged(() => LineNo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 带号
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private string _bindNo;
|
|
|
|
|
|
|
|
public string BindNo
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _bindNo;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_bindNo != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_bindNo = value;
|
|
|
|
|
|
|
|
RaisePropertyChanged(() => BindNo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 写入数量
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
private string _writeCount;
|
|
|
|
|
|
|
|
public string WriteCount
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
get => _writeCount;
|
|
|
|
|
|
|
|
set
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (_writeCount != value)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_writeCount = value;
|
|
|
|
|
|
|
|
RaisePropertyChanged(() => WriteCount);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public RelayCommand<object> GenerateCodeCommand { get; set; }
|
|
|
|
|
|
|
|
public RelayCommand<object> ListClearCommand { get; set; }
|
|
|
|
|
|
|
|
public RelayCommand<object> HistoryClearCommand { get; set; }
|
|
|
|
|
|
|
|
public RelayCommand<object> HistoryPageCommand { get; set; }
|
|
|
|
|
|
|
|
public RelayCommand<object> AutoWriteCommand { get; set; }
|
|
|
|
|
|
|
|
public RelayCommand<object> RFIDWriteCommand { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
public ProductionLineViewModel()
|
|
|
|
public ProductionLineViewModel()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
GetOrderInfoCommand = new RelayCommand<object>(t => RefreshData(t));
|
|
|
|
GenerateCodeCommand = new RelayCommand<object>(t => GenerateCode(t));
|
|
|
|
|
|
|
|
ListClearCommand = new RelayCommand<object>(t => ListClear(t));
|
|
|
|
|
|
|
|
HistoryClearCommand = new RelayCommand<object>(t => HistoryClear(t));
|
|
|
|
|
|
|
|
HistoryPageCommand = new RelayCommand<object>(t => HistoryPage(t));
|
|
|
|
|
|
|
|
AutoWriteCommand = new RelayCommand<object>(t => AutoWrite(t));
|
|
|
|
|
|
|
|
RFIDWriteCommand = new RelayCommand<object>(t => RFIDWrite(t));
|
|
|
|
|
|
|
|
|
|
|
|
// 构造函数里注册
|
|
|
|
// 构造函数里注册
|
|
|
|
WeakReferenceMessenger.Default.Register<Real_DataInfo>(this, RefreshOrderNo);
|
|
|
|
|
|
|
|
_StringChange = App.ServiceProvider.GetService<StringChange>();
|
|
|
|
_StringChange = App.ServiceProvider.GetService<StringChange>();
|
|
|
|
_logger = App.ServiceProvider.GetService<SerilogHelper>();
|
|
|
|
_logger = App.ServiceProvider.GetService<SerilogHelper>();
|
|
|
|
appConfig = App.ServiceProvider.GetService<AppConfig>();
|
|
|
|
appConfig = App.ServiceProvider.GetService<AppConfig>();
|
|
|
|
@ -141,7 +230,6 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
rfid._Action += RecvIdentifyData_Instance;
|
|
|
|
rfid._Action += RecvIdentifyData_Instance;
|
|
|
|
//rfid._RefreshLogMessageAction += RefreshLogMessage;
|
|
|
|
//rfid._RefreshLogMessageAction += RefreshLogMessage;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
LoadDeviceInfo();
|
|
|
|
|
|
|
|
StartCheckStatus();
|
|
|
|
StartCheckStatus();
|
|
|
|
//GetRFIDHistoryRecords();
|
|
|
|
//GetRFIDHistoryRecords();
|
|
|
|
_currentDateTime = DateTime.Now;
|
|
|
|
_currentDateTime = DateTime.Now;
|
|
|
|
@ -157,111 +245,78 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
Log.Information("RFID输送带系统启动");
|
|
|
|
Log.Information("RFID输送带系统启动");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void RefreshData(object? t)
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 编码生成
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void GenerateCode(object obj)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Random random = new Random();
|
|
|
|
PreparedWriteList.Clear();
|
|
|
|
string ss = random.Next(10, 99).ToString();
|
|
|
|
if(!int.TryParse(WriteCount, out int count))
|
|
|
|
string EPCstring = "JSSD" + ss;
|
|
|
|
|
|
|
|
List<TagInfo> tagInfos = new List<TagInfo>();
|
|
|
|
|
|
|
|
TagInfo tagInfo = new TagInfo()
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
EPCstring = "JSSD" + ss,
|
|
|
|
MessageBox.Show("请输入有效的写入数量!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
|
EPC = Encoding.ASCII.GetBytes(EPCstring),
|
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
|
|
|
tagInfos.Add(tagInfo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == "10001").RfidEPC = _StringChange.bytesToHexStr(tagInfos[0].EPC, tagInfos[0].EPC.Length);
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == "10001").RfidASCII = EPCstring;
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == "10001").WriteStatus = "成功";
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == "10001").ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == "10001").WriteTime = DateTime.Now.AddMinutes(1).ToString("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
RecvIdentifyData_Instance("10001", tagInfos);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int i = 1; i <= count; i++)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
PreparedWriteList.Add(new real_readdata()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
objid = Guid.NewGuid().ToString(),
|
|
|
|
|
|
|
|
orderno = OrderNo,
|
|
|
|
|
|
|
|
lineno = LineNo,
|
|
|
|
|
|
|
|
bindno = BindNo,
|
|
|
|
|
|
|
|
serialno = i.ToString("D2"),
|
|
|
|
|
|
|
|
|
|
|
|
private void RefreshOrderNo(object recipient, Real_DataInfo real_Data)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
//查询当前订单产线最大序列号
|
|
|
|
|
|
|
|
List<real_readdata> real_Readdatas = dataService.Helper.Query(x => x.orderno == real_Data.OrderNo && x.lineno == real_Data.LineNo);
|
|
|
|
|
|
|
|
string SNo = "";
|
|
|
|
|
|
|
|
if (real_Readdatas.Count > 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
SNo = real_Readdatas.Max(x => x.serialno);
|
|
|
|
|
|
|
|
SNo = (Convert.ToInt32(SNo) + 1).ToString("D2");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
SNo = "1";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).SerialNo = Convert.ToInt32(SNo).ToString("D2");
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).OrderNo = real_Data.OrderNo;
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).ProductType = real_Data.ProductType;
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).LineNo = real_Data.LineNo;
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).RfidCount = real_Data.RfidCount;
|
|
|
|
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == real_Data.Deviceid).NextProductNo = real_Data.NextProductNo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rfidList.FirstOrDefault(x => x.deviceid == real_Data.Deviceid).Set_BeginIdentify().GetAwaiter().GetResult();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void LoadDeviceInfo()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
List<DeviceInfoConfig> DeviceInfos = appConfig.deviceInfoConfig.Where(x => x.Collectid == appConfig.StationCode && x.Deleteflag == 0).ToList();
|
|
|
|
|
|
|
|
List<Real_DataInfo> real_DataInfos = new List<Real_DataInfo>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in DeviceInfos)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Real_DataInfo real_DataInfo = new Real_DataInfo()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Name = item.Name,
|
|
|
|
|
|
|
|
Deviceid = item.Deviceid,
|
|
|
|
|
|
|
|
Connectstr = item.Connectstr,
|
|
|
|
|
|
|
|
LineName = item.Name,
|
|
|
|
|
|
|
|
LineNo = item.Addr,
|
|
|
|
|
|
|
|
OrderNo = "",
|
|
|
|
|
|
|
|
ProductType = "",
|
|
|
|
|
|
|
|
WriteCount = "",
|
|
|
|
|
|
|
|
RfidCount = "",
|
|
|
|
|
|
|
|
IsOnline = "未连接",
|
|
|
|
|
|
|
|
RfidASCII = "",
|
|
|
|
|
|
|
|
RfidEPC = "",
|
|
|
|
|
|
|
|
ReadTime = "",
|
|
|
|
|
|
|
|
WriteTime = "",
|
|
|
|
|
|
|
|
ProductStatus = "",
|
|
|
|
|
|
|
|
WriteStatus = "",
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
real_DataInfos.Add(real_DataInfo);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
App.Current.Dispatcher.Invoke(() =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Deviceinfo.Clear();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in real_DataInfos)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Real_DataInfo real_DataInfo = new Real_DataInfo()
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Name = item.Name,
|
|
|
|
|
|
|
|
Deviceid = item.Deviceid,
|
|
|
|
|
|
|
|
Connectstr = item.Connectstr,
|
|
|
|
|
|
|
|
LineName = item.Name,
|
|
|
|
|
|
|
|
LineNo = item.LineNo,
|
|
|
|
|
|
|
|
OrderNo = item.OrderNo,
|
|
|
|
|
|
|
|
ProductType = item.ProductType,
|
|
|
|
|
|
|
|
WriteCount = item.WriteCount,
|
|
|
|
|
|
|
|
RfidCount = item.RfidCount,
|
|
|
|
|
|
|
|
IsOnline = item.IsOnline,
|
|
|
|
|
|
|
|
RfidASCII = item.RfidASCII,
|
|
|
|
|
|
|
|
ReadTime = item.ReadTime,
|
|
|
|
|
|
|
|
WriteTime = item.WriteTime,
|
|
|
|
|
|
|
|
ProductStatus = item.ProductStatus,
|
|
|
|
|
|
|
|
WriteStatus = item.WriteStatus,
|
|
|
|
|
|
|
|
RfidEPC = item.RfidEPC,
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
Deviceinfo.Add(real_DataInfo);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 清除生成编码数据
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void ListClear(object obj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 清除历史数据
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void HistoryClear(object obj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 历史记录页面
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void HistoryPage(object obj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 自动写入
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void AutoWrite(object obj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// 自动写入
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
/// <param name="obj"></param>
|
|
|
|
|
|
|
|
private void RFIDWrite(object obj)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// 接收到连续盘点标签返回
|
|
|
|
/// 接收到连续盘点标签返回
|
|
|
|
@ -362,23 +417,12 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public void RefreshEventArgs(string iCombineId, List<TagInfo> tagInfos)
|
|
|
|
|
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
try
|
|
|
|
/// 添加数据的方法(核心:添加前/后判断行数)
|
|
|
|
{
|
|
|
|
/// </summary>
|
|
|
|
App.Current.Dispatcher.BeginInvoke((Action)(() =>
|
|
|
|
/// <param name="iCombineId"></param>
|
|
|
|
{
|
|
|
|
/// <param name="tagInfos"></param>
|
|
|
|
Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).RfidEPC = tagInfos[0].EPCstring;
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
Log.Information($"异常:{ex.Message}");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 添加数据的方法(核心:添加前/后判断行数)
|
|
|
|
|
|
|
|
public void AddRFIDData(string iCombineId, List<TagInfo> tagInfos)
|
|
|
|
public void AddRFIDData(string iCombineId, List<TagInfo> tagInfos)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//// 1. 判断当前行数是否>10,是则清空
|
|
|
|
//// 1. 判断当前行数是否>10,是则清空
|
|
|
|
@ -404,6 +448,8 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 心跳检测
|
|
|
|
#region 心跳检测
|
|
|
|
|
|
|
|
|
|
|
|
private void StartCheckStatus()
|
|
|
|
private void StartCheckStatus()
|
|
|
|
|