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 */
017public class TmccProgrammerManager extends DefaultProgrammerManager {
018
019    public TmccProgrammerManager(Programmer serviceModeProgrammer, TmccSystemConnectionMemo memo) {
020        super(serviceModeProgrammer, memo);
021        _memo = memo;
022    }
023
024    TmccSystemConnectionMemo _memo;
025
026    static final ProgrammingMode TMCCMODE1_ENGID = new ProgrammingMode("TMCCMODE1_ENGID", Bundle.getMessage("TMCCMODE1_ENGID"));
027    static final ProgrammingMode TMCCMODE2_ENGID = new ProgrammingMode("TMCCMODE2_ENGID", Bundle.getMessage("TMCCMODE2_ENGID"));
028    
029    static final ProgrammingMode TMCCMODE1_SWID = new ProgrammingMode("TMCCMODE1_SWID", Bundle.getMessage("TMCCMODE1_SWID"));
030    static final ProgrammingMode TMCCMODE1_ACCID = new ProgrammingMode("TMCCMODE1_ACCID", Bundle.getMessage("TMCCMODE1_ACCID"));
031
032    static final ProgrammingMode TMCCMODE1_ENGFEATURE = new ProgrammingMode("TMCCMODE1_ENGFEATURE", Bundle.getMessage("TMCCMODE1_ENGFEATURE"));
033    static final ProgrammingMode TMCCMODE2_ENGFEATURE = new ProgrammingMode("TMCCMODE2_ENGFEATURE", Bundle.getMessage("TMCCMODE2_ENGFEATURE"));
034
035    /**
036     * For Implementing TMCCOpsModeProgrammer
037     *
038     * @return always false until Ops Mode implemented
039     */
040    @Override
041    public boolean isAddressedModePossible() {
042        return true;
043    }
044
045    @Override
046    protected AddressedProgrammer getConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) {
047        return new TmccOpsModeProgrammer(pAddress, pLongAddress, _memo);
048    }
049
050    @Override
051    protected AddressedProgrammer reserveConcreteAddressedProgrammer(boolean pLongAddress, int pAddress) {
052        return null;
053    }
054
055
056}