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 @Override 015 public boolean handlesMessage(jmri.jmrix.Message m) { 016 return m instanceof jmri.jmrix.lenz.XNetMessage && ((jmri.jmrix.lenz.XNetMessage) m).getElement(0) == XNetConstants.LI101_REQUEST; 017 } 018 019 @Override 020 public String formatMessage(jmri.jmrix.Message m) { 021 if(m.getElement(1) == XNetConstants.LI101_REQUEST_ADDRESS) { 022 return Bundle.getMessage("XNetMessageRequestLIAddress", m.getElement(2)); 023 } else if(m.getElement(1) == XNetConstants.LI101_REQUEST_BAUD) { 024 switch (m.getElement(2)) { 025 case 1: 026 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("LIBaud19200")); 027 case 2: 028 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud38400")); 029 case 3: 030 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud57600")); 031 case 4: 032 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("Baud115200")); 033 default: 034 return Bundle.getMessage(X_NET_MESSAGE_REQUEST_LI_BAUD, Bundle.getMessage("BaudOther")); 035 } 036 } 037 throw new IllegalArgumentException("Unknown LI101 Request Type"); 038 } 039}