001package jmri.jmrix.nce.usbdriver;
002
003/**
004 * Updates for command station memory of the PH5.
005 *
006 * @author Ken Cameron Copyright (C) 2023
007 */
008public class UsbCmdStationMemory extends jmri.jmrix.nce.NceCmdStationMemory {
009
010    /*
011     * give maximum consist number
012     */
013    @Override
014    public int getConsistMin() {
015        return 112;
016    }
017        
018    /*
019     * give max cab id
020     */
021    @Override
022    public int getCabMin() {
023        return 2;    // number of cab memory slots
024    }
025    /*
026     * give max cab id
027     */
028    @Override
029    public int getCabMax() {
030        return 10;    // number of cab memory slots
031    }
032
033    /*
034     * give cab index functions 13-20
035     */
036    @Override
037    public int getCabIdxFunct13_20() {
038        return 99; // Function keys 13 - 30
039    }
040    
041    /*
042     * give cab index functions 21-28
043     */
044    @Override
045    public int getCabIdxFunct21_28() {
046        return 100; // Function keys 21 - 28
047    }
048    
049    /*
050     * give cab index for cab status
051     */
052    @Override
053    public int getCabIdxFlag1() {
054        return 70;  // NCE flag 1
055    }
056    
057    /*
058     * give cab addr macro table
059     */
060    @Override
061    public int getMacroAddr() {
062        return 0x0E; // start of NCE CS Macro memory 
063    }
064
065    /*
066     * give size of macro entry
067     */
068    @Override
069    public int getMacroSize() {
070        return 16;  // 16 bytes per macro
071    }
072    
073    /*
074     * give number of macro limit
075     */
076    @Override
077    public int getMacroLimit() {
078        return 16;  // there are 16 possible macros
079    }
080}