From f52302d69d60ce15b0d5b100e30082c5a6e9caa1 Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期五, 03 七月 2020 18:38:44 +0800 Subject: [PATCH] merge --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index 2cb1a6d..0368c10 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -655,16 +655,17 @@ /// <param name="cardNum">鍗″彿</param> /// <param name="index">杈撳嚭鍙�,杩斿洖1-16</param> /// <param name="value">false琛ㄧず杈撳嚭锛宼rue琛ㄧず鍏抽棴</param> - public void WriteOut(short cardNum, short index, bool value) + public override void WriteOutput(short cardNum, short index, IOValue value) { short outNum = (short)(index % 100 + 1); - if (value) + if ((int)value <= 1) { - GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, 0); + GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, (short)value); } else { - GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, 1); + var currentValue = (int)MonitorValues.FirstOrDefault(u => u.IONum == outNum && u.IOType == IOType.OUTPUT).Value; + GTSCardAPI.GT_SetDoBit(cardNum, GTSCardAPI.MC_GPO, outNum, (short)(currentValue == 1 ? 0 : 1)); } } @@ -690,7 +691,7 @@ #region IMonitor - public List<IOItem> MonitorValues { get; set; } = new List<IOItem>(); + //public List<IOItem> MonitorValues { get; set; } = new List<IOItem>(); public List<IOItem> GetMonitorValues() @@ -709,13 +710,13 @@ IOItem inItem = new IOItem() { IONum = index, - Value = (inValue & (1 << index)) == 0 ? 1 : 0, + Value = (inValue & (1 << index)) == 0 ? IOValue.TRUE : IOValue.FALSE, IOType = IOType.INPUT }; IOItem outItem = new IOItem() { IONum = index, - Value = (outValue & (1 << index)) == 0 ? 1 : 0, + Value = (outValue & (1 << index)) == 0 ? IOValue.TRUE : IOValue.FALSE, IOType = IOType.OUTPUT }; result.Add(inItem); @@ -772,7 +773,7 @@ }); } - private void OnMethodInvoked(IAsyncResult ar) + public override void OnMethodInvoked(IAsyncResult ar) { MotionCardMonitorSet monitorSet = ar.AsyncState as MotionCardMonitorSet; ProcessResponse resValues = monitorSet.Response; @@ -804,13 +805,12 @@ { MotionCardWarningSet warningSet = wSet as MotionCardWarningSet; - bool isOn = ((tempNew.FirstOrDefault(u => u.IONum == warningSet.TriggerIndex && u.IOType == warningSet.WarningIOModel)?.Value >> warningSet.TriggerIndex) & 1) == (warningSet.TriggerValue ? 1 : 0); + bool isOn = (((int)((tempNew.FirstOrDefault(u => u.IONum == warningSet.TriggerIndex && u.IOType == warningSet.WarningIOModel)?.Value)) >> warningSet.TriggerIndex) & 1) == (warningSet.TriggerValue ? 1 : 0); if (warningSet.CurrentStatus != isOn) { warningSet.CurrentStatus = isOn; warningSet.TriggerTime = DateTime.Now; - warningSet.WarningDescription = $"璀︽姤锛歿warningSet.Name}-瑙﹀彂绱㈠紩锛歿warningSet.TriggerIndex}-{warningSet.WarningIOModel.GetEnumDescription()}:{warningSet.WarningCode}"; SaveAlarmCSVAsync(DateTime.Now, this.Name, warningSet); ExcuteMonitorAlarm(DateTime.Now, this, warningSet); } @@ -831,7 +831,7 @@ if (newIOItem?.Value != oldIOItem?.Value) { - if (monitorSet.TriggerValue == -999 || newIOItem.Value == monitorSet.TriggerValue) + if (monitorSet.TriggerValue == -999 || (int)newIOItem.Value == monitorSet.TriggerValue) { if (monitorSet.OpConfig == null) { @@ -843,7 +843,7 @@ // return tempNew[index].Value; //}).ToList(); - ExcuteMonitorInvok(DateTime.Now, monitorSet.InvokeDevice, this, monitorSet, OnMethodInvoked); + ExcuteMonitorInvoke(DateTime.Now, monitorSet.InvokeDevice, this, monitorSet); } } }); -- Gitblit v1.8.0