private void SetBackground(object obj) { this.grid.Dispatcher.BeginInvoke(new Action(() => { var batteryCount = ProcTrayManage.GetBatteryCount(Current.Option.Tray11_Id); this.grid.Children.Clear(); for (int i = 0; i < 8; i++) { for (int j = 0; j < 4; j++) { var border = new Border() { Background = i * 4 + (Common.PROJ_NO == "0079" ? 3 - j : j) < batteryCount ? Brushes.LightGreen : Brushes.White, // Margin = new Thickness(0.1), BorderThickness = new Thickness(0.5), BorderBrush = Brushes.Black }; this.grid.Children.Add(border); Grid.SetRow(border, i); Grid.SetColumn(border, j); } } })); }
public void Comm() { if (Arthur.App.Current.Option.RemainingMinutes <= 0) { return; } if (Current.MainMachine.IsAlive && Current.Option.IsBatteryScanReady && !Current.Option.IsAlreadyBatteryScan && Current.Option.Tray11_Id > 0) { //绑盘位电池已满,不扫码,直到出现新托盘再扫 if (ProcTrayManage.GetBatteryCount(Current.Option.Tray11_Id) >= Common.TRAY_BATTERY_COUNT) { Running.ShowErrorMsg("绑盘位扫码电池数超过最大值:" + Common.TRAY_BATTERY_COUNT); return; } Current.Option.IsAlreadyBatteryScan = true; var ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout); if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG")) { ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout); if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG")) { ret = this.Commor.Comm(this.ScanCommand, this.ReadTimeout); if (!ret.IsSucceed || ret.Data.ToString().StartsWith("NG")) { var msg = ret.Data.ToString().StartsWith("NG") ? "扫码NG" : " 扫码失败!" + ret.Msg; this.RealtimeStatus = msg; Current.MainMachine.Commor.Write("D433", (ushort)2); Running.ShowErrorMsg(this.Name + msg); this.IsAlive = false; return; } } } var code = ret.Data.ToString(); this.RealtimeStatus = "+" + code; Current.MainMachine.Commor.Write("D433", (ushort)1); this.IsAlive = true; //把电池条码保存进数据库 var saveRet = new Business.BatteryManage().Create(new Model.Battery() { Code = code }, true); if (saveRet.IsSucceed) { var t = new Thread(() => { //界面交替显示扫码状态 Thread.Sleep(2000); this.RealtimeStatus = "等待扫码..."; }); t.Start(); } else { Running.StopRunAndShowMsg(saveRet.Msg); } } }