001package com.pi4j.io.gpio; 002 003import java.util.concurrent.Future; 004 005/* 006 * #%L 007 * ********************************************************************** 008 * ORGANIZATION : Pi4J 009 * PROJECT : Pi4J :: Java Library (Core) 010 * FILENAME : GpioPinDigitalOutput.java 011 * 012 * This file is part of the Pi4J project. More information about 013 * this project can be found here: http://www.pi4j.com/ 014 * ********************************************************************** 015 * %% 016 * Copyright (C) 2012 - 2013 Pi4J 017 * %% 018 * Licensed under the Apache License, Version 2.0 (the "License"); 019 * you may not use this file except in compliance with the License. 020 * You may obtain a copy of the License at 021 * 022 * http://www.apache.org/licenses/LICENSE-2.0 023 * 024 * Unless required by applicable law or agreed to in writing, software 025 * distributed under the License is distributed on an "AS IS" BASIS, 026 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 027 * See the License for the specific language governing permissions and 028 * limitations under the License. 029 * #L% 030 */ 031 032/** 033 * Gpio digital output pin interface. 034 * 035 * @author Robert Savage (<a 036 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 037 */ 038public interface GpioPinDigitalOutput extends GpioPinDigital, GpioPinOutput { 039 040 void high(); 041 void low(); 042 void toggle(); 043 Future<?> blink(long delay); 044 Future<?> blink(long delay, PinState blinkState); 045 Future<?> blink(long delay, long duration); 046 Future<?> blink(long delay, long duration, PinState blinkState); 047 Future<?> pulse(long duration); 048 Future<?> pulse(long duration, boolean blocking); 049 Future<?> pulse(long duration, PinState pulseState); 050 Future<?> pulse(long duration, PinState pulseState, boolean blocking); 051 void setState(PinState state); 052 void setState(boolean state); 053 054}