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 @Override 014 public boolean handlesMessage(jmri.jmrix.Message m) { 015 return m instanceof jmri.jmrix.roco.z21.Z21XNetReply && 016 m.getElement(0) == Z21Constants.LAN_X_CV_RESULT_XHEADER && 017 m.getElement(1) == Z21Constants.LAN_X_CV_RESULT_DB0; 018 } 019 020 @Override 021 public String formatMessage(jmri.jmrix.Message m) { 022 if (!handlesMessage(m)) { 023 throw new IllegalArgumentException("Message is not a Z21XNetReply"); 024 } 025 int value = m.getElement(4) & 0xFF; 026 int cv = ( (m.getElement(2)&0xFF) << 8) + 027 ( m.getElement(3)& 0xFF ) + 1; 028 return Bundle.getMessage("Z21LAN_X_CV_RESULT",cv,value); 029 } 030}