001package jmri.jmrix.roco.z21.messageformatters; 002 003import jmri.jmrix.lenz.XPressNetMessageFormatter; 004import jmri.jmrix.roco.z21.Z21Constants; 005 006/** 007 * Format Z21XNetReply CV Programming results for display in the XpressNet monitor. 008 * 009 * @author Paul Bender Copyright (C) 2025 010 */ 011public class Z21XNetCVReplyFormatter implements XPressNetMessageFormatter { 012 013 public boolean handlesMessage(jmri.jmrix.Message m) { 014 return m instanceof jmri.jmrix.roco.z21.Z21XNetReply && 015 m.getElement(0) == Z21Constants.LAN_X_CV_RESULT_XHEADER && 016 m.getElement(1) == Z21Constants.LAN_X_CV_RESULT_DB0; 017 } 018 019 public String formatMessage(jmri.jmrix.Message m) { 020 if (!handlesMessage(m)) { 021 throw new IllegalArgumentException("Message is not a Z21XNetReply"); 022 } 023 int value = m.getElement(4) & 0xFF; 024 int cv = ( (m.getElement(2)&0xFF) << 8) + 025 ( m.getElement(3)& 0xFF ) + 1; 026 return Bundle.getMessage("Z21LAN_X_CV_RESULT",cv,value); 027 } 028}