/// <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);
        }
Esempio n. 2
0
        /// <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);
            }
        }