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 Get Description Requests
009 * @author Paul Bender Copyright (C) 2026
010 */
011public class Z21CANGetDescriptionRequestFormatter implements Z21MessageFormatter {
012    @Override
013    public boolean handlesMessage(Message m) {
014        return m instanceof Z21Message && ((Z21Message)m).getOpCode() == 0x00C8;
015    }
016
017    @Override
018    public String formatMessage(Message m) {
019        if(!handlesMessage(m)){
020            throw new IllegalArgumentException("Message m is not a Z21 CAN Description Request");
021        }
022        int networkID = ( m.getElement(4) & 0xFF) + ((m.getElement(5) & 0xFF) << 8);
023        return Bundle.getMessage("Z21CANGetDescriptionRequest", Integer.toHexString(networkID));
024    }
025}