001package com.pi4j.io.gpio; 002 003import java.util.concurrent.Callable; 004import java.util.concurrent.Future; 005 006/* 007 * #%L 008 * ********************************************************************** 009 * ORGANIZATION : Pi4J 010 * PROJECT : Pi4J :: Java Library (Core) 011 * FILENAME : GpioPinDigitalOutput.java 012 * 013 * This file is part of the Pi4J project. More information about 014 * this project can be found here: http://www.pi4j.com/ 015 * ********************************************************************** 016 * %% 017 * Copyright (C) 2012 - 2016 Pi4J 018 * %% 019 * This program is free software: you can redistribute it and/or modify 020 * it under the terms of the GNU Lesser General Public License as 021 * published by the Free Software Foundation, either version 3 of the 022 * License, or (at your option) any later version. 023 * 024 * This program is distributed in the hope that it will be useful, 025 * but WITHOUT ANY WARRANTY; without even the implied warranty of 026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 027 * GNU General Lesser Public License for more details. 028 * 029 * You should have received a copy of the GNU General Lesser Public 030 * License along with this program. If not, see 031 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 032 * #L% 033 */ 034 035/** 036 * Gpio digital output pin interface. 037 * 038 * @author Robert Savage (<a 039 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 040 */ 041@SuppressWarnings("unused") 042public interface GpioPinDigitalOutput extends GpioPinDigital, GpioPinOutput { 043 044 void high(); 045 void low(); 046 void toggle(); 047 Future<?> blink(long delay); 048 Future<?> blink(long delay, PinState blinkState); 049 Future<?> blink(long delay, long duration); 050 Future<?> blink(long delay, long duration, PinState blinkState); 051 Future<?> pulse(long duration); 052 Future<?> pulse(long duration, Callable<Void> callback); 053 Future<?> pulse(long duration, boolean blocking); 054 Future<?> pulse(long duration, boolean blocking, Callable<Void> callback); 055 Future<?> pulse(long duration, PinState pulseState); 056 Future<?> pulse(long duration, PinState pulseState, Callable<Void> callback); 057 Future<?> pulse(long duration, PinState pulseState, boolean blocking); 058 Future<?> pulse(long duration, PinState pulseState, boolean blocking, Callable<Void> callback); 059 void setState(PinState state); 060 void setState(boolean state); 061 062}