/// <summary> /// Reads the status of the specified pins. /// </summary> /// <param name="pins">The pins.</param> /// <returns> /// The pins status. /// </returns> public ProcessorPins Read(ProcessorPins pins) { var result = new ProcessorPins(pins.Count); foreach (var p in pins.Enumerate()) { result.Set(p, Read((ProcessorPin)p)); } return(result); }
/// <summary> /// </summary> public ProcessorPins Read(ProcessorPins pins) { // TODO: implement on $KE,RD,ALL var result = new ProcessorPins(pins.Count); foreach (var p in pins.Enumerate()) { result.Set(p, Read((ProcessorPin)p)); } return(result); }
/// <summary> /// Logical AND opertion on pins with int /// </summary> public static ProcessorPins And(ProcessorPins pins, uint value) { var result = new ProcessorPins(32); foreach (var p in pins.Enumerate()) { var val = ((uint)(1 << (int)p) & value); result.Set(p, val > 0 ? true : false); } return(result); }
/// <summary> /// Removes the specified pin. /// </summary> /// <param name="configuration">The pin configuration.</param> public void Remove(PinConfiguration configuration) { lock (pinConfigurations) { lock (timer) { if (IsOpened) { Release(configuration); } } pinConfigurations.Remove(configuration.Pin); if (!string.IsNullOrEmpty(configuration.Name)) { namedPins.Remove(configuration.Name); } pinValues.Remove(configuration.Pin); var pin = (int)configuration.Pin; inputPins.Set(pin, false); pinRawValues.Set(pin, false); } }