001package jmri.jmrix.tmcc; 002 003import jmri.AddressedProgrammer; 004import jmri.Programmer; 005import jmri.managers.DefaultProgrammerManager; 006import jmri.ProgrammingMode; 007 008/** 009 * Extend DefaultProgrammerManager to provide ops mode programmers for TMCC 010 * systems. 011 * 012 * From EasyDccProgrammerManager 013 * 014 * @see jmri.managers.DefaultProgrammerManager 015 * @author Bob Jacobsen Copyright (C) 2002, 2025 016 * with edits/additions by 017 * @author Timothy Jump Copyright (C) 2025 018 */ 019public class TmccProgrammerManager extends DefaultProgrammerManager { 020 021 public TmccProgrammerManager(Programmer serviceModeProgrammer, TmccSystemConnectionMemo memo) { 022 super(serviceModeProgrammer, memo); 023 _memo = memo; 024 } 025 026 TmccSystemConnectionMemo _memo; 027 028 static final ProgrammingMode TMCCMODE1_ENGID = new ProgrammingMode("TMCCMODE1_ENGID", Bundle.getMessage("TMCCMODE1_ENGID")); 029 static final ProgrammingMode TMCCMODE2_ENGID = new ProgrammingMode("TMCCMODE2_ENGID", Bundle.getMessage("TMCCMODE2_ENGID")); 030 031 static final ProgrammingMode TMCCMODE1_SWID = new ProgrammingMode("TMCCMODE1_SWID", Bundle.getMessage("TMCCMODE1_SWID")); 032 static final ProgrammingMode TMCCMODE1_ACCID = new ProgrammingMode("TMCCMODE1_ACCID", Bundle.getMessage("TMCCMODE1_ACCID")); 033 034 static final ProgrammingMode TMCCMODE1_ENGFEATURE = new ProgrammingMode("TMCCMODE1_ENGFEATURE", Bundle.getMessage("TMCCMODE1_ENGFEATURE")); 035 static final ProgrammingMode TMCCMODE2_ENGFEATURE = new ProgrammingMode("TMCCMODE2_ENGFEATURE", Bundle.getMessage("TMCCMODE2_ENGFEATURE")); 036 037 /** 038 * For Implementing TMCCOpsModeProgrammer 039 * 040 * @return always false until Ops Mode implemented 041 */ 042 @Override 043 public boolean isAddressedModePossible() { 044 return true; 045 } 046 047 @Override 048 protected AddressedProgrammer getConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) { 049 return new TmccOpsModeProgrammer(pAddress, pLongAddress, _memo); 050 } 051 052 @Override 053 protected AddressedProgrammer reserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) { 054 return null; 055 } 056 057 058}