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