/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.insteonhub.internal.hardware; import java.util.Collections; import java.util.HashMap; import java.util.Map; /** * Constants for INSTEON messages * * @author Eric Thill * @since 1.4.0 */ public class InsteonHubMsgConst { public static final byte STX = 0x02; public static final byte ACK = 0x06; public static final byte NAK = 0x15; public static final byte CMD1_ON = 0x11; public static final byte CMD1_ON_FAST = 0x12; public static final byte CMD1_OFF = 0x13; public static final byte CMD1_OFF_FAST = 0x14; public static final byte CMD1_BRT = 0x15; public static final byte CMD1_DIM = 0x16; public static final byte CMD1_START_DIM_BRT = 0x17; public static final byte CMD1_STOP_DIM_BRT = 0x18; public static final byte CMD1_STATUS_REQUEST = 0x19; public static final byte CMD1_LEVEL_RESPONSE = 0x02; public static final byte CMD2_NO_VALUE = 0x00; public static final byte CMD2_DIM = 0x00; public static final byte CMD2_BRT = 0x01; public static final int STD_FLAG_BIT_BC_OR_NAK = 7; public static final int STD_FLAG_BIT_GROUP = 6; public static final int STD_FLAG_BIT_ACK = 5; public static final int STD_FLAG_BIT_EXT = 4; public static final byte REC_CODE_INSTEON_STD_MSG = 0x50; public static final byte REC_CODE_INSTEON_EXT_MSG = 0x51; public static final byte REC_CODE_X10 = 0x52; public static final byte REC_CODE_ALL_LINK_COMPLETE = 0x53; public static final byte REC_CODE_BTN_EVT_REPORT = 0x54; public static final byte REC_CODE_USER_RESET_DETECT = 0x55; public static final byte REC_CODE_ALL_LINK_CLEANUP_FAILURE_REPORT = 0x56; public static final byte REC_CODE_ALL_LINK_RECORD_RESPONSE = 0x57; public static final byte REC_CODE_ALL_LINK_CLEANUP_STATUS_REPORT = 0x58; public static final byte REC_CODE_DATABASE_RECORD_FOUND = 0x59; public static final byte SND_CODE_GET_IM_INFO = 0x60; public static final byte SND_CODE_ALL_LINK_COMMAND = 0x61; public static final byte SND_CODE_SEND_INSTEON_STD_OR_EXT_MSG = 0x62; public static final byte SND_CODE_SEND_X10 = 0x63; public static final byte SND_CODE_START_ALL_LINKING = 0x64; public static final byte SND_CODE_CANCEL_ALL_LINKING = 0x65; public static final byte SND_CODE_SET_HOST_DEVICE_CATEGORY = 0x66; public static final byte SND_CODE_RESET_IM = 0x67; public static final byte SND_CODE_SET_INSTEON_ACK_MSG_BYTE = 0x68; public static final byte SND_CODE_GET_FIRST_ALL_LINK_RECORD = 0x69; public static final byte SND_CODE_GET_NEXT_ALL_LINK_RECORD = 0x6A; public static final byte SND_CODE_SET_IM_CONFIG = 0x6B; public static final byte SND_CODE_GET_ALL_LINK_RECORD_FOR_SENDER = 0x6C; public static final byte SND_CODE_LED_ON = 0x6D; public static final byte SND_CODE_LED_OFF = 0x6E; public static final byte SND_CODE_MANAGE_ALL_LINK_RECORD = 0x6F; public static final byte SND_CODE_SET_INSTEON_NAK_MSG_BYTE = 0x70; public static final byte SND_CODE_SET_INSTEON_ACK_MSG_TWO_BYTES = 0x71; public static final byte SND_CODE_RF_SLEEP = 0x72; public static final byte SND_CODE_GET_IM_CONFIG = 0x73; public static final byte SND_CODE_CANCEL_CLEANUP = 0x74; public static final byte SND_CODE_READ_8_BYTES_FROM_DB = 0x75; public static final byte SND_CODE_WRITE_8_BYTES_TO_DB = 0x76; public static final byte SND_CODE_BEEP = 0x77; public static final byte SND_CODE_SET_STATUS = 0x78; public static final byte SND_CODE_SET_DB_LINK_DATA_FOR_NEXT_LINK = 0x79; public static final byte SND_CODE_SET_APP_RETRIES_FOR_NEW_LINK = 0x7A; public static final byte SND_CODE_SET_RF_FREQUENCY_OFFSET = 0x7B; public static final byte SND_CODE_SET_ACK_FOR_TEMPLINC_CMD = 0x7C; public static final Map<Byte, Integer> REC_MSG_SIZES; static { Map<Byte, Integer> recMsgSizes = new HashMap<Byte, Integer>(); recMsgSizes.put(REC_CODE_INSTEON_STD_MSG, 11); recMsgSizes.put(REC_CODE_INSTEON_EXT_MSG, 25); recMsgSizes.put(REC_CODE_X10, 4); recMsgSizes.put(REC_CODE_ALL_LINK_COMPLETE, 10); recMsgSizes.put(REC_CODE_BTN_EVT_REPORT, 3); recMsgSizes.put(REC_CODE_USER_RESET_DETECT, 2); recMsgSizes.put(REC_CODE_ALL_LINK_CLEANUP_FAILURE_REPORT, 7); recMsgSizes.put(REC_CODE_ALL_LINK_RECORD_RESPONSE, 10); recMsgSizes.put(REC_CODE_ALL_LINK_CLEANUP_STATUS_REPORT, 3); recMsgSizes.put(REC_CODE_DATABASE_RECORD_FOUND, 12); recMsgSizes.put(SND_CODE_GET_IM_INFO, 9); recMsgSizes.put(SND_CODE_ALL_LINK_COMMAND, 6); recMsgSizes.put(SND_CODE_SEND_INSTEON_STD_OR_EXT_MSG, 9); recMsgSizes.put(SND_CODE_SEND_X10, 5); recMsgSizes.put(SND_CODE_START_ALL_LINKING, 5); recMsgSizes.put(SND_CODE_CANCEL_ALL_LINKING, 3); recMsgSizes.put(SND_CODE_SET_HOST_DEVICE_CATEGORY, 6); recMsgSizes.put(SND_CODE_RESET_IM, 3); recMsgSizes.put(SND_CODE_SET_INSTEON_ACK_MSG_BYTE, 4); recMsgSizes.put(SND_CODE_GET_FIRST_ALL_LINK_RECORD, 3); recMsgSizes.put(SND_CODE_GET_NEXT_ALL_LINK_RECORD, 3); recMsgSizes.put(SND_CODE_SET_IM_CONFIG, 4); recMsgSizes.put(SND_CODE_GET_ALL_LINK_RECORD_FOR_SENDER, 3); recMsgSizes.put(SND_CODE_LED_ON, 3); recMsgSizes.put(SND_CODE_LED_OFF, 3); recMsgSizes.put(SND_CODE_MANAGE_ALL_LINK_RECORD, 12); recMsgSizes.put(SND_CODE_SET_INSTEON_NAK_MSG_BYTE, 4); recMsgSizes.put(SND_CODE_SET_INSTEON_ACK_MSG_TWO_BYTES, 5); recMsgSizes.put(SND_CODE_RF_SLEEP, 5); recMsgSizes.put(SND_CODE_GET_IM_CONFIG, 6); recMsgSizes.put(SND_CODE_CANCEL_CLEANUP, 3); recMsgSizes.put(SND_CODE_READ_8_BYTES_FROM_DB, 17); recMsgSizes.put(SND_CODE_WRITE_8_BYTES_TO_DB, 13); recMsgSizes.put(SND_CODE_BEEP, 3); recMsgSizes.put(SND_CODE_SET_STATUS, 4); recMsgSizes.put(SND_CODE_SET_DB_LINK_DATA_FOR_NEXT_LINK, 6); recMsgSizes.put(SND_CODE_SET_APP_RETRIES_FOR_NEW_LINK, 4); recMsgSizes.put(SND_CODE_SET_RF_FREQUENCY_OFFSET, 4); recMsgSizes.put(SND_CODE_SET_ACK_FOR_TEMPLINC_CMD, 4); REC_MSG_SIZES = Collections.unmodifiableMap(recMsgSizes); } }