001package jmri.jmrix.powerline.insteon2412s; 002 003/** 004 * Constants and functions specific to the Insteon 2412S interface 005 * 006 * @author Bob Jacobsen Copyright (C) 2008, 2009 007 * @author Ken Cameron Copyright (C) 2010 008 */ 009public class Constants { 010 011 private Constants() {} // class only supplies static methods 012 013 public static final int HEAD_STX = 0x02; 014 015 public static final int POLL_REQ_STD = 0x50; 016 public static final int POLL_REQ_EXT = 0x51; 017 public static final int POLL_REQ_X10 = 0x52; 018 public static final int POLL_REQ_BUTTON = 0x54; 019 public static final int POLL_REQ_BUTTON_RESET = 0x55; 020 public static final int FUNCTION_REQ_STD = 0x62; 021 public static final int FUNCTION_REQ_X10 = 0x63; 022 023 public static final int CMD_LIGHT_ON_RAMP = 0x11; 024 public static final int CMD_LIGHT_ON_FAST = 0x12; 025 public static final int CMD_LIGHT_OFF_RAMP = 0x13; 026 public static final int CMD_LIGHT_OFF_FAST = 0x14; 027 public static final int CMD_LIGHT_CHG = 0x21; 028 029 public static final int BUTTON_TAP = 0x02; 030 public static final int BUTTON_HELD = 0x03; 031 public static final int BUTTON_REL = 0x04; 032 public static final int BUTTON_BITS_ID = 0xF0; 033 public static final int BUTTON_BITS_OP = 0x0F; 034 035 public static final int REPLY_ACK = 0x06; 036 public static final int REPLY_NAK = 0x15; 037 038 // flag values 039 public static final int FLAG_BIT_STDEXT = 0x10; 040 public static final int FLAG_STD = 0x00; 041 public static final int FLAG_EXT = 0x10; 042 public static final int FLAG_TYPE_P2P = 0x00; 043 public static final int FLAG_TYPE_ACK = 0x20; 044 public static final int FLAG_TYPE_NAK = 0xA0; 045 public static final int FLAG_TYPE_GBCAST = 0xC0; 046 public static final int FLAG_TYPE_GBCLEANUP = 0x40; 047 public static final int FLAG_TYPE_GBCLEANACK = 0x60; 048 public static final int FLAG_TYPE_GBCLEANNAK = 0xE0; 049 050 public static final int FLAG_BIT_X10_CMDUNIT = 0x80; 051 public static final int FLAG_X10_RECV_CMD = 0x80; 052 public static final int FLAG_X10_RECV_UNIT = 0x00; 053 054 public static final int FLAG_MASK_HOPSLEFT = 0x0C; 055 public static final int FLAG_SHIFT_HOPSLEFT = 2; 056 public static final int FLAG_MASK_MAXHOPS = 0x03; 057 public static final int FLAG_MAXHOPS_DEFAULT = 0x01; 058 public static final int FLAG_MASK_MSGTYPE = 0xE0; 059 060 /** 061 * Pretty-print a header code. 062 * @param b header value 063 * @return formatted translation of header value 064 */ 065 public static String formatHeaderByte(int b) { 066 return "Dim: " + ((b >> 3) & 0x1F) 067 + ((b & 0x02) != 0 ? " function" : " address ") 068 + ((b & 0x01) != 0 ? " extended" : " "); 069 } 070 071}