001package jmri.jmrix.lenz.messageformatters; 002 003import jmri.jmrix.Message; 004import jmri.jmrix.lenz.XNetConstants; 005import jmri.jmrix.lenz.XNetReply; 006import jmri.jmrix.lenz.XPressNetMessageFormatter; 007 008/** 009 * Formatter for Loco Function Status High Reply messages. 010 * 011 * @author Paul Bender Copyright (C) 2025 012 */ 013public class XNetLocoFunctionStatusHighReplyFormatter implements XPressNetMessageFormatter { 014 015 private static final String RS_TYPE = "rsType"; 016 017 @Override 018 public boolean handlesMessage(Message m) { 019 return m instanceof XNetReply && 020 m.getElement(0) == XNetConstants.LOCO_INFO_RESPONSE && 021 m.getElement(1) == XNetConstants.LOCO_FUNCTION_STATUS_HIGH; 022 } 023 024 @Override 025 public String formatMessage(Message m) { 026 if(!handlesMessage(m)) { 027 throw new IllegalArgumentException("Message is not supported"); 028 } 029 return Bundle.getMessage("XNetReplyLocoLabel") + " " + 030 Bundle.getMessage(RS_TYPE) + " " + 031 Bundle.getMessage("XNetReplyF13StatusLabel") + " "+ 032 XNetLocoInfoReplyUtilities.parseFunctionHighStatus(m.getElement(2), m.getElement(3)); 033 } 034 035}