2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.lifx.internal.dto;
15 import java.nio.ByteBuffer;
17 import org.openhab.binding.lifx.internal.fields.Field;
18 import org.openhab.binding.lifx.internal.fields.UInt64Field;
19 import org.openhab.binding.lifx.internal.fields.Version;
20 import org.openhab.binding.lifx.internal.fields.VersionField;
23 * @author Tim Buckley - Initial contribution
24 * @author Karel Goderis - Enhancement for the V2 LIFX Firmware and LAN Protocol Specification
26 public class StateHostFirmwareResponse extends Packet {
28 public static final int TYPE = 0x0F;
30 public static final Field<Long> FIELD_BUILD = new UInt64Field().little();
31 public static final Field<Long> FIELD_RESERVED = new UInt64Field().little();
32 public static final Field<Version> FIELD_VERSION = new VersionField().little();
35 private long reserved;
36 private Version version;
38 public long getBuild() {
42 public void setBuild(long build) {
46 public Version getVersion() {
50 public void setVersion(Version version) {
51 this.version = version;
55 public int packetType() {
60 protected int packetLength() {
65 protected void parsePacket(ByteBuffer bytes) {
66 build = FIELD_BUILD.value(bytes);
67 reserved = FIELD_RESERVED.value(bytes);
68 version = FIELD_VERSION.value(bytes);
72 protected ByteBuffer packetBytes() {
73 return ByteBuffer.allocate(packetLength()).put(FIELD_BUILD.bytes(build)).put(FIELD_RESERVED.bytes(reserved))
74 .put(FIELD_VERSION.bytes(version));
78 public int[] expectedResponses() {