Exemple #1
0
 public override void DoWork(PLCMsg msg)
 {
     CurrMsg = msg;
     AskPallet_Fujiao();
     //判断专机满表启动插针
     if (CurrMsg.PALLET_COUNT == 8 &&
         !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3))
     {
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 3,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
     }
     if (CurrMsg.STATUS == 1)                                            //判断插针就绪
     {
         //判断其他专机非放行状态
         var d2 = DeviceBase.GetDevice("E02202");
         if (d2.CurrMsg?.STATUS == 2)
         {
             return;
         }
         var d3 = DeviceBase.GetDevice("E02203");
         if (d3.CurrMsg?.STATUS == 2)
         {
             return;
         }
         var d4 = DeviceBase.GetDevice("E02204");
         if (d4.CurrMsg?.STATUS == 2)
         {
             return;
         }
         //放行后等10秒再次放行
         if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 10)
         {
             return;
         }
         LAST_PASS_TIME = DateTime.Now;
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 2,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         Task.Run(() =>
         {
             //System.Threading.Thread.Sleep(5000);//5s后放行
             GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机
         });
     }
     else
     {
     }
 }
        private void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (the_control.ID != layout.ID || msg != ControlMsg.LAYOUT_RESIZED_BY_CHILDREN)
            {
                return;
            }

            scroll_frame.Pane_Height = layout.Height;
            var num = (int)(scroll_frame.Parent.Height * 0.649999976158142);

            if (scroll_frame.Pane_Height > 100)
            {
                scroll_frame.Visible = true;
                if (scroll_frame.Pane_Height < num)
                {
                    scroll_frame.Height = scroll_frame.Pane_Height;
                }
                else
                {
                    scroll_frame.Height = num;
                }
            }
            else
            {
                scroll_frame.Visible = false;
            }

            scroll_frame.Refresh();
        }
Exemple #3
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (msg == ControlMsg.MSG_HIT)
            {
                if (the_control.ID == 2)
                {
                    SetTrackPosition(m_track_position - m_pushbuttonstep);
                }
                else if (the_control.ID == 1)
                {
                    SetTrackPosition(m_track_position + m_pushbuttonstep);
                }
            }
            if (the_control.GetElementType() == ElementType.ButtonWidget && msg == ControlMsg.MSG_MOVE && the_control.ID == 0)
            {
                var fPosition = xparam / yparam * m_range + m_range_start;
                if (rounding_place >= 0)
                {
                    fPosition = (float)Math.Round(fPosition, rounding_place, MidpointRounding.AwayFromZero);
                }

                SetTrackPosition(fPosition);
            }
            if (the_control != null)
            {
                return;
            }

            SetTrackPosition(xparam / yparam * m_range + m_range_start);
        }
Exemple #4
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (the_control.ID == 0)
            {
                if (msg != ControlMsg.SCROLL_MOVE)
                {
                    return;
                }

                if (verticalSlider.Visible)
                {
                    var scrollbarWidth = scrollbar_width;
                }
                ScollableChildframe.Y = -(int)xparam;
            }
            else if (the_control.ID == 1)
            {
                if (msg != ControlMsg.SCROLL_MOVE)
                {
                    return;
                }

                if (horizonalSlider.Visible)
                {
                    var scrollbarWidth = scrollbar_width;
                }
                ScollableChildframe.X = -(int)xparam;
            }
            else
            {
                base.OnControlMsg(the_control, msg, xparam, yparam);
            }
        }
Exemple #5
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (the_control.GetElementType() == ElementType.ListBoxWidget && msg == ControlMsg.SELECTCHANGED)
            {
                var index = (int)xparam;
                if (index < 0 || index >= listboxwidget.Items.Count)
                {
                    return;
                }

                editboxwidget.Text = listboxwidget.Items[index].ToString();
                ShowDropDown       = false;
            }
            else if (the_control.GetElementType() == ElementType.EditBoxWidget && msg == ControlMsg.TEXT_CHANGED)
            {
                if (TextChangedCallback == null)
                {
                    return;
                }

                TextChangedCallback(this);
            }
            else
            {
                base.OnControlMsg(the_control, msg, xparam, yparam);
            }
        }
Exemple #6
0
        public override void DoWork(PLCMsg msg)
        {
            return;

            CurrMsg = msg;
            if (CurrMsg.STATUS == 1)//判断挡停放行
            {
                //判断挡停后边专机空闲
                var nxtDevice = DeviceBase.GetDevice("E0100201");
                if (nxtDevice.CurrMsg?.STATUS == 0)
                {
                    ControlMsg ctlMsg = new ControlMsg()
                    {
                        DEVICE_TYPE  = msg.DEVICE_TYPE,
                        NO           = msg.NO,
                        COMMAND_ID   = 2,
                        MESSAGE_TYPE = "control",
                        time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停
                }
            }
            else
            {
            }
        }
Exemple #7
0
 public override void DoWork(PLCMsg msg)
 {
     CurrMsg = msg;
     if (CurrMsg.STATUS == 1)//判断专机放行
     {
         //放行后等5秒再次放行
         if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
         {
             return;
         }
         LAST_PASS_TIME = DateTime.Now;
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 2,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         Task.Run(() =>
         {
             //System.Threading.Thread.Sleep(5000);//5秒后放行
             GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
         });
     }
     else
     {
     }
 }
Exemple #8
0
    //process commands received from remote controller
    public void OnNetworkReceive(NetPeer peer, NetDataReader reader)
    {
        ControlMsg msg    = (ControlMsg)reader.GetInt();
        bool       turnOn = reader.GetInt() > 0;

        receivedMessageInfo.text = string.Format("received message: {0} {1}", msg, turnOn);

        switch (msg)
        {
        case ControlMsg.forward:
            if (turnOn)
            {
                localForwardBtn.OnPointerDown(null);
            }
            else
            {
                localForwardBtn.OnPointerUp(null);
            }
            break;

        case ControlMsg.backward:
            if (turnOn)
            {
                localBackwardBtn.OnPointerDown(null);
            }
            else
            {
                localBackwardBtn.OnPointerUp(null);
            }
            break;

        case ControlMsg.left:
            if (turnOn)
            {
                localLeftBtn.OnPointerDown(null);
            }
            else
            {
                localLeftBtn.OnPointerUp(null);
            }
            break;

        case ControlMsg.right:
            if (turnOn)
            {
                localRightBtn.OnPointerDown(null);
            }
            else
            {
                localRightBtn.OnPointerUp(null);
            }
            break;

        case ControlMsg.light:
            FlashLight.ToggleAndroidFlashlight();
            break;
        }
    }
Exemple #9
0
    public virtual void ControllEventTigger(ControlMsg msg)
    {
        switch (msg.index)
        {
        case InputHandleIndex.First:
            switch (msg.type)
            {
            case EventType.OnClick:
                OnClick_First();
                break;

            case EventType.OnPressBegin:
                OnPressBegin_First();
                break;

            case EventType.OnPressEnd:
                OnPressEnd_First();
                break;

            case EventType.OnDragUpdate:
                OnDragUpdate_First(msg.handleVector);
                break;

            case EventType.OnDragEnd:
                OnDragEnd_First(msg.handleVector);
                break;
            }
            break;

        case InputHandleIndex.Second:
            switch (msg.type)
            {
            case EventType.OnClick:
                OnClick_Second();
                break;

            case EventType.OnPressBegin:
                OnPressBegin_Second();
                break;

            case EventType.OnPressEnd:
                OnPressEnd_Second();
                break;

            case EventType.OnDragUpdate:
                OnDragUpdate_Second(msg.handleVector);
                break;

            case EventType.OnDragEnd:
                OnDragEnd_Second(msg.handleVector);
                break;
            }
            break;
        }
    }
 public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
 {
     if (msg == ControlMsg.LAYOUT_RESIZED_BY_CHILDREN)
     {
         Refresh();
     }
     else
     {
         base.OnControlMsg(the_control, msg, xparam, yparam);
     }
 }
Exemple #11
0
 public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
 {
     if (the_control.GetElementType() == ElementType.ButtonWidget && msg == ControlMsg.MSG_MOVE)
     {
         base.OnControlMsg(the_control, msg, yparam - m_trackSubControl.Y, m_trackSubControl.Height - m_buttonSubControl.Height);
     }
     else
     {
         base.OnControlMsg(the_control, msg, xparam, yparam);
     }
 }
Exemple #12
0
        private static int LastNo          = 1;//专机号1,2 = no%2+1
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            return;

            if (CurrMsg.STATUS == 1)//判断挡停放行
            {
                bool canpass = true;
                if (count == 8)
                {
                    //判断托盘到位
                    string strLastNo  = "E0210" + LastNo;
                    var    lastDevice = DeviceBase.GetDevice(strLastNo);
                    if (lastDevice.CurrMsg?.PALLET_COUNT == 8)//8个托盘到位了
                    {
                        //发送3
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = "E021",
                            NO           = strLastNo,
                            COMMAND_ID   = 3,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
                        canpass = true;
                        LastNo++;                                                       //换下一个专机
                        LastNo = LastNo % 2 + 1;
                        count  = 0;
                    }
                    else
                    {
                        canpass = false;
                    }
                }
                if (canpass)
                {
                    count++;
                    var ctlMsg = new ControlMsg()
                    {
                        DEVICE_TYPE  = msg.DEVICE_TYPE,
                        NO           = msg.NO,
                        COMMAND_ID   = (LastNo + 1),//放行命令23 = no + 1
                        MESSAGE_TYPE = "control",
                        time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停
                }
            }
            else
            {
            }
        }
Exemple #13
0
    public void OnToggleFlashLightBtnClick()
    {
        ControlMsg msg  = ControlMsg.light;
        var        peer = _netClient.GetFirstPeer();

        if (peer == null)
        {
            return;
        }
        cmdWriter.Reset();
        cmdWriter.Put((int)msg);
        cmdWriter.Put(1);
        peer.Send(cmdWriter, SendOptions.ReliableOrdered);             // Send with reliability
    }
Exemple #14
0
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            if (CurrMsg.STATUS == 1)//TODO:判断专机启用
            {
                //放行后等5秒再次放行
                //if (LAST_PASS_TIME.HasValue &&  (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
                //{
                //    return;
                //}
                //LAST_PASS_TIME = DateTime.Now;
                ControlMsg ctlMsg = new ControlMsg()
                {
                    DEVICE_TYPE = msg.DEVICE_TYPE,
                    NO          = msg.NO,

                    COMMAND_ID = 3,


                    MESSAGE_TYPE = "control",
                    time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
            }
            else if (CurrMsg.STATUS == 4)                                       //完成,判断后续空闲
            {
                if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
                {
                    return;
                }
                LAST_PASS_TIME = DateTime.Now;
                var nxtDevice = DeviceBase.GetDevice("E0100103");
                if (nxtDevice.CurrMsg != null && nxtDevice.CurrMsg.STATUS == 0)
                {
                    ControlMsg ctlMsg = new ControlMsg()
                    {
                        DEVICE_TYPE  = msg.DEVICE_TYPE,
                        NO           = msg.NO,
                        COMMAND_ID   = 2,
                        MESSAGE_TYPE = "control",
                        time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机
                }
            }
            else
            {
            }
        }
Exemple #15
0
        public virtual void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (OnControlMsgCallback != null)
            {
                OnControlMsgCallback(the_control, msg, xparam, yparam);
            }
            else
            {
                if (parent == null)
                {
                    return;
                }

                parent.OnControlMsg(the_control, msg, xparam, yparam);
            }
        }
Exemple #16
0
    public void OnRemoteControlBtnDown(int parameter) //param is casted to ControlMs on the other side of connection
    {
        ControlMsg msg  = (ControlMsg)parameter;
        var        peer = _netClient.GetFirstPeer();

        if (peer == null)
        {
            return;
        }
        cmdWriter.Reset();
        cmdWriter.Put(parameter);
        int on = 1;

        cmdWriter.Put(on);
        peer.Send(cmdWriter, SendOptions.ReliableOrdered);             // Send with reliability
    }
Exemple #17
0
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            if (CurrMsg.STATUS == 1)//TODO:判断专机启用
            {
                ////放行后等5秒再次放行
                //if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
                //{
                //    return;
                //}
                //LAST_PASS_TIME = DateTime.Now;
                ControlMsg ctlMsg = new ControlMsg()
                {
                    DEVICE_TYPE = msg.DEVICE_TYPE,
                    NO          = msg.NO,
//#if PASS
//                    COMMAND_ID = 2,//直接放行
//#else
                    COMMAND_ID = 3,
//#endif
                    MESSAGE_TYPE = "control",
                    time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
            }
            else if (CurrMsg.STATUS == 4)                                       //完成
            {
                //放行后等5秒再次放行
                if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
                {
                    return;
                }
                LAST_PASS_TIME = DateTime.Now;
                ControlMsg ctlMsg = new ControlMsg()
                {
                    DEVICE_TYPE  = msg.DEVICE_TYPE,
                    NO           = msg.NO,
                    COMMAND_ID   = 2,
                    MESSAGE_TYPE = "control",
                    time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机
            }
            else
            {
            }
        }
Exemple #18
0
 public override void DoWork(PLCMsg msg)
 {
     //if (CurrMsg != null && (Convert.ToDateTime(msg.time_stamp) - Convert.ToDateTime(CurrMsg.time_stamp)).Seconds < 3)
     //    return;
     CurrMsg = msg;
     //判断专机满表启动插针
     if (CurrMsg.PALLET_COUNT == 3 &&
         !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3))
     {
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 3,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
     }
     if (CurrMsg.STATUS == 1)                                            //判断插针就绪
     {
         //放行后等5秒再次放行
         if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
         {
             return;
         }
         LAST_PASS_TIME = DateTime.Now;
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 2,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         Task.Run(() =>
         {
             //System.Threading.Thread.Sleep(5000);//5s后放行
             GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机
         });
     }
     else
     {
     }
 }
Exemple #19
0
 public override void DoWork(PLCMsg msg)
 {
     CurrMsg = msg;
     if (CurrMsg.STATUS == 1)//
     {
         ControlMsg ctlMsg = new ControlMsg()
         {
             DEVICE_TYPE  = msg.DEVICE_TYPE,
             NO           = msg.NO,
             COMMAND_ID   = 2,
             MESSAGE_TYPE = "control",
             time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
         };
         GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
     }
     else
     {
     }
 }
Exemple #20
0
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            //判断专机满表启动插针
            if (CurrMsg.PALLET_COUNT == 6 &&
                !(CurrMsg.STATUS == 1 || CurrMsg.STATUS == 2 || CurrMsg.STATUS == 3))
            {
                ControlMsg ctlMsg = new ControlMsg()
                {
                    DEVICE_TYPE  = msg.DEVICE_TYPE,
                    NO           = msg.NO,
                    COMMAND_ID   = 3,
                    MESSAGE_TYPE = "control",
                    time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };
                GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg)); //启动专机
            }
            if (CurrMsg.STATUS == 1)                                            //判断插针就绪
            {
                //放行后等5秒再次放行
                if (LAST_PASS_TIME.HasValue && (DateTime.Now - LAST_PASS_TIME.Value).Seconds < 3)
                {
                    return;
                }
                LAST_PASS_TIME = DateTime.Now;
                ControlMsg ctlMsg = new ControlMsg()
                {
                    DEVICE_TYPE  = msg.DEVICE_TYPE,
                    NO           = msg.NO,
                    COMMAND_ID   = 2,
                    MESSAGE_TYPE = "control",
                    time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                };

                GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行专机
            }
            else
            {
            }
        }
Exemple #21
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (the_control.ID == 1)
            {
                if (msg != ControlMsg.SCROLL_MOVE)
                {
                    return;
                }

                start_row = (int)xparam;
                if (start_row >= 0)
                {
                    return;
                }

                start_row = 0;
            }
            else
            {
                base.OnControlMsg(the_control, msg, xparam, yparam);
            }
        }
Exemple #22
0
        private static int LastNo          = 1;//专机号1,2,3,4 = (no % 4) + 1
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            return;

            if (CurrMsg.STATUS == 1)//判断挡停放行
            {
                bool canpass = true;
                if (count == 8)
                {
                    //判断托盘到位
                    string strLastNo  = "E0220" + LastNo;
                    var    lastDevice = DeviceBase.GetDevice(strLastNo);
                    if (lastDevice.CurrMsg?.PALLET_COUNT == 8)//8个托盘到位了
                    {
                        //发送3
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = "E022",
                            NO           = strLastNo,
                            COMMAND_ID   = 3,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机

                        canpass = true;
                        LastNo++;//换下一个专机
                        LastNo = LastNo % 4 + 1;
                        count  = 0;
                    }
                    else
                    {
                        canpass = false;
                    }
                }
                if (canpass)
                {
                    count++;
                    var ctlMsg = new ControlMsg()
                    {
                        DEVICE_TYPE  = msg.DEVICE_TYPE,
                        NO           = msg.NO,
                        COMMAND_ID   = (LastNo + 1),//放行命令2345 = no + 1
                        MESSAGE_TYPE = "control",
                        time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停
                }

                //int cmdid = 0;
                ////判断挡停后边专机空闲
                //var nxtDevice1 = DeviceBase.GetDevice("E02201");
                //var nxtDevice2 = DeviceBase.GetDevice("E02202");
                //var nxtDevice3 = DeviceBase.GetDevice("E02203");
                //var nxtDevice4 = DeviceBase.GetDevice("E02204");
                //if (nxtDevice1.CurrMsg?.PALLET_COUNT < 8)
                //{
                //    cmdid = 2;
                //}
                //else if (nxtDevice2.CurrMsg?.STATUS < 8)
                //{
                //    cmdid = 3;
                //}
                //else if (nxtDevice3.CurrMsg?.STATUS < 8)
                //{
                //    cmdid = 4;
                //}
                //else if (nxtDevice4.CurrMsg?.STATUS < 8)
                //{
                //    cmdid = 5;
                //}
                //else
                //{

                //}
                //if (cmdid != 0 && (DateTime.Now - LastCount8).Seconds > 20)//每放8个等20秒
                //{
                //    count++;
                //    if (count % 8 == 0)
                //        LastCount8 = DateTime.Now;
                //    var ctlMsg = new ControlMsg()
                //    {
                //        DEVICE_TYPE = msg.DEVICE_TYPE,
                //        NO = msg.NO,
                //        COMMAND_ID = cmdid,
                //        MESSAGE_TYPE = "control",
                //        time_stamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                //    };
                //    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//放行挡停
                //}
            }
            else
            {
            }
        }
Exemple #23
0
        protected void AskPallet_Fujiao()
        {
            var c1   = DeviceBase.GetDevice("E02201");
            var c2   = DeviceBase.GetDevice("E02202");
            var c3   = DeviceBase.GetDevice("E02203");
            var c4   = DeviceBase.GetDevice("E02204");
            var stop = DeviceBase.GetDevice("E00215");

            if (CurrFujiaoNo == 1)                 //当前放行至复校1
            {
                if (FujiaoCount < 8)               //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastFujiaoPassTime = DateTime.Now;
                        //放行至复校1
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 2,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        FujiaoCount++;
                        Console.WriteLine("放行至复校1 -- " + FujiaoCount);
                    }
                }
                else
                {
                    if (c1.CurrMsg?.PALLET_COUNT == 8)//复校1的8个到位后可切换至复校2
                    {
                        FujiaoCount  = 0;
                        CurrFujiaoNo = 2;
                    }
                }
            }

            if (CurrFujiaoNo == 2)                 //当前放行至复校2
            {
                if (FujiaoCount < 8)               //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastFujiaoPassTime = DateTime.Now;
                        //放行至复校2
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 3,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        FujiaoCount++;
                        Console.WriteLine("放行至复校2 -- " + FujiaoCount);
                    }
                }
                else
                {
                    if (c2.CurrMsg?.PALLET_COUNT == 8)//初调2的8个到位后可切换至复校3
                    {
                        FujiaoCount  = 0;
                        CurrFujiaoNo = 3;
                    }
                }
            }

            if (CurrFujiaoNo == 3)                 //当前放行至复校3
            {
                if (FujiaoCount < 8)               //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastFujiaoPassTime = DateTime.Now;
                        //放行至复校3
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 4,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        FujiaoCount++;
                        Console.WriteLine("放行至复校3 -- " + FujiaoCount);
                    }
                }
                else
                {
                    if (c3.CurrMsg?.PALLET_COUNT == 8)//初调3的8个到位后可切换至复校4
                    {
                        FujiaoCount  = 0;
                        CurrFujiaoNo = 4;
                    }
                }
            }

            if (CurrFujiaoNo == 4)                 //当前放行至复校4
            {
                if (FujiaoCount < 8)               //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastFujiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastFujiaoPassTime = DateTime.Now;
                        //放行至复校4
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 5,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        FujiaoCount++;
                        Console.WriteLine("放行至复校4 -- " + FujiaoCount);
                    }
                }
                else
                {
                    if (c4.CurrMsg?.PALLET_COUNT == 8)//初调4的8个到位后可切换至复校1
                    {
                        FujiaoCount  = 0;
                        CurrFujiaoNo = 1;
                    }
                }
            }
        }
Exemple #24
0
        protected void AskPallet_Chutiao()
        {
            //判断专机空闲,且托盘不满8个(包括在途)
            var c1   = DeviceBase.GetDevice("E02101");
            var c2   = DeviceBase.GetDevice("E02102");
            var stop = DeviceBase.GetDevice("E00214");

            if (CurrChutiaoNo == 1)                //当前放行至初调1
            {
                if (ChuTiaoCount < 8)              //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastChutiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastChutiaoPassTime = DateTime.Now;
                        //放行至初调1
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 2,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        ChuTiaoCount++;
                        Console.WriteLine("放行至初调1 -- " + ChuTiaoCount);
                    }
                }
                else
                {
                    if (c1.CurrMsg?.PALLET_COUNT == 8)//初调1的8个到位后可切换至初调2
                    {
                        ChuTiaoCount  = 0;
                        CurrChutiaoNo = 2;
                    }
                }
            }
            if (CurrChutiaoNo == 2)                //当前放行至初调2
            {
                if (ChuTiaoCount < 8)              //尚未放满8个
                {
                    if (stop.CurrMsg?.STATUS == 1) //有待放行的表
                    {
                        if ((DateTime.Now - LastChutiaoPassTime).Seconds < 5)
                        {
                            return;
                        }
                        LastChutiaoPassTime = DateTime.Now;
                        //放行至初调2
                        ControlMsg ctlMsg = new ControlMsg()
                        {
                            DEVICE_TYPE  = stop.DEVICE_TYPE,
                            NO           = stop.NO,
                            COMMAND_ID   = 3,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctlMsg));//启动专机
                        ChuTiaoCount++;
                        Console.WriteLine("放行至初调2 -- " + ChuTiaoCount);
                    }
                }
                else
                {
                    if (c2.CurrMsg?.PALLET_COUNT == 8)//初调2的8个到位后可切换至初调1
                    {
                        ChuTiaoCount  = 0;
                        CurrChutiaoNo = 1;
                    }
                }
            }
        }
Exemple #25
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            switch (msg)
            {
            case ControlMsg.MSG_MOVE:
                if (currentTab.CanRemoveRecords)
                {
                    var childElement = (ImageWidget)FindChildElement(1008);
                    if (childElement != null)
                    {
                        childElement.Visible = true;
                    }
                }
                if (!currentTab.CanSaveRecords)
                {
                    break;
                }

                var childElement1 = (ImageWidget)FindChildElement(1009);
                if (childElement1 == null)
                {
                    break;
                }

                childElement1.Visible = true;
                break;

            case ControlMsg.ENTERHIT:
                if (the_control.GetElementType() != ElementType.EditBoxWidget)
                {
                    break;
                }

                var editBoxWidget = (EditBoxWidget)the_control;
                if (editBoxWidget.ID != 1001)
                {
                    break;
                }

                search_filter = editBoxWidget.Text;
                RefreshTab();
                break;

            case ControlMsg.MSG_DRAGSTOP:
                var childElement2 = (ImageWidget)FindChildElement(1008);
                var childElement3 = (ImageWidget)FindChildElement(1009);
                if (the_control.GetElementType() == ElementType.ButtonWidget)
                {
                    var buttonWidget = (ButtonWidget)the_control;
                    if (buttonWidget.Data != null && buttonWidget.Data is LibraryRecord)
                    {
                        if (currentTab.CanRemoveRecords && buttonWidget.Overlaps(childElement2, (int)xparam - buttonWidget.X_Abs, (int)yparam - buttonWidget.Y_Abs))
                        {
                            currentTab.RemoveRecord((LibraryRecord)buttonWidget.Data);
                            refresh.Value = true;
                        }
                        else if (currentTab.CanSaveRecords && buttonWidget.Overlaps(childElement3, (int)xparam - buttonWidget.X_Abs, (int)yparam - buttonWidget.Y_Abs))
                        {
                            currentTab.SaveRecord((LibraryRecord)buttonWidget.Data);
                            refresh.Value = true;
                        }
                        else
                        {
                            recorddata_to_load = (LibraryRecord)buttonWidget.Data;
                        }
                    }
                }
                if (childElement2 != null)
                {
                    childElement2.Visible = false;
                }

                if (childElement3 == null)
                {
                    break;
                }

                childElement3.Visible = false;
                break;

            default:
                base.OnControlMsg(the_control, msg, xparam, yparam);
                break;
            }
        }
Exemple #26
0
        public override void OnControlMsg(Element2D the_control, ControlMsg msg, float xparam, float yparam)
        {
            if (__processingInput)
            {
                return;
            }

            __processingInput = true;
            if (msg == ControlMsg.ENTERHIT)
            {
                if (the_control.ID == 8006)
                {
                    if (float.TryParse(X_Edit.Text, out var result))
                    {
                        if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                        {
                            LinkedScaleX(result);
                            enter_hit = true;
                        }
                        else
                        {
                            X_Slider.TrackPosition = result;
                        }
                    }
                }
                else if (the_control.ID == 8007)
                {
                    if (float.TryParse(Y_Edit.Text, out var result))
                    {
                        if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                        {
                            LinkedScaleY(result);
                            enter_hit = true;
                        }
                        else
                        {
                            Y_Slider.TrackPosition = result;
                        }
                    }
                }
                else if (the_control.ID == 8008)
                {
                    if (float.TryParse(Z_Edit.Text, out var result))
                    {
                        if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                        {
                            LinkedScaleZ(result);
                            enter_hit = true;
                        }
                        else
                        {
                            Z_Slider.TrackPosition = result;
                        }
                    }
                }
                printerview.ObjectTransformed = true;
            }
            if (msg == ControlMsg.SCROLL_MOVE)
            {
                if (the_control.ID == 8009)
                {
                    if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                    {
                        LinkedScaleX(X_Slider.TrackPosition);
                    }
                    else
                    {
                        X_Edit.Text = X_Slider.TrackPosition.ToString("F2");
                    }
                }
                else if (the_control.ID == 8010)
                {
                    if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                    {
                        LinkedScaleY(Y_Slider.TrackPosition);
                    }
                    else
                    {
                        Y_Edit.Text = Y_Slider.TrackPosition.ToString("F2");
                    }
                }
                else if (the_control.ID == 8011)
                {
                    if (linkScaling_button.Checked && editmode == ModelAdjustmentsDialog.EditMode.Scale)
                    {
                        LinkedScaleZ(Z_Slider.TrackPosition);
                    }
                    else
                    {
                        Z_Edit.Text = Z_Slider.TrackPosition.ToString("F2");
                    }
                }
                printerview.ObjectTransformed = true;
            }
            else
            {
                base.OnControlMsg(the_control, msg, xparam, yparam);
            }

            __processingInput = false;
        }
Exemple #27
0
        public override void DoWork(PLCMsg msg)
        {
            CurrMsg = msg;
            if (CurrMsg.STATUS == 4 || CurrMsg.STATUS == 0)    //机器人抓完后
            {
                if ((DateTime.Now - LastStatus4).Seconds < 10) //两次状态4之间超过10秒认为机器人抓完
                {
                    return;
                }
                LastStatus4 = DateTime.Now;
                var stopBefore = DeviceBase.GetDevice("E00216");
                var stopAfter  = DeviceBase.GetDevice("E00217");
                //判断前面托盘到位 && 判断后边托盘到位
                if (stopBefore.CurrMsg?.STATUS == 1 && stopAfter.CurrMsg?.STATUS == 1)
                {
                    #region 启动机器人
                    ControlMsg pickMsg = new ControlMsg()
                    {
                        DEVICE_TYPE  = msg.DEVICE_TYPE,
                        NO           = msg.NO,
                        COMMAND_ID   = flags[i % flags.Count],
                        MESSAGE_TYPE = "control",
                        time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                    };
                    i++;
                    GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(pickMsg));
                    #endregion

                    #region 放行机器人后挡停
                    Task.Run(() =>
                    {
                        System.Threading.Thread.Sleep(6000);//等5秒机器人放完
                        ControlMsg ctl_af_Msg = new ControlMsg()
                        {
                            NO           = stopAfter.NO,
                            DEVICE_TYPE  = stopAfter.DEVICE_TYPE,
                            COMMAND_ID   = 2,
                            MESSAGE_TYPE = "control",
                            time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                        };
                        GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctl_af_Msg));
                    });
                    #endregion

                    #region 放行机器人前挡停

                    if (i > 0 && i % flags.Count == 0)//判断抓完6个
                    {
                        Task.Run(() =>
                        {
                            System.Threading.Thread.Sleep(2000);//等2秒机器人抓走
                            ControlMsg ctl_br_Msg = new ControlMsg()
                            {
                                NO           = stopBefore.NO,
                                DEVICE_TYPE  = stopBefore.DEVICE_TYPE,
                                COMMAND_ID   = 2,
                                MESSAGE_TYPE = "control",
                                time_stamp   = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                            };
                            GlobalData.MQ.SentMessage(JsonConvert.SerializeObject(ctl_br_Msg));
                        });
                    }
                    #endregion
                }
            }
        }