public IList <OpcItem> Get() { var result = new List <OpcItem>(); var device = DeviceData.GetDeviveData(); try { device.Start(); var timeDelayer = new TimeDelayer(5000); timeDelayer.Start(); while (true) { //当设备状态为连接状态时 if (device.Status == 1) { //循环读取每个tag的值 foreach (var tag in device.Groups[0].Tags) { //结果集中已经存在当前tag时,循环下一个 if (result.Any(r => r.ItemId.Equals(tag.Address))) { continue; } //根据tag的地址读取数据 var value = device.Read(tag.Address); //获取到数据后,将数据加入到结果集中 if (value != null) { var opcItem = new OpcItem { ItemId = tag.Address, Value = value }; result.Add(opcItem); } } //结果集的总数大于等于tag集总数时,退出while循环 if (result.Count >= device.Groups[0].Tags.Count) { break; } } if (timeDelayer.IsTimeout()) { throw new Exception("读取数据超时"); } Thread.Sleep(100); } } catch (Exception) { throw; } finally { device.Abort(); } return(result); }
public void ResetZone() { if (hoverDelayer != null) { hoverDelayer.Kill(); hoverDelayer = null; } base.OnEndHover(); baseCard.ResetPreview(); dropPoint.gameObject.SetActive(false); }
public void CloseZone() { open = false; if (hoverDelayer != null) { hoverDelayer.Kill(); hoverDelayer = null; } building.ResetPreview(); dropPoint.gameObject.SetActive(false); }
public override void OnHover() { if (baseCard.card == null) { return; } if (CardBody.dragged == null) { return; } hoverDelayer = ActionDelayer.DelayAction(SetZone, hoverDelay); }
public void Shot() { aiming = true; shotReady = false; Aim(); InstancedAction.DelayAction(() => shotReady = true, 1 / gun.gun.fireRate); if (holsterTime != null) { holsterTime.Kill(); } gunAnim.SetTrigger("Shot"); Instantiate(gun.gun.bullet, gunPoint.position, gunPoint.rotation); holsterTime = InstancedAction.DelayAction(() => { aiming = false; AimOff(); }, aimingTime); }
public void OnPointerEnter(PointerEventData eventData) { if (CardBody.dragged == null) { return; } if (open) { OpenZone(); } else { hoverDelayer = ActionDelayer.DelayAction(OpenZone, hoverDelay); } }
public void ChangeColor() { currentColorIndex = nextColorIndex; foreach (var p in driftParticles.particles) { var j = p.main; j.startColor = particleColor[nextColorIndex]; } nextColorIndex++; if (nextColorIndex <= 2) { delayer = InstancedAction.DelayAction(ChangeColor, 1f); } else { nextColorIndex = 0; } }
public void Play() { if (!playing) { action.Invoke(); if (fixedDuration) { timer = InstancedAction.DelayAction(() => { completed = true; }, duration); } } else { if (paused) { timer.Resume(); paused = false; } } }
public void Dash() { dashing = true; isDashing = true; particles.Play(); if (CheckGround()) { body.AddForce(transform.right * dashForce, ForceMode2D.Force); } else { body.velocity = new Vector2(0, 0); //var x = (anim.GetBool("Moving") == true) ? transform.right.x : 0; ////var y = Input.GetAxisRaw("Vertical"); //if (y == 0) y = 1; //body.AddForce(new Vector2(x, y) * dashForce, ForceMode2D.Force); var dir = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position; dir = dir.normalized * 2f; dir.z = 0; body.AddForce(dir * dashForce, ForceMode2D.Force); } dashTimer = InstancedAction.DelayAction(() => { isDashing = false; body.velocity = Vector2.zero; freeFall = true; }, dashTime); }
public static TimeDelayer DelayAction(UnityAction act, float time) { TimeDelayer delayer = new TimeDelayer(time, act); return(delayer); }