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}