Esempio n. 1
0
        public void handleOneByte(byte b)
        {
            serialBuf.Add(b);
            if (serialBuf[0] != 0xfe)
            {
                serialBuf.RemoveAt(0);
            }
            if (serialBuf.Count < 11)
            {
                return;
            }
            eArgs = null;
            if (serialBuf[2] == 0xF2)//车子错位,重新规划回起点
            {
                if (serialBuf[8] == 0x70)
                {
                    if (serialBuf[9] == 0x0D && serialBuf[10] == 0xB1 && serialBuf[11] == 0xDB)
                    {
                        eArgs = new SerialEventArgs("reF2");
                    }
                    else if (serialBuf[9] == 0x0c && serialBuf[10] == 0x38 && serialBuf[11] == 0xca)
                    {
                        eArgs = new SerialEventArgs("reT1");
                    }
                }
            }
            else if (serialBuf[2] == 0xF6)                                                //呼叫器呼叫
            {
                if (serialBuf[7] == 0x0c && serialBuf[8] == 0x38 && serialBuf[9] == 0xca) //T1呼叫
                {
                    eArgs = new SerialEventArgs("toT1");
                }
                else if (serialBuf[7] == 0x0e && serialBuf[8] == 0x2a && serialBuf[9] == 0xe9)//T2呼叫
                {
                    eArgs = new SerialEventArgs("toT2");
                }
            }

            try
            {
                if ((null != serialEvent) && (eArgs != null))
                {
                    serialEvent(this, eArgs);
                    serialBuf.Clear();//有效帧
                }
                else if ((serialBuf.Count == 11) && (eArgs == null))
                {
                    serialBuf.Clear();//无效命令帧
                }
                else if (serialBuf.Count >= 13)
                {
                    serialBuf.Clear();
                }
            }
            catch (Exception x)
            {
                Console.WriteLine(x.Message);
            }
        }
Esempio n. 2
0
        public void agvSerialRemoteEvent(object sender, SerialEventArgs e)
        {
            ++callNum;
            if (callNum == 1)
            {
                Invoke(new niming(button8.PerformClick)); //初始化
            }
            Invoke(new niming(button1.PerformClick));     //AGV1
            try
            {
                switch (e.Message)
                {
                case "toT1":
                    Invoke(new niming(Station1.PerformClick));
                    Invoke(new niming(button9.PerformClick));
                    break;

                case "toT2":
                    Invoke(new niming(Station2.PerformClick));
                    Invoke(new niming(button9.PerformClick));
                    break;

                case "reF2":
                    //aTimer1.Elapsed -= new ElapsedEventHandler(OnTimedEvent1);
                    startPositon = "F2";
                    Invoke(new niming(SetLocation1));
                    Invoke(new niming(SetStartStation1));
                    Invoke(new niming(StartStation.PerformClick));
                    Invoke(new niming(button9.PerformClick));
                    break;

                case "reT1":
                    startPositon = "T1";
                    Invoke(new niming(SetLocation1));
                    Invoke(new niming(SetStartStation1));
                    Invoke(new niming(StartStation.PerformClick));
                    Invoke(new niming(button9.PerformClick));
                    break;
                }
            }
            catch (Exception x)
            {
                Console.WriteLine(x.Message);
            }
        }