/// <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 }