001package jmri.jmrix.roco.z21.messageformatters; 002 003import jmri.jmrix.lenz.XPressNetMessageFormatter; 004import jmri.jmrix.roco.z21.Z21Constants; 005 006/** 007 * Format Z21XNet Turnout Replies for display. 008 * 009 * @author Paul Bender Copyright (C) 2025 010 */ 011public class Z21XNetTurnoutReplyFormatter implements XPressNetMessageFormatter { 012 013 @Override 014 public boolean handlesMessage(jmri.jmrix.Message m) { 015 return (m instanceof jmri.jmrix.roco.z21.Z21XNetReply && (m.getElement(0) == Z21Constants.LAN_X_TURNOUT_INFO)); 016 } 017 018 @Override 019 public String formatMessage(jmri.jmrix.Message m) { 020 if(!handlesMessage(m)) { 021 throw new IllegalArgumentException("Message not supported"); 022 } 023 int address = (m.getElement(1) << 8 ) + m.getElement(2) +1; 024 String state = ""; 025 switch(m.getElement(3)) { 026 case 0x03: 027 state += "inconsistent"; 028 break; 029 case 0x02: 030 state += "Thrown"; 031 break; 032 case 0x01: 033 state += "Closed"; 034 break; 035 default: 036 state += "Unknown"; 037 } 038 return Bundle.getMessage("Z21LAN_X_TURNOUT_INFO",address, state); 039 } 040}