示例#1
0
        /// <summary>
        /// Sets up an input pin.
        /// </summary>
        /// <param name="pin">GPIO pin</param>
        /// <param name="id">Unique signal identifier</param>
        public InputPin(GPIOController.Pin pin, T id)
        {
            this.id        = id;                         // Set ID
            this.state     = GPIOController.State.Low;   // Default states to Low
            this.prevState = GPIOController.State.Low;
            this.isChanged = false;

            this.pinInterface = new GPIOController(pin, GPIOController.Direction.In); // Set up for reading
        }
        /// <summary>
        /// Sets up a monitor for money input for the specified GPIO pins
        /// </summary>
        /// <param name="moneyPins">List of GPIO pins for money being input</param>
        /// <param name="moneyAmounts">List of decimal monetary amounts corresponding to the money pins</param>
        /// <param name="returnPin">GPIO pin for the money return</param>
        public ReadMoney(GPIOController.Pin[] moneyPins, double[] moneyAmounts, GPIOController.Pin returnPin)
        {
            this.returnIndex = moneyPins.Length;

            // Combine the money pins and return pin in one array
            var allPins = new GPIOController.Pin[moneyPins.Length + 1];  // New arrays with all pins
            var allIDs  = new double[moneyPins.Length + 1];

            for (int i = 0; i < moneyAmounts.Length; i++)
            {   // Move money pins into new array
                allPins[i] = moneyPins[i];
                allIDs[i]  = moneyAmounts[i];
            }
            allPins[returnIndex] = returnPin;   // Set to return pin
            allIDs[returnIndex]  = -1;          // Set ID to -1

            this.SetupPins(allPins, allIDs);    // Initializes pins for reading
        }
 /// <summary>
 /// Sets up an output pin.
 /// </summary>
 /// <param name="pin">GPIO pin</param>
 /// <param name="id">Unique signal identifier</param>
 public OutputPin(GPIOController.Pin pin, T id, GPIOController.State initialState)
 {
     this.id           = id;                                                                  // Set ID
     this.pinInterface = new GPIOController(pin, GPIOController.Direction.Out, initialState); // Set up for writing
 }