001package jmri.jmrix.lenz.messageformatters; 002 003import jmri.jmrix.lenz.XNetConstants; 004import jmri.jmrix.lenz.XPressNetMessageFormatter; 005 006/** 007 * Formatter for XPressNet messages targeted at the Interface device. 008 * @author Paul Bender copyright (C) 2024 009 */ 010public class XNetLI101RequestMessageFormatter implements XPressNetMessageFormatter { 011 012 private static final String X_NET_MESSAGE_REQUEST_LI_BAUD = "XNetMessageRequestLIBaud"; 013 014 public boolean handlesMessage(jmri.jmrix.Message m) { 015 return m instanceof jmri.jmrix.lenz.XNetMessage && ((jmri.jmrix.lenz.XNetMessage) m).getElement(0) == XNetConstants.LI101_REQUEST; 016 } 017 018 public String formatMessage(jmri.jmrix.Message m) { 019 if(m.getElement(1) == XNetConstants.LI101_REQUEST_ADDRESS) { 020 return Bundle.getMessage("XNetMessageRequestLIAddress", m.getElement(2)); 021 } else if(m.getElement(1) == XNetConstants.LI101_REQUEST_BAUD) { 022 switch (m.getElement(2)) { 023 case 1: 024 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("LIBaud19200")); 025 case 2: 026 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud38400")); 027 case 3: 028 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud57600")); 029 case 4: 030 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud115200")); 031 default: 032 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("BaudOther")); 033 } 034 } 035 throw new IllegalArgumentException("Unknown LI101 Request Type"); 036 } 037}