001package jmri.jmrix.bachrus.speedmatcher.basic;
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 basic speed matcher
013 *
014 * @author Todd Wegter Copyright (C) 2024
015 */
016public class BasicSpeedMatcherConfig extends SpeedMatcherConfig {
017
018    //<editor-fold defaultstate="collapsed" desc="Enums">
019    public enum SpeedTable {
020        SIMPLE, ADVANCED, ESU
021    }
022    //</editor-fold>
023
024    //<editor-fold defaultstate="collapsed" desc="Instance Variables">
025    public float targetStartSpeed;
026    public float targetTopSpeed;
027    //</editor-fold>
028
029    /**
030     * Create a config object for a Basic Speed Matcher
031     *
032     * @param address              Address of locomotive to speed match
033     * @param targetStartSpeed     Target speed at vStart in the given speedUnit
034     * @param targetTopSpeed       Target speed at vHigh in the given speedUnit
035     * @param speedUnit            Speed.Unit to speed match the locomotive in
036     * @param trimReverseSpeed     Set to true to trim the locomotive's reverse
037     *                             speed, false otherwise
038     * @param warmUpForwardSeconds Number of seconds to warm up the locomotive
039     *                             before forward speed matching; set to 0 to
040     *                             skip the forward warm up
041     * @param warmUpReverseSeconds Number of seconds to warm up the locomotive
042     *                             before trimming revers speed; set to 0 to
043     *                             skip the reverse warm up
044     * @param powerManager         PowerManager for turning on the DCC system
045     *                             power
046     * @param statusLabel          JLabel status label in the SpeedoConsoleFrame
047     * @param startStopButton      JButton for starting and stopping speed
048     *                             matching
049     */
050    public BasicSpeedMatcherConfig(
051            DccLocoAddress address,
052            float targetStartSpeed,
053            float targetTopSpeed,
054            Speed.Unit speedUnit,
055            boolean trimReverseSpeed,
056            int warmUpForwardSeconds,
057            int warmUpReverseSeconds,
058            PowerManager powerManager,
059            JLabel statusLabel,
060            JButton startStopButton) {
061        super(address, speedUnit, trimReverseSpeed, warmUpForwardSeconds, warmUpReverseSeconds, powerManager, statusLabel, startStopButton);
062
063        this.targetStartSpeed = targetStartSpeed;
064        this.targetTopSpeed = targetTopSpeed;
065    }
066
067}