private void btnConfirm_Click(object sender, RoutedEventArgs e)
        {
            var code   = this.battery_code.Text.Trim();
            var result = BatteryManage.NgBatteryOutFromPack(code);

            if (result.IsSucceed)
            {
                tip.Background = new SolidColorBrush(Colors.Green);
                tip.Text       = "移除成功";
                tip.Visibility = Visibility.Visible;

                var sortPack = Current.SortPacks.FirstOrDefault(o => o.SortResult == sortResult);
                if (sortPack != null)
                {
                    sortPack.Count = PackManage.GetPackCount(this.packId);
                }

                this.sort_result.Content        = "";
                this.pack_code.Content          = "";
                this.pack_battery_count.Content = "";
            }
            else
            {
                tip.Background = new SolidColorBrush(Colors.Red);
                tip.Text       = result.Msg;
                tip.Visibility = Visibility.Visible;
            }
        }
Пример #2
0
        private void btnInitPack_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("确定当前打包状态为初始化状态(分选位托盘尚未开始打包,且全部打包箱体中电池个数为0)?", "初始化打包确认", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
            {
                return;
            }

            PackManage.Init();
        }
 private void Battery_code_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Enter)
     {
         var code = (sender as TextBox).Text.Trim();
         if (!string.IsNullOrEmpty(code))
         {
             var battery = GetObject.GetByCode <Battery>(code);
             if (battery.Id > 0)
             {
                 this.sortResult          = battery.SortResult;
                 this.sort_result.Content = this.sortResult;
                 packId = battery.PackId;
                 var pack = GetObject.GetById <Pack>(packId);
                 if (pack.Id > 0)
                 {
                     this.pack_code.Content          = pack.Code;
                     this.pack_battery_count.Content = PackManage.GetPackCount(packId);
                     tip.Visibility            = Visibility.Collapsed;
                     this.btnConfirm.IsEnabled = true;
                 }
                 else
                 {
                     tip.Background = new SolidColorBrush(Colors.Red);
                     tip.Text       = "该电池尚未绑定箱体!";
                     tip.Visibility = Visibility.Visible;
                 }
             }
             else
             {
                 tip.Background = new SolidColorBrush(Colors.Red);
                 tip.Text       = "系统中不存在该电池!";
                 tip.Visibility = Visibility.Visible;
             }
         }
     }
     else
     {
         tip.Visibility = Visibility.Collapsed;
     }
 }
Пример #4
0
        private void btnFinishPack_Click(object sender, RoutedEventArgs e)
        {
            var sortPack = (SortPackViewModel)sort_pack_list.SelectedItem;

            if (sortPack == null)
            {
                Running.ShowErrorMsg("请选中要打包的类型!");
                return;
            }

            var text = string.Format("当前您选中的打包类型为:{0}, 箱体中包含电池个数:{1}\r\n确定要结束打包?", sortPack.SortResult, sortPack.Count);

            if (MessageBox.Show(text, "结束打包确认", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
            {
                return;
            }

            var result = PackManage.Finish(sortPack);

            if (result.IsFailed)
            {
                Running.ShowErrorMsg(result.Msg);
                return;
            }

            //打开保存二维码的文件夹
            var dirPath = QRCoderManage.GetSaveQRCodeDirPath(sortPack.SortResult);

            try
            {
                System.Diagnostics.Process.Start(dirPath);
            }
            catch (Exception ex)
            {
                Running.ShowErrorMsg(ex.Message);
            }
        }
Пример #5
0
        public void Comm()
        {
            if (Arthur.App.Current.Option.RemainingMinutes <= 0)
            {
                return;
            }
            //发送给PLC上位机在线心跳
            this.Commor.Write("D441", (ushort)1);

            var ret = this.Commor.Read("D400", (ushort)60);

            if (ret.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                var recv = (ushort[])ret.Data;

                this.chargeModelIsAuto    = recv[44] == 1;
                this.dischargeModelIsAuto = recv[45] == 1;
                this.jawModelIsAuto       = recv[46] == 1;

                Current.Option.JawMoveInfo.Col   = Convert.ToInt32(recv[50]);
                Current.Option.JawMoveInfo.Row   = Convert.ToInt32(recv[51]);
                Current.Option.JawMoveInfo.Floor = Convert.ToInt32(recv[52]);

                Current.Option.IsTaskFinished = recv[36] == (ushort)1;

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            var ret2 = this.Commor.Read("W400", (ushort)10);

            if (ret2.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                var recv    = (ushort[])ret2.Data;
                var bitStr1 = Convert.ToString(recv[0], 2).PadLeft(16, '0');

                Current.Option.IsBatteryScanReady    = bitStr1[13] == '1';
                Current.Option.IsBindTrayScanReady   = bitStr1[12] == '1';
                Current.Option.IsUnbindTrayScanReady = bitStr1[11] == '1';


                var bitStr2 = Convert.ToString(recv[5], 2).PadLeft(16, '0');

                if (this.chargeModelIsAuto)
                {
                    Current.Option.IsHasTray11 = bitStr2[15] == '1';
                    Current.Option.IsHasTray12 = bitStr2[14] == '1';
                    Current.Option.IsHasTray13 = bitStr2[13] == '1';
                }

                if (dischargeModelIsAuto)
                {
                    Current.Option.IsHasTray21 = bitStr2[12] == '1';
                    Current.Option.IsHasTray22 = bitStr2[11] == '1';
                    Current.Option.IsHasTray23 = bitStr2[10] == '1';
                }

                if (this.jawModelIsAuto)
                {
                    Current.Option.IsJawHasTray = bitStr2[9] == '1';
                }

                Current.Option.IsTaskReady = bitStr2[8] == '1';

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            var ret3 = this.Commor.ReadInt("D439");

            if (ret3.IsSucceed)
            {
                this.RealtimeStatus = "通信中...";

                //0079 最左值 -5540111 最右值 805192
                //0081 最左值 -985910  最右值 12040249

                Current.Option.JawPos = Common.PROJ_NO == "0079" ? ((int)ret3.Data + 5542000) / 11900 :
                                        ((int)ret3.Data + 985910) / 21200;

                this.IsAlive = true;
            }
            else
            {
                this.RealtimeStatus = ret.Msg;
                this.IsAlive        = false;
            }

            Current.App.IsTerminalInitFinished = true;

            if (IsPackEnabled)
            {
                var ret4 = this.Commor.Read("D443");
                if (ret4.IsSucceed)
                {
                    var recv            = (ushort[])ret4.Data;
                    var isReadyIntoPack = recv[0] == 1;

                    if (this.IsReadyIntoPack && !isReadyIntoPack)
                    {
                        //电池放入拉带完成
                        PackManage.AfterPack(OrderManage.GetBindOrderByPackOrder(Current.Option.CurrentPackOrder));
                        Current.Option.CurrentPackOrder = Current.Option.CurrentPackOrder % 32 + 1;
                    }

                    if (this.IsReadyIntoPack)
                    {
                        this.Commor.Write("D443", (ushort)0);
                    }

                    this.IsReadyIntoPack = isReadyIntoPack;
                }
            }
        }