Example #1
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            try
            {
                switch (stateItem.ItemName)
                {
                case "ACK":
                    object obj = ObjectUtil.GetObject(stateItem.State);
                    if (obj == null)
                    {
                        return;
                    }
                    string ack = obj.ToString();

                    Logger.Debug(stateItem.Name + " Receive ACK:" + ack);
                    if (ack.Equals("True") || ack.Equals("1"))
                    {
                        WriteToService(stateItem.Name, "STB", 0);
                        Logger.Debug(stateItem.Name + " Receive ACK 1");
                    }
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Logger.Error("CraneACKProcess StateChanged方法出错,原因:" + ex.Message);
            }
        }
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            /*  ´¦ÀíÊÂÏ
             *  Init£º³õʼ»¯
             *  Refresh£ºË¢ÐÂLEDÆÁ¡£
             *      ¡®01¡¯£ºÒ»ºÅÆÁ ÏÔʾÇëÇóÈë¿âÍÐÅÌÐÅÏ¢
             *      ¡®02¡¯£º¶þºÅÆÁ ÏÔʾÇëÇó²¹»õµÄ»ìºÏÑ̵À²¹»õ˳ÐòÐÅÏ¢
             */
            string cigaretteName = "";

            switch (stateItem.ItemName)
            {
            case "Refresh":
                this.Refresh();
                break;

            case "StockInRequestShow":
                cigaretteName = Convert.ToString(stateItem.State);
                this.StockInRequestShow(cigaretteName);
                break;

            default:
                if (stateItem.ItemName != string.Empty && stateItem.State is LedItem[])
                {
                    Show(stateItem.ItemName, (LedItem[])stateItem.State);
                }
                break;
            }
        }
        private void ProcessState(StateItem stateItem)
        {
            switch (stateItem.ItemName)
            {
            case "SimulateDialog":
                string scannerCode = stateItem.State.ToString();
                THOK.AS.Stocking.View.SimulateDialog simulateDialog = new THOK.AS.Stocking.View.SimulateDialog();
                simulateDialog.Text = scannerCode + " 号扫码器手工扫码!";
                if (simulateDialog.ShowDialog() == DialogResult.OK)
                {
                    Dictionary <string, string> parameters = new Dictionary <string, string>();
                    parameters.Add("barcode", simulateDialog.Barcode);
                    Context.ProcessDispatcher.WriteToProcess("ScanProcess", scannerCode, parameters);
                }
                Context.ProcessDispatcher.WriteToProcess("ScanProcess", "ErrReset", "01");
                break;

            case "ScanDialog":
                Dictionary <string, string> scanParam = (Dictionary <string, string>)stateItem.State;
                Scan(scanParam["text"], scanParam["cigaretteCode"], scanParam["barcode"]);
                break;

            case "MessageBox":
                Dictionary <string, object> msgParam = (Dictionary <string, object>)stateItem.State;
                MessageBox.Show((string)msgParam["msg"], (string)msgParam["title"], (MessageBoxButtons)msgParam["messageBoxButtons"], (MessageBoxIcon)msgParam["messageBoxIcon"]);
                break;

            default:
                break;
            }
        }
Example #4
0
    private void ExecuteState(StateItem item)
    {
        switch (item.stateItemType)
        {
        case StateItem.StateItemType.NewLevel:
            StartNewLevel();
            break;

        case StateItem.StateItemType.Hiden:
            _openCards[0].HideCard();
            _openCards[1].HideCard();
            _openCards[0] = null;
            _openCards[1] = null;
            FoundPair++;
            Score += Random.Range(1, 4);    // randomize prize
            UpdateScore();
            if (FoundPair == 7)
            {
                previousLevelTimeLeft = (int)slider.value;
                _stateGame            = StateGame.level_finished;
            }
            break;

        case StateItem.StateItemType.Open:
            //item.card.OpenCard();
            break;

        case StateItem.StateItemType.Close:
            _openCards[0].CloseCard();
            _openCards[0] = null;
            _openCards[1].CloseCard();
            _openCards[1] = null;
            break;
        }
    }
Example #5
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            try
            {
                string lineCode     = stateItem.ItemName.Split("_"[0])[0];
                string channelGroup = stateItem.ItemName.Split("_"[0])[1];
                object obj          = ObjectUtil.GetObject(stateItem.State);
                int    sortNo       = obj != null?Convert.ToInt32(obj) : 0;

                using (PersistentManager pm = new PersistentManager())
                {
                    SupplyDao supplyDao = new SupplyDao();
                    int       sortNo1   = supplyDao.FindSortNoForSupply(lineCode, sortNo.ToString(), channelGroup, Convert.ToInt32(Context.Attributes["SupplyAheadCount-" + lineCode + "-" + channelGroup]));
                    sortNo = sortNo > sortNo1 ? sortNo : sortNo1;
                }

                Dictionary <string, string> parameter = new Dictionary <string, string>();
                parameter.Add("OrderDate", "");
                parameter.Add("BatchNo", "");
                parameter.Add("LineCode", lineCode);
                parameter.Add("ChannelGroup", channelGroup);
                parameter.Add("SortNo", sortNo.ToString());

                WriteToProcess("SupplyRequestProcess", "SupplyRequest", parameter);
            }
            catch (Exception e)
            {
                Logger.Error(e.Message);
            }
        }
Example #6
0
        public SensorEditForm(StateItem item)
        {
            _item = (WSNSensorItem)item;

            InitializeComponent();

            txtSensorName.Text = _item.Name;

            foreach (SensorType type in Enum.GetValues(typeof(SensorType)))
            {
                this.cmbSensorType.Items.Add(type.ToString());
                if (type == _item.NodeType)
                {
                    this.cmbSensorType.SelectedItem = type.ToString();
                }
            }

            foreach (SensorMode mode in Enum.GetValues(typeof(SensorMode)))
            {
                this.cmbSensorMode.Items.Add(mode.ToString());
                if (mode == _item.NodeMode)
                {
                    this.cmbSensorMode.SelectedItem = mode.ToString();
                }
            }
            if (this.cmbSensorMode.SelectedIndex < 0)
            {
                this.cmbSensorMode.SelectedIndex = (int)SensorMode.Normal;
            }

            //loadTransitionGuardControl(false);
        }
Example #7
0
        private void ProcessProgress(StateItem stateItem)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new ProgressEventHandler(ProcessProgress), stateItem);
            }
            else
            {
                if (!progressPanel.Visible)
                {
                    progressPanel.Visible = true;
                }
                ProgressState progressState = (ProgressState)stateItem.State;

                if (progressState.IsFinish)
                {
                    progressPanel.Visible = false;
                }
                else
                {
                    lblProgress.Text    = progressState.StateDescription;
                    progressBar.Maximum = progressState.TotalStep;
                    progressBar.Value   = progressState.CurrentStep;
                    Application.DoEvents();
                }
            }
        }
Example #8
0
 public override void Process(StateItem stateItem)
 {
     if (stateItem.ItemName == "ProgressState")
     {
         ProcessProgress(stateItem);
     }
     else
     {
         if (devices.ContainsKey(stateItem.ItemName))
         {
             List<Device> deviceList = devices[stateItem.ItemName];
             if (stateItem.State is Array)
             {
                 Array array = (Array)stateItem.State;
                 for (int i = 0; i < array.Length; i++)
                 {
                     if (i < deviceList.Count)
                         deviceList[i].State = array.GetValue(i).ToString();
                     else
                         break;
                 }
             }
             else
             {
                 if (deviceList.Count != 0)
                     deviceList[0].State = stateItem.State.ToString();
             }
         }
         else
         {
             MessageBox.Show(string.Format("û���ҵ�����Ϊ��{0}�����豸��", stateItem.ItemName), "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         Invalidate();
     }
 }
        protected override void RichInit()
        {
            base.RichInit();     // as first line - call base initialization

            // your initialization here
            if (StateItem == null)
            {
                return;                        // no UIStateItem
            }
            rectRransform = StateItem.GetComponent <RectTransform>();
            canvasGroup   = StateItem.GetComponent <CanvasGroup>();
            layoutElement = StateItem.GetComponent <LayoutElement>();

            InitAnimationFields();
            InitAnimationStates();

            // if layout element animation is not enabled
            if (!(animationFields.LayoutElement_preferredHeight || animationFields.LayoutElement_preferredWidth))
            {
                // call default state
                if (
                    !(Application.isEditor && !Application.isPlaying) &&          // except not playing editor
                    StateItem.group == null                // and single mode
                    )
                {
                    StateItem.SetStateDefault(true);
                }
            }
        }
Example #10
0
        private string GetLedMessage(string LedNo, string ItemNo, StateItem item)
        {
            string strMsg = "";

            try
            {
                string Stock = "外盘:";
                if (int.Parse(ItemNo) % 2 == 0)
                {
                    Stock = "内盘:";
                }
                string PalletCode   = "";
                string CellCode     = " 位:";
                string CraneErrorNo = "0";
                if (int.Parse(LedNo) % 2 == 0 && int.Parse(ItemNo) % 2 == 0)
                {
                    int CarNo = int.Parse(LedNo) / 2;
                    CraneErrorNo = ObjectUtil.GetObject(WriteToService("CranePLC" + CarNo, "nAlarmCode")).ToString();
                }
                if (CraneErrorNo != "0")
                {
                    string    ErrMsg = "堆垛机未知错误";
                    DataRow[] drs    = dtCraneError.Select(string.Format("warncode='{0}'", CraneErrorNo));
                    if (drs.Length > 0)
                    {
                        ErrMsg = drs[0]["WARNDESC"].ToString();
                    }

                    strMsg = ErrMsg;
                }
                else
                {
                    string errorNo = ObjectUtil.GetObject(WriteToService(StockPLC, ItemNo + "_ErrCode")).ToString();
                    if (errorNo != "0")
                    {
                        strMsg = Stock + (PalletCode.Length > 0 ? "托盘:" + PalletCode : "") + dicStockWarning[errorNo];
                        if (item.ItemName.IndexOf("_ErrCode") >= 0 && ItemNo == item.ItemName.Split('_')[0])
                        {
                            Logger.Error("输送线:" + ItemNo + (PalletCode.Length > 0 ? "托盘编号:" + PalletCode : "") + dicStockWarning[errorNo]);
                        }
                    }
                    else
                    {
                        string Tasks = Util.ConvertStringChar.BytesToString((byte[])WriteToService(StockPLC, ItemNo + "_TaskNo"));
                        Tasks = Tasks.PadRight(26, ' ');
                        if (Tasks.Length > 0)
                        {
                            PalletCode = Tasks.Substring(10, 8).Trim();
                            CellCode   = " 位:" + Tasks.Substring(18, 8).Trim();
                        }
                        strMsg = Stock + PalletCode + CellCode;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("LEDProcess中GetLedMessage异常:" + ex.Message);
            }
            return(strMsg);
        }
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            try
            {
                bool needNotify = false;

                string lineCode     = stateItem.ItemName.Split("_"[0])[0];
                string channelGroup = stateItem.ItemName.Split("_"[0])[1];
                string channelType  = stateItem.ItemName.Split("_"[0])[2];

                object obj    = ObjectUtil.GetObject(stateItem.State);
                int    sortNo = obj != null?Convert.ToInt32(obj) : 0;

                if (sortNo == 0)
                {
                    return;
                }

                sortNo = sortNo + Convert.ToInt32(Context.Attributes["SupplyAheadCount-" + lineCode + "-" + channelGroup + "-" + channelType]);

                needNotify = AddNextSupply(lineCode, channelGroup, channelType, sortNo);

                if (needNotify)
                {
                    WriteToProcess("LedStateProcess", "Refresh", null);
                    WriteToProcess("ScannerStateProcess", "Refresh", null);
                    dispatcher.WriteToProcess("DataRequestProcess", "SupplyRequest", 1);
                }
            }
            catch (Exception e)
            {
                Logger.Error("补货批次生成处理失败,原因:" + e.Message);
            }
        }
Example #12
0
        private void Add(BehaviorTreeStateData state)
        {
            StateItem item = new StateItem(this, state);

            _Editor.AddToList(state);
            SetStyle(item);
            _StateList.Items.Add(item);
        }
        public void DefaultValuesTest()
        {
            var item = new StateItem();

            Assert.AreEqual(null, item.Type);
            Assert.AreEqual(null, item.Key);
            Assert.AreEqual(null, item.Value);
        }
Example #14
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            try
            {
                string cmd = stateItem.ItemName;
                Dictionary <string, string> obj = (Dictionary <string, string>)stateItem.State;
                string IsUpErp = "1";
                string ErpMsg  = obj["MSG"];
                if (obj["Result"].ToUpper() == "N")
                {
                    IsUpErp = "0";
                }
                string strTaskType = "";
                string Where       = string.Format("WCS_Task.Barcode like '%{0}%'", obj["BillNo"]);

                if (cmd.Trim() == "")
                {
                    Logger.Error("Erp回传内容为空!");
                    return;
                }
                switch (cmd)
                {
                case "InStock":
                    strTaskType = "入库";
                    Where       = string.Format(" billid in (  select billid from wcs_task where taskid in (select taskid  from WCS_TASK where barcode like '%{0}%' and tasktype='11')) ", obj["BillNo"]);
                    break;

                case "OutStock":
                    strTaskType = "出库";
                    Where       = string.Format("  billid in ( select BillID  from WCS_TASK where barcode like '%{0}%' and tasktype='12') ", obj["BillNo"]);
                    break;

                case "CheckStock":
                    Where       = string.Format("BillID='{0}'", obj["BillNo"]);
                    strTaskType = "盘点";
                    Where      += " and TaskType=14 ";
                    break;
                }

                BLL.BLLBase bll = new BLL.BLLBase();


                bll.ExecNonQuery("WCS.UpdateBillUpErp", new DataParameter[] { new DataParameter("@IsUpERP", IsUpErp), new DataParameter("@ErpMSG", ErpMsg), new DataParameter("{0}", Where) });
                string InfoMesg = strTaskType + "熔次卷号:" + obj["BillNo"] + "返回值为:" + obj["Result"] + "," + obj["MSG"];
                if (IsUpErp == "0")
                {
                    Logger.Error(InfoMesg);
                }
                else
                {
                    Logger.Info(InfoMesg);
                }
            }
            catch (Exception ex)
            {
                Logger.Error("ErpProcess出错:" + ex.Message);
            }
        }
Example #15
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            object obj = ObjectUtil.GetObject(stateItem.State);

            if (obj == null)
            {
                return;
            }

            BLL.BLLBase bll     = new BLL.BLLBase();
            string      Request = obj.ToString();

            if (Request.Equals("True") || Request.Equals("1"))
            {
                try
                {
                    string taskNo = Util.ConvertStringChar.BytesToString(ObjectUtil.GetObjects(WriteToService(stateItem.Name, "Barcode")));
                    if (taskNo.Trim().Length > 0)
                    {
                        string Barcode = taskNo.PadRight(20, ' ').Substring(10, 10).Trim();

                        DataTable dt = bll.FillDataTable("WCS.SelectReadTaskByPallet", new DataParameter[] { new DataParameter("@PalletCode", Barcode) });
                        if (dt.Rows.Count > 0)
                        {
                            string TaskType = dt.Rows[0]["TaskType"].ToString();
                            string TaskNo   = dt.Rows[0]["TaskNo"].ToString();
                            if (TaskType == "12" || TaskType == "15" || TaskType == "14") //出库,托盘出库,盘点
                            {
                                DataParameter[] param = new DataParameter[] { new DataParameter("@TaskNo", TaskNo) };
                                bll.ExecNonQueryTran("WCS.Sp_TaskProcess", param);
                                Logger.Info("出库任务完成,任务号:" + TaskNo + " 条码号:" + Barcode);


                                string   strValue = "";
                                string[] str      = new string[3];
                                if (TaskType == "12" || TaskType == "14")//显示拣货信息.
                                {
                                    str[0] = "1";
                                    if (TaskType == "14")
                                    {
                                        str[0] = "2";
                                    }

                                    while ((strValue = FormDialog.ShowDialog(str, dt)) != "")
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Error("到达出库口,错误讯息:" + ex.Message);
                }
            }
        }
 void StartAnimation(string startState, string endState)
 {
     isAnimationActive          = false;
     animationStartState        = StateItem.GetStateId(startState);
     animationEndState          = StateItem.GetStateId(endState);
     animationCurrentDuration   = 0;
     animationCurrentStartDelay = animationStartDelay;
     isAnimationActive          = true;
 }
Example #17
0
 public void OnNo()
 {
     nextButton.interactable = false;
     saveSlotButtons[selectedIndex].ResetButton();
     saveSlotButtons[selectedIndex].EnableButton(titleMetaData.slotMode == 0);
     selectedIndex = -1;
     gameName      = "";
     selectedState = null;
 }
Example #18
0
    public void ActivateScreen(TitleMetaData metaData)
    {
        titleMetaData = metaData;
        gameObject.SetActive(true);
        warning.SetActive(false);
        nextButton.interactable   = false;
        cancelButton.interactable = false;
        if (titleMetaData.slotMode == 1)          //|| titleMetaData.slotMode == 1 )
        {
            toggle.gameObject.SetActive(false);
        }
        else
        {
            toggle.gameObject.SetActive(true);
        }
        toggle.isOn       = false;
        selectedName.text = selectedDate.text = loadedGameScenario.text = itemType.text = "";
        selectedState     = null;
        selectedIndex     = -1;

        if (titleMetaData.slotMode == 0)
        {
            headingText.text = "New Save Slot";
            nextText.text    = "Next";
            campaignSaveWarning.SetActive(true);
        }
        else
        {
            headingText.text = "Load A Saved Game";
            nextText.text    = "Begin";
            campaignSaveWarning.SetActive(false);
        }

        //reset all buttons
        for (int i = 0; i < saveSlotButtons.Length; i++)
        {
            saveSlotButtons[i].ResetButton();
            if (titleMetaData.slotMode == 0)              //disable by default
            {
                saveSlotButtons[i].EnableButton();
            }
        }

        stateItems = GameState.GetSaveItems().ToArray();
        for (int i = 0; i < stateItems.Length /*Mathf.Min( saveSlotButtons.Length, stateItems.Length )*/; i++)
        {
            if (stateItems[i] != null)
            {
                saveSlotButtons[i].Init(stateItems[i]);
            }
        }

        finalFader.DOFade(0, .5f).OnComplete(() =>
        {
            cancelButton.interactable = true;
        });
    }
Example #19
0
        public void ValueTopClampedProperly_ByFunction()
        {
            Setup();
            InitialValue = 1234;

            // TODO can be done cleaner, create two items as fields? // maybe outdated comment
            TestItem = new StateItemFloat(TestName, MinValue, () => MaxValue, InitialValue, ChangePerMinute, true);

            Assert.AreEqual(MaxValue, TestItem.GetValue <float>());
        }
Example #20
0
        public StateItem ToModel()
        {
            var state = new StateItem()
            {
                Name = this.Name,
                Date = this.Date
            };

            return(state);
        }
Example #21
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            try
            {
                object obj = ObjectUtil.GetObject(stateItem.State);
                if (obj == null)
                {
                    return;
                }

                string PalletOut = obj.ToString();
                if (PalletOut.Equals("True") || PalletOut.Equals("1"))
                {
                    //如果工作模式是储存且不是托盘组入库,需产生一个托盘组出库任务
                    object workmode = ObjectUtil.GetObject(Context.ProcessDispatcher.WriteToService("ConveyorPLC2", "GetWorkMode"));

                    Logger.Info("触发出托盘");
                    //if (Program.mainForm.WorkMode == 1)
                    if (workmode.ToString() == "1")
                    {
                        string CellCode = "";
                        Logger.Info("开始产生空托盘出库");
                        DataParameter[] param = new DataParameter[]
                        {
                            new DataParameter("@CraneNo", "01"),
                            new DataParameter("@ProductCode", "0001"),
                            new DataParameter("@CellCode", CellCode),
                            new DataParameter("@Valid", 2),
                            new DataParameter("@WorkMode", Program.mainForm.WorkMode),
                            new DataParameter("@WorkModeId", Program.mainForm.WorkModeId)
                        };

                        bll.FillDataTable("WCS.Sp_CreateOutTask", param);
                        Logger.Info("空托盘出库已产生");
                    }
                }
            }
            catch (System.Data.SqlClient.SqlException e)
            {
                //如果是存储过程名称是PROC_NAME,而且State是数据库中设置的一个值 如:66
                //则该异常就是我们需要特殊处理的一个异常
                if (e.Procedure.Equals("Sp_CreateInTask") && e.State == 1)
                {
                    Logger.Error("Dispatching.Process.StockOutPalletProcess:" + e.Message);
                }
                else if (e.Procedure.Equals("Sp_CreateOutTask") && e.State == 1)
                {
                    Logger.Error("Dispatching.Process.StockOutPalletProcess:" + e.Message);
                }
            }
            catch (Exception e)
            {
                Logger.Error("Dispatching.Process.StockOutPalletProcess:" + e.Message);
            }
        }
Example #22
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            bool   blnChange    = false;
            string strState     = "";
            string strCarNo     = "";
            string strReadItem  = "";
            string strWriteItem = "";

            switch (stateItem.ItemName)
            {
            case "CarOutRequest":
            case "CarInRequest":
                OrderIndex++;
                blnChange = false;
                InsertdtCar((DataTable)stateItem.State);
                break;

            case "02_1_C01_3":
                strState     = ObjectUtil.GetObject(stateItem.State).ToString();
                blnChange    = true;
                strCarNo     = "01";
                strReadItem  = "02_1_C01";
                strWriteItem = "02_2_C01";
                break;

            case "02_1_C02_3":
                strState     = ObjectUtil.GetObject(stateItem.State).ToString();
                blnChange    = true;
                strCarNo     = "02";
                strReadItem  = "02_1_C02";
                strWriteItem = "02_2_C02";
                break;

            case "02_1_C03_3":
                strState     = ObjectUtil.GetObject(stateItem.State).ToString();
                blnChange    = true;
                strCarNo     = "03";
                strReadItem  = "02_1_C03";
                strWriteItem = "02_2_C03";
                break;

            case "02_1_C04_3":
                strState     = ObjectUtil.GetObject(stateItem.State).ToString();
                blnChange    = true;
                strCarNo     = "04";
                strWriteItem = "02_2_C04";
                strReadItem  = "02_1_C04";
                break;
            }
            if (!blnChange)
            {
                return;
            }
            CarStateChange(strState, strCarNo, strReadItem, strWriteItem);
        }
Example #23
0
        public void RegisterState(Enum state, Action enterAction = null, Action updateAction = null, Action exitAction = null, Action lateUpdateAction = null)
        {
            StateItem stateItem = new StateItem();

            stateItem.enterAction      = enterAction;
            stateItem.updateAction     = updateAction;
            stateItem.lateUpdateAction = lateUpdateAction;
            stateItem.exitAction       = exitAction;

            _states.Add(state, stateItem);
        }
Example #24
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            /*  处理事项:
             * 一楼入库烟包处理
             */

            try
            {
                object obj = ObjectUtil.GetObject(stateItem.State);
                if (obj == null || obj.ToString() == "0")
                {
                    return;
                }


                string strBadFlag = "";
                //其他情况电控报警处理
                switch (obj.ToString())
                {
                case "1":
                    strBadFlag = "左边条码无法读取";
                    break;

                case "2":
                    strBadFlag = "右边条码无法读取";
                    break;

                case "3":
                    strBadFlag = "两边条码无法读取";
                    break;

                case "4":
                    strBadFlag = "两边条码不一致";
                    break;
                }
                string   strBarCode;
                string[] strMessage = new string[3];
                strMessage[0] = "3";
                strMessage[1] = strBadFlag;

                while ((strBarCode = FormDialog.ShowDialog(strMessage, null)) != "")
                {
                    byte[] b = Common.ConvertStringChar.stringToByte(strBarCode, 80);
                    WriteToService("StockPLC_01", "01_2_124_1", b); //写入条码
                    WriteToService("StockPLC_01", "01_2_124_2", 1); //写入标识。

                    break;
                }
            }
            catch (Exception e)
            {
                Logger.Error("THOK.XC.Process.Process_01.NotReadBarcodeProcess:" + e.Message);
            }
        }
Example #25
0
        public PointF GetEndPoint()
        {
            StateItem to = (StateItem)this.to;
            if (this.nails.Count == 0)
            {
                StateItem from = (StateItem)this.from;
                return GraphUltility.FindPointByDistance(to.Center(), from.Center(), StateItem.R + 2);
            }

            return GraphUltility.FindPointByDistance(to.Center(), this.nails[this.nails.Count - 1].Center(), StateItem.R + 2);
        }
Example #26
0
        protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher)
        {
            /*  处理事项:
             * 二楼空托盘组入库
             * 生成入库单,入库作业。
             */
            try
            {
                object[] obj = ObjectUtil.GetObjects(stateItem.State);
                if (obj[0] == null || obj[0].ToString() == "0")
                {
                    return;
                }

                int    PalletCount = int.Parse(obj[1].ToString());
                string TaskID      = "";

                //判断是否还有出库任务
                TaskDal dal          = new TaskDal();
                int     TaskOutCount = dal.CarTaskInfo();

                if (PalletCount >= 4 || TaskOutCount <= 4)
                {
                    //获取托盘组入库下达排程任务而小车未接货的任务号,防止托盘组数量变化引起触发
                    TaskID = dal.GetPalletInTask();
                    string strWhere = "";
                    if (TaskID == "")
                    {
                        PalletBillDal Billdal = new PalletBillDal();
                        TaskID = Billdal.CreatePalletInBillTask(false);

                        strWhere = string.Format("TASK_ID='{0}'", TaskID);
                        string[] CellValue = dal.AssignCellTwo(strWhere);//货位申请
                        string   TaskNo    = dal.InsertTaskDetail(CellValue[0]);

                        dal.UpdateTaskState(CellValue[0], "1");//更新任务开始执行

                        ProductStateDal StateDal = new ProductStateDal();
                        //更新Product_State 货位
                        StateDal.UpdateProductCellCode(CellValue[0], CellValue[1]);

                        //更新货位申请起始地址及目标地址。
                        dal.UpdateTaskDetailStation("357", "359", "2", string.Format("TASK_ID='{0}' AND ITEM_NO=1", CellValue[0]));
                    }
                    strWhere = string.Format("WCS_TASK.TASK_ID='{0}' AND ITEM_NO=2 AND DETAIL.STATE=0 ", TaskID);
                    DataTable dt = dal.TaskCarDetail(strWhere);
                    WriteToProcess("CarProcess", "CarInRequest", dt);
                }
            }
            catch (Exception e)
            {
                Logger.Error("THOK.XC.Process.Process_02.PalletInRequestProcess:" + e.Message);
            }
        }
Example #27
0
 private void SetStyle(StateItem item)
 {
     if (item.State.Name == _Editor.BehaviorTree.DefaultState)
     {
         item.Style = _DefaultStateStyle;
     }
     else
     {
         item.Style = _NormalStateStyle;
     }
 }
        private void Canvas_ItemDoubleClick(object sender, CanvasItemEventArgs e)
        {
            if (e.CanvasItem.Item is StateItem)
            {                                             //a state node is clicked
                StateItem editedState = e.CanvasItem.Item as StateItem;
                string    sName       = editedState.Name; //the name of the sensor clicked on the canvas

                MessageBox.Show("The state clicked is " + sName, "State information",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Example #29
0
        public void AddStateNote(int taskIndex, string notes)
        {
            TaskItem task = _manager.GetByIndex(taskIndex);

            if (task.StatesHistory == null || task.StatesHistory.Count < 1)
            {
                throw new InvalidOperationException("Task doesn't have a state");
            }
            StateItem currentState = task.StatesHistory.OrderByDescending(s => s.TimeStamp).FirstOrDefault();

            currentState.Notes = notes;
        }
Example #30
0
        public PointF GetStartingPoint()
        {
            StateItem from = (StateItem)this.from;

            if (this.nails.Count == 0)
            {
                StateItem to = (StateItem)this.to;
                return(GraphUltility.FindPointByDistance(from.Center(), to.Center(), StateItem.R + 2));
            }

            return(GraphUltility.FindPointByDistance(from.Center(), this.nails[0].Center(), StateItem.R + 2));
        }
        public void GetterSetterTest()
        {
            var item = new StateItem();

            item.Key   = "Key";
            item.Type  = typeof(StateItem);
            item.Value = this;

            Assert.AreEqual("Key", item.Key);
            Assert.AreEqual(typeof(StateItem), item.Type);
            Assert.AreEqual(this, item.Value);
        }
Example #32
0
 public virtual void Process(StateItem stateItem)
 {
     state = ProcessState.Waiting;
 }
Example #33
0
        private void ProcessProgress(StateItem stateItem)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new ProgressEventHandler(ProcessProgress), stateItem);
            }
            else
            {
                if (!progressPanel.Visible)
                    progressPanel.Visible = true;
                ProgressState progressState = (ProgressState)stateItem.State;

                if (progressState.IsFinish)
                    progressPanel.Visible = false;
                else
                {
                    lblProgress.Text = progressState.StateDescription;
                    progressBar.Maximum = progressState.TotalStep;
                    progressBar.Value = progressState.CurrentStep;
                    Application.DoEvents();
                }
            }
        }