Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        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";
            }
        }
Esempio n. 3
0
 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();
 }