001package com.pi4j.io.gpio; 002 003import com.pi4j.io.gpio.event.PinListener; 004 005/* 006 * #%L 007 * ********************************************************************** 008 * ORGANIZATION : Pi4J 009 * PROJECT : Pi4J :: Java Library (Core) 010 * FILENAME : GpioProvider.java 011 * 012 * This file is part of the Pi4J project. More information about 013 * this project can be found here: https://www.pi4j.com/ 014 * ********************************************************************** 015 * %% 016 * Copyright (C) 2012 - 2019 Pi4J 017 * %% 018 * This program is free software: you can redistribute it and/or modify 019 * it under the terms of the GNU Lesser General Public License as 020 * published by the Free Software Foundation, either version 3 of the 021 * License, or (at your option) any later version. 022 * 023 * This program is distributed in the hope that it will be useful, 024 * but WITHOUT ANY WARRANTY; without even the implied warranty of 025 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 026 * GNU General Lesser Public License for more details. 027 * 028 * You should have received a copy of the GNU General Lesser Public 029 * License along with this program. If not, see 030 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 031 * #L% 032 */ 033 034/** 035 * Gpio provider interface. 036 * 037 * @author Robert Savage (<a 038 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 039 */ 040@SuppressWarnings("unused") 041public interface GpioProvider { 042 043 String getName(); 044 045 boolean hasPin(Pin pin); 046 047 void export(Pin pin, PinMode mode, PinState defaultState); 048 void export(Pin pin, PinMode mode); 049 boolean isExported(Pin pin); 050 void unexport(Pin pin); 051 052 void setMode(Pin pin, PinMode mode); 053 PinMode getMode(Pin pin); 054 055 void setPullResistance(Pin pin, PinPullResistance resistance); 056 PinPullResistance getPullResistance(Pin pin); 057 058 void setState(Pin pin, PinState state); 059 PinState getState(Pin pin); 060 061 void setValue(Pin pin, double value); 062 double getValue(Pin pin); 063 064 void setPwm(Pin pin, int value); 065 void setPwmRange(Pin pin, int range); 066 int getPwm(Pin pin); 067 068 void addListener(Pin pin, PinListener listener); 069 void removeListener(Pin pin, PinListener listener); 070 void removeAllListeners(); 071 072 void shutdown(); 073 boolean isShutdown(); 074}