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 XNet Multi Unit Info Reply messages. 010 * 011 * @author Paul Bender Copyright (C) 2025 012 */ 013public class XNetMultiUnitInfoReplyFormatter implements XPressNetMessageFormatter{ 014 @Override 015 public boolean handlesMessage(Message m) { 016 return m instanceof XNetReply && 017 ((XNetReply) m).getElement(0) == XNetConstants.LOCO_INFO_MUED_UNIT && 018 ((XNetReply) m).getElement(1) != 0xF8 && // Exclude the two Hornby Elite specific messages 019 ((XNetReply) m).getElement(1) != 0xF9; 020 } 021 022 @Override 023 public String formatMessage(Message m) { 024 if (handlesMessage(m)) { 025 026 return Bundle.getMessage("XNetReplyLocoMULabel") + "," + 027 XNetLocoInfoReplyUtilities.parseSpeedAndDirection(m.getElement(1), m.getElement(2)) + 028 XNetLocoInfoReplyUtilities.parseFunctionStatus(m.getElement(3), m.getElement(4)); 029 } 030 else throw new IllegalArgumentException("Message is not supported"); 031 } 032 033}