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}