public void UnlinkAll() { if (IOChanged != null) { IOChanged.GetInvocationList().ForEach((x) => IOChanged -= (Action)x); } }
public void IOChanged_Invoke() { if (IOChanged != null) { IOChanged.Invoke(); } }
public void SetIO(BitArray values, byte fromStart, byte fromCount, byte toStart, byte toCount) { CheckParams(values, fromStart, fromCount, toStart, toCount); var oldInput = (BitArray)IOArray.Clone(); for (var i = 0; i < toCount; i++) { IOArray[i + toStart] = fromCount == 1 ? values[fromStart] : values[i + fromStart]; } if (IOChanged != null && oldInput.Xor(IOArray).Any(x => x)) { IOChanged.Invoke(); } }