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}