/// <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)); } } } }
/// <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), "提示"); }
/// <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 { } } }
/// <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); } } } }
/// <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 { } } }
/// <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); } }
/// <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 { } } }