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 public boolean handlesMessage(jmri.jmrix.Message m) { 017 return m instanceof jmri.jmrix.lenz.XNetMessage && ((XNetMessage) m).getElement(0)==XNetConstants.ACC_OPER_REQ; 018 } 019 020 public String formatMessage(jmri.jmrix.Message m) { 021 String messageKey =(((m.getElement(2) & 0x08) == 0x08) ? "XNetMessageAccessoryDecoderOnRequest" : "XNetMessageAccessoryDecoderOffRequest"); 022 int baseaddress = m.getElement(1); 023 int subaddress = ((m.getElement(2) & 0x06) >> 1); 024 int address = (baseaddress * 4) + subaddress + 1; 025 int output = (m.getElement(2) & 0x01); 026 return Bundle.getMessage(messageKey,address, baseaddress,subaddress,output); 027 } 028}