001package jmri.jmrix.lenz.messageformatters; 002 003import jmri.jmrix.lenz.XNetConstants; 004import jmri.jmrix.lenz.XNetMessage; 005import jmri.jmrix.lenz.XPressNetMessageFormatter; 006 007/** 008 * Format Turnout Operations Request messages for display 009 * 010 * @author Paul Bender Copyright (C) 2024 011 */ 012public class XNetTurnoutCommandMessageFormatter implements XPressNetMessageFormatter { 013 public XNetTurnoutCommandMessageFormatter() { 014 } 015 016 @Override 017 public boolean handlesMessage(jmri.jmrix.Message m) { 018 return m instanceof jmri.jmrix.lenz.XNetMessage && ((XNetMessage) m).getElement(0)==XNetConstants.ACC_OPER_REQ; 019 } 020 021 @Override 022 public String formatMessage(jmri.jmrix.Message m) { 023 String messageKey =(((m.getElement(2) & 0x08) == 0x08) ? "XNetMessageAccessoryDecoderOnRequest" : "XNetMessageAccessoryDecoderOffRequest"); 024 int baseaddress = m.getElement(1); 025 int subaddress = ((m.getElement(2) & 0x06) >> 1); 026 int address = (baseaddress * 4) + subaddress + 1; 027 int output = (m.getElement(2) & 0x01); 028 return Bundle.getMessage(messageKey,address, baseaddress,subaddress,output); 029 } 030}