Exemple #1
0
        /// <summary>
        /// 返回区域二附近的待命点
        /// </summary>
        private void BackToPointAround()
        {
            if (_devArea2 == null)
            {
                return;
            }

            if (_devTarWait == null)
            {
                WcfMainHelper.InitPara(_severIp, "", "");

                List <DispatchBackMember> diss = WcfMainHelper.GetDispatchList();

                List <DeviceBackImf> devs = WcfMainHelper.GetDevList();

                foreach (var item in _waitAreaTwoList)
                {
                    if ((!IsDispatchContainPath(diss, item.StaTarget)) && (!IsDevOnSite(devs, item.StaSite)))
                    {
                        _devTarWait = item;

                        break;
                    }
                }
            }

            if (_devTarWait != null)
            {
                WcfMainHelper.InitPara(_severIp, "", "");

                DeviceBackImf result = WcfMainHelper.GetDev(_devArea2.DevId);

                if (result != null)
                {
                    if (result.SensorList.Find(c => { return(c.SenId == string.Format("{0}0003", _devArea2.DevId)); }).RValue == _devTarWait.StaTarget.ToString())
                    {
                        _devTarWait = null;

                        _devArea2 = null;
                    }
                    else
                    {
                        WcfMainHelper.SendOrder(_devArea2.DevId, new CommonDeviceOrderObj(DeviceOrderTypeEnum.OrderIndexThree, _devTarWait.StaTarget));
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonSendRun_Click(object sender, EventArgs e)
        {
            WcfMainHelper.InitPara(_severIp, "", "");

            List <DeviceBackImf> devs = WcfMainHelper.GetDevList();

            SensorBackImf sens = null;

            if (devs != null && devs.Count > 0)
            {
                foreach (var item in devs)
                {
                    if (item.DevType == "AGV")
                    {
                        sens = item.SensorList.Find(c => { return(c.SenId == string.Format("{0}0002", item.DevId)); });

                        if (sens != null && sens.RValue == LocSite.ToString())
                        {
                            if (MessageBox.Show(string.Format("确定要启动【{0}】地标上AGV【{1}】", LocSite, item.DevId), "提示", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                            {
                                if (WcfMainHelper.SendOrder(item.DevId, new CommonDeviceOrderObj("定点启动" + LocSite, 1)))
                                {
                                    SetOutputMsg(string.Format("启动【{0}】地标上AGV【{1}】", LocSite, item.DevId));

                                    MessageBox.Show("启动成功!", "提示");
                                }
                                else
                                {
                                    MessageBox.Show("请尝试再操作一次", "提示");
                                }
                            }

                            return;
                        }
                    }
                }
            }
            else
            {
                SetOutputMsg(string.Format("未获取到服务端的AGV"));
            }

            SetOutputMsg(string.Format("地标【{0}】上未找到AGV", LocSite));

            MessageBox.Show(string.Format("地标【{0}】上未找到AGV", LocSite), "提示");
        }
Exemple #3
0
        /// <summary>
        /// 事务线程
        /// </summary>
        private void ThreadFunc()
        {
            List <DeviceBackImf> getList = null;

            List <FDispatchBackImf> dispatchList = null;

            while (true)
            {
                Thread.Sleep(1000);

                try
                {
                    getList = WcfMainHelper.GetDevList();

                    dispatchList = WcfMainHelper.GetDispatchList();

                    if (getList != null)
                    {
                        lock (_ans)
                        {
                            _devList.Clear();

                            _devList.AddRange(getList);

                            //AGVDataMaster.UpdateAgvs(_devList);
                        }
                        MapItemMaster.UpdateItems(_devList);
                        MapDevMsgMaster.UpdateDevInfo(_devList);
                    }

                    if (dispatchList != null)
                    {
                        lock (_ansDis)
                        {
                            _dispatchList.Clear();

                            _dispatchList.AddRange(dispatchList);
                        }
                    }
                }
                catch { }
            }
        }
Exemple #4
0
        /// <summary>
        /// 检查线边辊台PLC连接状态
        /// </summary>
        public void CheckPlcStatus()
        {
            while (true)
            {
                Thread.Sleep(5000);

                List <DeviceBackImf> devsList = WcfMainHelper.GetDevList();

                foreach (var dev in devsList)
                {
                    if (dev.DevType == "WK_PLC" && !dev.IsAlive)
                    {
                        F_PLCLine plc = new F_PLCLine(dev.DevId);

                        plc.SendOrdr(0, 0);
                    }
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// 事务线程
        /// </summary>
        private void ThreadFunc()
        {
            List <DeviceBackImf> getList = null;

            //List<FDispatchBackImf> dispatchList = null;

            while (true)
            {
                Thread.Sleep(500);

                try
                {
                    getList = WcfMainHelper.GetDevList();

                    //dispatchList = WcfMainHelper.GetDispatchList();

                    if (getList != null)
                    {
                        lock (_ans)
                        {
                            _devList.Clear();

                            _devList.AddRange(getList);

                            AGVDataMaster.UpdateAgvs(_devList);
                        }
                    }

                    //if (dispatchList != null)
                    //{
                    //    lock (_ansDis)
                    //    {
                    //        _dispatchList.Clear();

                    //        _dispatchList.AddRange(dispatchList);
                    //    }
                    //}
                }
                catch { }
            }
        }
Exemple #6
0
        /// <summary>
        ///
        /// </summary>
        private void UpdateMap()
        {
            List <IAgvData> agvs = new List <IAgvData>();

            List <DeviceBackImf> devs = WcfMainHelper.GetDevList();

            List <IAgvData> updateList = new List <IAgvData>();

            if (devs != null)
            {
                devs.ForEach(c =>
                {
                    if (c.DevType == "AGV")
                    {
                        updateList.Add(new AgvData(c));
                    }
                });

                _mapCtr.UpdateAgvMessage(updateList);
            }
        }
Exemple #7
0
        /// <summary>
        /// 事务线程
        /// </summary>
        private void ThreadFunc()
        {
            List <DeviceBackImf> getList = null;

            List <FDispatchBackImf> dispatchList = null;

            while (true)
            {
                Thread.Sleep(500);

                try
                {
                    getList = WcfMainHelper.GetDevList();

                    dispatchList = WcfMainHelper.GetDispatchList();

                    if (getList != null)
                    {
                        lock (_ans)
                        {
                            _devList.Clear();

                            _devList.AddRange(getList);
                        }
                    }

                    if (dispatchList != null)
                    {
                        lock (_ansDis)
                        {
                            _dispatchList.Clear();

                            _dispatchList.AddRange(dispatchList);
                        }
                    }
                }
                catch { }
            }
        }