001package com.pi4j.io.w1; 002 003/* 004 * #%L 005 * ********************************************************************** 006 * ORGANIZATION : Pi4J 007 * PROJECT : Pi4J :: Java Library (Core) 008 * FILENAME : W1Device.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 - 2021 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 032import java.io.IOException; 033 034/** 035 * @author Peter Schuebl 036 */ 037public interface W1Device { 038 039 /** 040 * Returns the name (id/serial number) of the device e.g. 28-00000698ebb1. 041 * @return the unique device name. 042 */ 043 String getId(); 044 045 /** 046 * Returns a human readable name. 047 * @return the human readable name, defaults to ID 048 */ 049 String getName(); 050 051 /** 052 * Returns the type/family of the device. 053 * @return device type, never null. 054 */ 055 int getFamilyId(); 056 057 /** 058 * Gets the current Value = content of w1_slave file 059 * @return 060 */ 061 String getValue() throws IOException; 062 063 /** 064 * W1Device should be considered equal based on their ID 065 */ 066 boolean equals(Object obj); 067 068 int hashCode(); 069}