001package jmri.jmrix.bachrus.speedmatcher.speedStepScale;
002
003import javax.swing.JButton;
004import javax.swing.JLabel;
005
006import jmri.DccLocoAddress;
007import jmri.PowerManager;
008import jmri.jmrix.bachrus.Speed;
009import jmri.jmrix.bachrus.speedmatcher.SpeedMatcherConfig;
010
011/**
012 * Configuration data for a speed step scale speed matcher
013 *
014 * @author Todd Wegter Copyright (C) 2024
015 */
016public class SpeedStepScaleSpeedMatcherConfig extends SpeedMatcherConfig {
017
018    //<editor-fold defaultstate="collapsed" desc="Enums">
019    public enum SpeedTable {
020        ADVANCED, ESU
021    }
022    //</editor-fold>
023
024    //<editor-fold defaultstate="collapsed" desc="Instance Variables">
025    public float targetMaxSpeed;
026    public JLabel actualMaxSpeedField;
027    //</editor-fold>
028
029    /**
030     * Create a config object for a Speed Step Scale Speed Matcher
031     *
032     * @param address              Address of locomotive to speed match
033     * @param targetMaxSpeed       Target maximum speed in the given speedUnit
034     * @param speedUnit            Speed.Unit to speed match the locomotive in
035     * @param trimReverseSpeed     Set to true to trim the locomotive's reverse
036     *                             speed, false otherwise
037     * @param warmUpForwardSeconds Number of seconds to warm up the locomotive
038     *                             before forward speed matching; set to 0 to
039     *                             skip the forward warm up
040     * @param warmUpReverseSeconds Number of seconds to warm up the locomotive
041     *                             before trimming revers speed; set to 0 to
042     *                             skip the reverse warm up
043     * @param powerManager         PowerManager for turning on the DCC system
044     *                             power
045     * @param statusLabel          JLabel status label in the SpeedoConsoleFrame
046     * @param actualMaxSpeedField  JLabel for indicating the locomotive's actual
047     *                             max speed
048     * @param startStopButton      JButton for starting and stopping speed
049     *                             matching
050     */
051    public SpeedStepScaleSpeedMatcherConfig(
052            DccLocoAddress address,
053            float targetMaxSpeed,
054            Speed.Unit speedUnit,
055            boolean trimReverseSpeed,
056            int warmUpForwardSeconds,
057            int warmUpReverseSeconds,
058            PowerManager powerManager,
059            JLabel statusLabel,
060            JLabel actualMaxSpeedField,
061            JButton startStopButton) {
062        super(address, speedUnit, trimReverseSpeed, warmUpForwardSeconds, warmUpReverseSeconds, powerManager, statusLabel, startStopButton);
063
064        this.targetMaxSpeed = targetMaxSpeed;
065        this.actualMaxSpeedField = actualMaxSpeedField;
066    }
067
068}