001package com.pi4j.io.gpio; 002 003/* 004 * #%L 005 * ********************************************************************** 006 * ORGANIZATION : Pi4J 007 * PROJECT : Pi4J :: Java Library (Core) 008 * FILENAME : GpioController.java 009 * 010 * This file is part of the Pi4J project. More information about 011 * this project can be found here: http://www.pi4j.com/ 012 * ********************************************************************** 013 * %% 014 * Copyright (C) 2012 - 2013 Pi4J 015 * %% 016 * Licensed under the Apache License, Version 2.0 (the "License"); 017 * you may not use this file except in compliance with the License. 018 * You may obtain a copy of the License at 019 * 020 * http://www.apache.org/licenses/LICENSE-2.0 021 * 022 * Unless required by applicable law or agreed to in writing, software 023 * distributed under the License is distributed on an "AS IS" BASIS, 024 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 025 * See the License for the specific language governing permissions and 026 * limitations under the License. 027 * #L% 028 */ 029 030import java.util.Collection; 031import com.pi4j.io.gpio.event.GpioPinListener; 032import com.pi4j.io.gpio.trigger.GpioTrigger; 033 034/** 035 * Gpio controller interface. This interface describes all operations over GPIO. 036 * 037 * @author Robert Savage (<a 038 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 039 */ 040public interface GpioController { 041 042 void export(PinMode mode, GpioPin... pin); 043 boolean isExported(GpioPin... pin); 044 void unexport(GpioPin... pin); 045 void unexportAll(); 046 047 void setMode(PinMode mode, GpioPin... pin); 048 PinMode getMode(GpioPin pin); 049 boolean isMode(PinMode mode, GpioPin... pin); 050 051 void setPullResistance(PinPullResistance resistance, GpioPin... pin); 052 PinPullResistance getPullResistance(GpioPin pin); 053 boolean isPullResistance(PinPullResistance resistance, GpioPin... pin); 054 055 void high(GpioPinDigitalOutput... pin); 056 boolean isHigh(GpioPinDigital... pin); 057 058 void low(GpioPinDigitalOutput... pin); 059 boolean isLow(GpioPinDigital... pin); 060 061 void setState(PinState state, GpioPinDigitalOutput... pin); 062 void setState(boolean state, GpioPinDigitalOutput... pin); 063 boolean isState(PinState state, GpioPinDigital... pin); 064 PinState getState(GpioPinDigital pin); 065 066 void toggle(GpioPinDigitalOutput... pin); 067 void pulse(long milliseconds, GpioPinDigitalOutput... pin); 068 069 void setValue(double value, GpioPinAnalogOutput... pin); 070 double getValue(GpioPinAnalog pin); 071 072 void addListener(GpioPinListener listener, GpioPinInput... pin); 073 void addListener(GpioPinListener[] listeners, GpioPinInput... pin); 074 void removeListener(GpioPinListener listener, GpioPinInput... pin); 075 void removeListener(GpioPinListener[] listeners, GpioPinInput... pin); 076 void removeAllListeners(); 077 078 void addTrigger(GpioTrigger trigger, GpioPinInput... pin); 079 void addTrigger(GpioTrigger[] triggers, GpioPinInput... pin); 080 void removeTrigger(GpioTrigger trigger, GpioPinInput... pin); 081 void removeTrigger(GpioTrigger[] triggers, GpioPinInput... pin); 082 void removeAllTriggers(); 083 084 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, String name, PinMode mode, PinPullResistance resistance); 085 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, PinMode mode, PinPullResistance resistance); 086 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, String name, PinMode mode); 087 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(GpioProvider provider, Pin pin, PinMode mode); 088 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(Pin pin, String name, PinMode mode, PinPullResistance resistance); 089 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(Pin pin, PinMode mode, PinPullResistance resistance); 090 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(Pin pin, String name, PinMode mode); 091 GpioPinDigitalMultipurpose provisionDigitalMultipurposePin(Pin pin, PinMode mode); 092 093 GpioPinDigitalInput provisionDigitalInputPin(GpioProvider provider, Pin pin, String name, PinPullResistance resistance); 094 GpioPinDigitalInput provisionDigitalInputPin(GpioProvider provider, Pin pin, PinPullResistance resistance); 095 GpioPinDigitalInput provisionDigitalInputPin(GpioProvider provider, Pin pin, String name); 096 GpioPinDigitalInput provisionDigitalInputPin(GpioProvider provider, Pin pin); 097 GpioPinDigitalInput provisionDigitalInputPin(Pin pin, String name, PinPullResistance resistance); 098 GpioPinDigitalInput provisionDigitalInputPin(Pin pin, PinPullResistance resistance); 099 GpioPinDigitalInput provisionDigitalInputPin(Pin pin, String name); 100 GpioPinDigitalInput provisionDigitalInputPin(Pin pin); 101 102 GpioPinDigitalOutput provisionDigitalOutputPin(GpioProvider provider, Pin pin, String name, PinState defaultState); 103 GpioPinDigitalOutput provisionDigitalOutputPin(GpioProvider provider, Pin pin, PinState defaultState); 104 GpioPinDigitalOutput provisionDigitalOutputPin(GpioProvider provider, Pin pin, String name); 105 GpioPinDigitalOutput provisionDigitalOutputPin(GpioProvider provider, Pin pin); 106 GpioPinDigitalOutput provisionDigitalOutputPin(Pin pin, String name, PinState defaultState); 107 GpioPinDigitalOutput provisionDigitalOutputPin(Pin pin, PinState defaultState); 108 GpioPinDigitalOutput provisionDigitalOutputPin(Pin pin, String name); 109 GpioPinDigitalOutput provisionDigitalOutputPin(Pin pin); 110 111 GpioPinAnalogInput provisionAnalogInputPin(GpioProvider provider, Pin pin, String name); 112 GpioPinAnalogInput provisionAnalogInputPin(GpioProvider provider, Pin pin); 113 GpioPinAnalogInput provisionAnalogInputPin(Pin pin, String name); 114 GpioPinAnalogInput provisionAnalogInputPin(Pin pin); 115 116 GpioPinAnalogOutput provisionAnalogOutputPin(GpioProvider provider, Pin pin, String name, double defaultValue); 117 GpioPinAnalogOutput provisionAnalogOutputPin(GpioProvider provider, Pin pin, double defaultValue); 118 GpioPinAnalogOutput provisionAnalogOutputPin(GpioProvider provider, Pin pin, String name); 119 GpioPinAnalogOutput provisionAnalogOutputPin(GpioProvider provider, Pin pin); 120 GpioPinAnalogOutput provisionAnalogOutputPin(Pin pin, String name, double defaultValue); 121 GpioPinAnalogOutput provisionAnalogOutputPin(Pin pin, double defaultValue); 122 GpioPinAnalogOutput provisionAnalogOutputPin(Pin pin, String name); 123 GpioPinAnalogOutput provisionAnalogOutputPin(Pin pin); 124 125 GpioPinPwmOutput provisionPwmOutputPin(GpioProvider provider, Pin pin, String name, int defaultValue); 126 GpioPinPwmOutput provisionPwmOutputPin(GpioProvider provider, Pin pin, int defaultValue); 127 GpioPinPwmOutput provisionPwmOutputPin(GpioProvider provider, Pin pin, String name); 128 GpioPinPwmOutput provisionPwmOutputPin(GpioProvider provider, Pin pin); 129 GpioPinPwmOutput provisionPwmOutputPin(Pin pin, String name, int defaultValue); 130 GpioPinPwmOutput provisionPwmOutputPin(Pin pin, int defaultValue); 131 GpioPinPwmOutput provisionPwmOutputPin(Pin pin, String name); 132 GpioPinPwmOutput provisionPwmOutputPin(Pin pin); 133 134 GpioPin provisionPin(GpioProvider provider, Pin pin, String name, PinMode mode); 135 GpioPin provisionPin(GpioProvider provider, Pin pin, PinMode mode); 136 GpioPin provisionPin(Pin pin, String name, PinMode mode); 137 GpioPin provisionPin(Pin pin, PinMode mode); 138 139 void setShutdownOptions(GpioPinShutdown options, GpioPin... pin); 140 void setShutdownOptions(Boolean unexport, GpioPin... pin); 141 void setShutdownOptions(Boolean unexport, PinState state, GpioPin... pin); 142 void setShutdownOptions(Boolean unexport, PinState state, PinPullResistance resistance, GpioPin... pin); 143 void setShutdownOptions(Boolean unexport, PinState state, PinPullResistance resistance, PinMode mode, GpioPin... pin); 144 145 Collection<GpioPin> getProvisionedPins(); 146 147 void unprovisionPin(GpioPin... pin); 148 boolean isShutdown(); 149 void shutdown(); 150}