001package jmri.jmrix.lenz.messageformatters; 002 003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 004import jmri.jmrix.Message; 005import jmri.jmrix.lenz.XNetConstants; 006import jmri.jmrix.lenz.XNetReply; 007import jmri.jmrix.lenz.XPressNetMessageFormatter; 008/** 009 * Format XPressNet reply for LI version. 010 * 011 * @author Paul Bender Copyright (C) 2025 012 */ 013public class XNetLIVersionReplyFormatter implements XPressNetMessageFormatter { 014 015 @Override 016 public boolean handlesMessage(Message m) { 017 return m instanceof XNetReply && m.getElement(0) == XNetConstants.LI_VERSION_RESPONSE; 018 } 019 020 @SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST", justification = "cast is checked in handlesMessage") 021 @Override 022 public String formatMessage(Message m) { 023 if(!handlesMessage(m)) { 024 throw new IllegalArgumentException("Message is not supported"); 025 } 026 XNetReply r = (XNetReply) m; 027 return Bundle.getMessage("XNetReplyLIVersion", (r.getElementBCD(1).floatValue()) / 10, (r.getElementBCD(2).floatValue()) / 10); 028 029 } 030 031}