001package jmri.jmrix.lenz.messageformatters; 002 003import jmri.jmrix.Message; 004import jmri.jmrix.lenz.XNetReply; 005import jmri.jmrix.lenz.XPressNetMessageFormatter; 006 007/** 008 * Formatter for XPressNet Broadcast Model Time messages. 009 * 010 * @author Paul Bender Copyright (C) 2025 011 */ 012public class XNetBCModelTimeFormatter implements XPressNetMessageFormatter { 013 014 @Override 015 public boolean handlesMessage(Message m) { 016 return m instanceof XNetReply && m.getElement(0) == 0x63 && m.getElement(1) == 0x03; 017 } 018 019 @Override 020 public String formatMessage(Message m) { 021 if (!handlesMessage(m)) { 022 throw new IllegalArgumentException("Message is not supported"); 023 } 024 int day = ((m.getElement(2) & 0xE0) >>5); 025 int hour = ((m.getElement(2) & 0x1F)); 026 int minute = m.getElement(3) & 0x3F; 027 boolean stopped = (m.getElement(3) & 0x10000000) != 0; 028 return Bundle.getMessage("XNetBCTimeFormat", day,hour,minute, Bundle.getMessage(stopped ? "ClockStopped" : "ClockRunning")); 029 } 030 031}