Java tutorial
/* * Copyright 2014 Bevbot LLC <info@bevbot.com> * * This file is part of the Kegtab package from the Kegbot project. For * more information on Kegtab or Kegbot, see <http://kegbot.org/>. * * Kegtab is free software: you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free * Software Foundation, version 2. * * Kegtab is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with Kegtab. If not, see <http://www.gnu.org/licenses/>. */ package org.kegbot.kegboard; import com.google.common.base.Strings; /** * @author mike */ public class KegboardHelloMessage extends KegboardMessage { public static final int MESSAGE_TYPE = 0x01; private static final int TAG_FIRMWARE_VERSION = 0x01; private static final int TAG_PROTOCOL_VERSION = 0x02; private static final int TAG_SERIAL_NUMBER = 0x03; private static final int TAG_UPTIME_MILLIS = 0x04; private static final int TAG_UPTIME_DAYS = 0x05; public KegboardHelloMessage(byte[] wholeMessage) throws KegboardMessageException { super(wholeMessage); } @Override public short getMessageType() { return MESSAGE_TYPE; } @Override public String getStringExtra() { return new StringBuilder().append("firmware_version=").append(getFirmwareVersion()) .append(" protocol_version=").append(getProtocolVersion()).append(" serial_number=") .append(getSerialNumber()).append(" uptime_days=").append(getUptimeDays()).append(" uptime_millis=") .append(getUptimeMillis()).toString(); } public int getFirmwareVersion() { return readTagAsShort(TAG_FIRMWARE_VERSION); } public int getProtocolVersion() { return readTagAsShort(TAG_PROTOCOL_VERSION); } public long getUptimeDays() { final Long value = readTagAsLong(TAG_UPTIME_DAYS); if (value != null) { return value.longValue(); } return -1; } public long getUptimeMillis() { final Long value = readTagAsLong(TAG_UPTIME_MILLIS); if (value != null) { return value.longValue(); } return -1; } public String getSerialNumber() { return Strings.nullToEmpty(readTagAsString(TAG_SERIAL_NUMBER)); } }