public UpperShelfViewModel(MainWindow mainWindow) { this.mainWindow = mainWindow; PIC = "../image/扫描.png"; PublicData.ServerConfig.userNow = ""; thread = new Thread(new ThreadStart(() => { while (result) { if (!PublicData.ServerConfig.connState) { PublicData.ServerConfig.wirelessRfid.conn(); PublicData.ServerConfig.wirelessRfid.conset(); } lock (PublicData.ServerConfig.EpcS) { var list = (from c in PublicData.ServerConfig.EpcS where !(from d in PublicData.ServerConfig.UEpcS select d).Contains(c) select c).ToList(); int i = 0; GetSelArcByEpc getSel = new GetSelArcByEpc(); foreach (var temp in list) { object errorMsg = temp; if (getSel.SelArcByEpc(ref errorMsg)) { ReturnInfo info = errorMsg as ReturnInfo; if (info.TrueOrFalse) { InventoryInfo inventoryInfo = info.Result as InventoryInfo; inventoryInfo.order = i; i++; List.Add(inventoryInfo); PublicData.ServerConfig.UEpcS.Add(temp); } else { setError(info.Result.ToString()); break; } } else { setError(errorMsg.ToString()); break; } } } lock (PublicData.ServerConfig.UserList) { if (isWrite) { if (PublicData.ServerConfig.UserList.Count > 0) { string user = PublicData.ServerConfig.UserList.Dequeue(); if (!PublicData.ServerConfig.userNow.Equals(user)) { LocalTion = GetPosition(user); Rfidstate = Visibility.Visible; isWrite = false; } } } } Thread.Sleep(300); } thread.Abort(); thread = null; })) { IsBackground = true }; Rfidstate = Visibility.Hidden; thread.Start(); }
public InventroyViewModel(MainWindow mainWindow) { this.mainWindow = mainWindow; PublicData.ServerConfig.userNow = ""; thread = new Thread(new ThreadStart(() => { while (result) { if (!PublicData.ServerConfig.connState) { PublicData.ServerConfig.wirelessRfid.conn(); PublicData.ServerConfig.wirelessRfid.conset(); } lock (PublicData.ServerConfig.UserList) { //判断user是重复扫描 user替换刷新集合 if (PublicData.ServerConfig.UserList.Count > 0) { string uid = PublicData.ServerConfig.UserList.Dequeue(); if (!PublicData.ServerConfig.userNow.Equals(uid)) { PublicData.ServerConfig.userNow = uid; EPC = "当前层架标签位置:" + GetPosition(uid); PositionInfo info = new PositionInfo(PublicData.ServerConfig.userNow); GetDataByEPCDAL getData = new GetDataByEPCDAL(); object errorMsg = info; if (getData.GetDataByEPC(ref errorMsg)) { ReturnInfo returnInfo = errorMsg as ReturnInfo; if (returnInfo.TrueOrFalse) { positions = returnInfo.Result as List <InventoryInfo>; UseList = new List <string>(); NumberTotal = "总数:" + positions.Count(); total = positions.Count(); empty = positions.Count(); wrang = 0; shelves = 0; cages = 0; NumberEmpty = "空架:" + positions.Count(); NumberShelves = "在架:0 "; NumberCages = "顺架:0 "; NumberWrong = "错架:0 "; } } } } } lock (PublicData.ServerConfig.EpcList) { if (!string.IsNullOrEmpty(PublicData.ServerConfig.userNow)) { Task.Run(() => { GetSelArcByEpc getSelArcByEpc; while (PublicData.ServerConfig.EpcList.Count() > 0) { getSelArcByEpc = new GetSelArcByEpc(); string epc = PublicData.ServerConfig.EpcList.Dequeue(); if (!UseList.Contains(epc)) { object errorMsg = epc; if (getSelArcByEpc.SelArcByEpc(ref errorMsg)) { ReturnInfo returnInfo = errorMsg as ReturnInfo; if (returnInfo.TrueOrFalse) { InventoryInfo InventoryInfo = returnInfo.Result as InventoryInfo; UseList.Add(epc); var temp = (from c in positions where c.fkFileId == InventoryInfo.fkFileId select c).SingleOrDefault(); if (temp == null || string.IsNullOrEmpty(temp.fkFileId)) { wrang++; NumberWrong = "错架:" + wrang; InventoryInfo.Background = "red"; } if (temp != null && !string.IsNullOrEmpty(temp.fkFileId)) { cages++; NumberCages = "顺架:" + cages; shelves++; NumberShelves = "在架:" + shelves; empty--; NumberEmpty = "空架:" + empty; InventoryInfo.Background = "blue"; } InventoryInfo.order = List.Count() + 1; List.Add(InventoryInfo); } } } } }); } } Thread.Sleep(300); } thread.Abort(); thread = null; })); thread.IsBackground = true; thread.Start(); if (!PublicData.ServerConfig.connState) { PIC = "../image/停止.png"; } else { PIC = "../image/扫描.png"; } }
public QueryViewModel(MainWindow window, QueryControl control) { this.mainWindow = window; PIC = "../image/扫描.png"; if (PublicData.ServerConfig.model.Equals("0")) { Model = "离线模式"; } else { Model = "普通模式"; } thread = new Thread(new ThreadStart(() => { while (result) { if (!PublicData.ServerConfig.connState) { PublicData.ServerConfig.wirelessRfid.conn(); PublicData.ServerConfig.wirelessRfid.conset(); } lock (PublicData.ServerConfig.EpcS) { ///获取2集合不重叠部分 var list = (from c in PublicData.ServerConfig.EpcS where !(from d in PublicData.ServerConfig.UEpcS select d).Contains(c) select c).ToList(); int i = List.Count() + 1; GetSelArcByEpc getSel = new GetSelArcByEpc(); foreach (var temp in list) { object errorMsg = temp; if (getSel.SelArcByEpc(ref errorMsg)) { ReturnInfo info = errorMsg as ReturnInfo; if (info.TrueOrFalse) { InventoryInfo inventoryInfo = info.Result as InventoryInfo; inventoryInfo.order = i; i++; List <InventoryInfo> inventoryInfos = List as List <InventoryInfo>; inventoryInfos.Add(inventoryInfo); List = new List <InventoryInfo>(); List = inventoryInfos; control.Dispatcher.BeginInvoke((Action) delegate { control.grid.ItemsSource = null; control.grid.ItemsSource = List; }); PublicData.ServerConfig.UEpcS.Add(temp); } else { setError(info.Result.ToString()); break; } } else { setError(errorMsg.ToString()); break; } } Total = "已扫描到标签数量:" + PublicData.ServerConfig.UEpcS.Count; } Thread.Sleep(1000); } thread.Abort(); thread = null; })); thread.IsBackground = true; thread.Start(); }