001package com.pi4j.wiringpi; 002 003/* 004 * #%L 005 * ********************************************************************** 006 * ORGANIZATION : Pi4J 007 * PROJECT : Pi4J :: Java Library (Core) 008 * FILENAME : GpioInterruptEvent.java 009 * 010 * This file is part of the Pi4J project. More information about 011 * this project can be found here: https://www.pi4j.com/ 012 * ********************************************************************** 013 * %% 014 * Copyright (C) 2012 - 2019 Pi4J 015 * %% 016 * This program is free software: you can redistribute it and/or modify 017 * it under the terms of the GNU Lesser General Public License as 018 * published by the Free Software Foundation, either version 3 of the 019 * License, or (at your option) any later version. 020 * 021 * This program is distributed in the hope that it will be useful, 022 * but WITHOUT ANY WARRANTY; without even the implied warranty of 023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 024 * GNU General Lesser Public License for more details. 025 * 026 * You should have received a copy of the GNU General Lesser Public 027 * License along with this program. If not, see 028 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 029 * #L% 030 */ 031 032 033import java.util.EventObject; 034 035/** 036 * <p> This class provides the event object for GPIO interrupt state changes. </p> 037 * 038 * <p> 039 * Before using the Pi4J library, you need to ensure that the Java VM in configured with access to 040 * the following system libraries: 041 * <ul> 042 * <li>pi4j</li> 043 * <li>wiringPi</li> 044 * </ul> 045 * <blockquote> This library depends on the wiringPi native system library.</br> (developed by 046 * Gordon Henderson @ <a href="http://wiringpi.com/">http://wiringpi.com/</a>) 047 * </blockquote> 048 * </p> 049 * 050 * @see <a href="https://www.pi4j.com/">https://www.pi4j.com/</a> 051 * @author Robert Savage (<a 052 * href="http://www.savagehomeautomation.com">http://www.savagehomeautomation.com</a>) 053 */ 054public class GpioInterruptEvent extends EventObject { 055 056 private static final long serialVersionUID = 1L; 057 private int pin; 058 private boolean state; 059 060 /** 061 * <h1>Default event constructor</h1> 062 * 063 * @param obj Ignore this parameter 064 * @param pin GPIO pin number (not header pin number; not wiringPi pin number) 065 * @param state New GPIO pin state. 066 */ 067 public GpioInterruptEvent(Object obj, int pin, boolean state) { 068 super(obj); 069 this.pin = pin; 070 this.state = state; 071 } 072 073 /** 074 * Get the pin number that changed and raised this event. 075 * 076 * @return GPIO pin number (not header pin number; not wiringPi pin number) 077 */ 078 public int getPin() { 079 return pin; 080 } 081 082 /** 083 * Get the new pin state raised in this event. 084 * 085 * @return GPIO pin state (HIGH=true, LOW=false) 086 */ 087 public boolean getState() { 088 return state; 089 } 090 091 /** 092 * Get the new pin state value raised in this event. 093 * 094 * @return GPIO pin state (HIGH=1, LOW=0) 095 */ 096 public int getStateValue() { 097 return (state) ? 1 : 0; 098 } 099}