001package jmri.jmrix.roco.z21.messageformatters;
002
003import jmri.jmrix.Message;
004import jmri.jmrix.roco.z21.Z21Message;
005import jmri.jmrix.roco.z21.Z21MessageFormatter;
006
007/**
008 * Formatter for Z21 CAN Detector Requests
009 * @author Paul Bender Copyright (C) 2025
010 */
011public class Z21CANDetectorRequestFormatter implements Z21MessageFormatter {
012
013    @Override
014    public boolean handlesMessage(Message m) {
015        return m instanceof Z21Message && ((Z21Message)m).getOpCode() == 0x00C4;
016    }
017
018    @Override
019    public String formatMessage(Message m) {
020        if(!handlesMessage(m)){
021            throw new IllegalArgumentException("Message m is not a Z21 CAN Detector Request");
022        }
023        int networkID = ( m.getElement(4) & 0xFF) + ((m.getElement(5) & 0xFF) << 8);
024        return Bundle.getMessage("Z21CANDetectorRequest", Integer.toHexString(networkID));
025    }
026
027}