001package jmri; 002 003/** 004 * Provide access to the hardware DCC decoder programming capability. 005 * <p> 006 * Programmers come in multiple types: 007 * <ul> 008 * <li>Global, previously "Service Mode" or on a programming track 009 * <li>Addressed, previously "Ops Mode" also known as "programming on the main" 010 * </ul> 011 * Different equipment may also require different programmers: 012 * <ul> 013 * <li>DCC CV programming, on service mode track or on the main 014 * <li>CBUS Node Variable programmers 015 * <li>LocoNet System Variable programmers 016 * <li>LocoNet Op Switch programmers 017 * <li>etc 018 * </ul> 019 * Depending on which type you have, only certain modes can be set. Valid modes 020 * are specified by the class static constants. 021 * <p> 022 * You get a Programmer object from an {@link AddressedProgrammerManager}, which 023 * in turn can be located from the {@link InstanceManager}. 024 * <p> 025 * Starting in JMRI 3.5.5, the CV addresses are Strings for generality. The 026 * methods that use ints for CV addresses will later be deprecated. 027 * <hr> 028 * This file is part of JMRI. 029 * <p> 030 * JMRI is free software; you can redistribute it and/or modify it under the 031 * terms of version 2 of the GNU General Public License as published by the Free 032 * Software Foundation. See the "COPYING" file for a copy of this license. 033 * <p> 034 * JMRI is distributed in the hope that it will be useful, but WITHOUT ANY 035 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 036 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 037 * 038 * @see jmri.AddressedProgrammerManager 039 * @see jmri.Programmer 040 * @author Bob Jacobsen Copyright (C) 2001, 2008, 2013, 2014 041 */ 042public interface AddressedProgrammer extends Programmer { 043 044 boolean getLongAddress(); 045 046 int getAddressNumber(); 047 048 String getAddress(); 049}