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 cab addr consist table
012     */
013    @Override
014    public int getConsistAddr() {
015        return 0x0D; // start of NCE CS Consist memory 
016    }
017
018    /*
019     * give minimum consist number
020     */
021    @Override
022    public int getConsistMin() {
023        return 112;
024    }
025
026    /*
027     * give # of consist middle locos
028     */
029    @Override
030    public int getConsistMidEntries() {
031        return 2;       // how many middle Consist entries/consist
032    }
033
034    /*
035     * give consist num lines
036     */
037    @Override
038    public int getConsistNumLines() {
039        return 8;   // number of lines in the file
040    }
041     
042    /*
043     * give max cab id
044     */
045    @Override
046    public int getCabMin() {
047        return 2;    // number of cab memory slots
048    }
049    /*
050     * give max cab id
051     */
052    @Override
053    public int getCabMax() {
054        return 10;    // number of cab memory slots
055    }
056
057    /*
058     * give cab index functions 13-20
059     */
060    @Override
061    public int getCabIdxFunct13_20() {
062        return 99; // Function keys 13 - 30
063    }
064    
065    /*
066     * give cab index functions 21-28
067     */
068    @Override
069    public int getCabIdxFunct21_28() {
070        return 100; // Function keys 21 - 28
071    }
072    
073    /*
074     * give cab index for cab status
075     */
076    @Override
077    public int getCabIdxFlag1() {
078        return 70;  // NCE flag 1
079    }
080    
081    /*
082     * give cab addr macro table
083     */
084    @Override
085    public int getMacroAddr() {
086        return 0x0E; // start of NCE CS Macro memory 
087    }
088
089    /*
090     * give size of macro entry
091     */
092    @Override
093    public int getMacroSize() {
094        return 16;  // 16 bytes per macro
095    }
096    
097    /*
098     * give number of macro limit
099     */
100    @Override
101    public int getMacroLimit() {
102        return 16;  // there are 16 possible macros
103    }
104}