
com.github.besherman.lifx.impl.entities.internal.structle.LxProtocolWan Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lifx-sdk-java Show documentation
Show all versions of lifx-sdk-java Show documentation
A port of "LIFX Android SDK" to Java
The newest version!
/*
* The MIT License
*
* Created by Jarrod Boyes on 24/03/14.
* Copyright (c) 2014 LIFX Labs. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package com.github.besherman.lifx.impl.entities.internal.structle;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.github.besherman.lifx.impl.entities.internal.structle.StructleTypes.Bool8;
import com.github.besherman.lifx.impl.entities.internal.structle.StructleTypes.LxProtocolTypeBase;
import java.util.Arrays;
@SuppressWarnings("unused")
public class LxProtocolWan {
public static class ConnectPlain extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::ConnectPlain
// Fields: user, pass;
private String user; // Field: user - Structle::String byte offset: 0
private String pass; // Field: pass - Structle::String byte offset: 32
private static final int PAYLOAD_SIZE = 64;
public ConnectPlain(byte[] bytes) {
this(bytes, 0);
}
public ConnectPlain(byte[] bytes, int initialOffset) {
// if(bytes.length != 36 + PAYLOAD_SIZE) {
// Logger.getLogger(getClass().getName()).log(Level.SEVERE,
// String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
// }
//
// byte[] member0Data = new byte[32];
// member0Data[0] = bytes[initialOffset + 0];
// member0Data[1] = bytes[initialOffset + 1];
// member0Data[2] = bytes[initialOffset + 2];
// member0Data[3] = bytes[initialOffset + 3];
// member0Data[4] = bytes[initialOffset + 4];
// member0Data[5] = bytes[initialOffset + 5];
// member0Data[6] = bytes[initialOffset + 6];
// member0Data[7] = bytes[initialOffset + 7];
// member0Data[8] = bytes[initialOffset + 8];
// member0Data[9] = bytes[initialOffset + 9];
// member0Data[10] = bytes[initialOffset + 10];
// member0Data[11] = bytes[initialOffset + 11];
// member0Data[12] = bytes[initialOffset + 12];
// member0Data[13] = bytes[initialOffset + 13];
// member0Data[14] = bytes[initialOffset + 14];
// member0Data[15] = bytes[initialOffset + 15];
// member0Data[16] = bytes[initialOffset + 16];
// member0Data[17] = bytes[initialOffset + 17];
// member0Data[18] = bytes[initialOffset + 18];
// member0Data[19] = bytes[initialOffset + 19];
// member0Data[20] = bytes[initialOffset + 20];
// member0Data[21] = bytes[initialOffset + 21];
// member0Data[22] = bytes[initialOffset + 22];
// member0Data[23] = bytes[initialOffset + 23];
// member0Data[24] = bytes[initialOffset + 24];
// member0Data[25] = bytes[initialOffset + 25];
// member0Data[26] = bytes[initialOffset + 26];
// member0Data[27] = bytes[initialOffset + 27];
// member0Data[28] = bytes[initialOffset + 28];
// member0Data[29] = bytes[initialOffset + 29];
// member0Data[30] = bytes[initialOffset + 30];
// member0Data[31] = bytes[initialOffset + 31];
//
// int endOfStringIndex;
// byte[] subString;
//
// endOfStringIndex = member0Data.length;
//
// for (int i = 0; i < member0Data.length; i++) {
// if (member0Data[i] == 0x00) {
// endOfStringIndex = i;
// break;
// }
// }
//
// subString = new byte[endOfStringIndex];
// for (int i = 0; i < endOfStringIndex; i++) {
// subString[i] = member0Data[i];
// }
//
// user = new String(subString);
//
// byte[] member1Data = new byte[32];
// member1Data[0] = bytes[initialOffset + 32];
// member1Data[1] = bytes[initialOffset + 33];
// member1Data[2] = bytes[initialOffset + 34];
// member1Data[3] = bytes[initialOffset + 35];
// member1Data[4] = bytes[initialOffset + 36];
// member1Data[5] = bytes[initialOffset + 37];
// member1Data[6] = bytes[initialOffset + 38];
// member1Data[7] = bytes[initialOffset + 39];
// member1Data[8] = bytes[initialOffset + 40];
// member1Data[9] = bytes[initialOffset + 41];
// member1Data[10] = bytes[initialOffset + 42];
// member1Data[11] = bytes[initialOffset + 43];
// member1Data[12] = bytes[initialOffset + 44];
// member1Data[13] = bytes[initialOffset + 45];
// member1Data[14] = bytes[initialOffset + 46];
// member1Data[15] = bytes[initialOffset + 47];
// member1Data[16] = bytes[initialOffset + 48];
// member1Data[17] = bytes[initialOffset + 49];
// member1Data[18] = bytes[initialOffset + 50];
// member1Data[19] = bytes[initialOffset + 51];
// member1Data[20] = bytes[initialOffset + 52];
// member1Data[21] = bytes[initialOffset + 53];
// member1Data[22] = bytes[initialOffset + 54];
// member1Data[23] = bytes[initialOffset + 55];
// member1Data[24] = bytes[initialOffset + 56];
// member1Data[25] = bytes[initialOffset + 57];
// member1Data[26] = bytes[initialOffset + 58];
// member1Data[27] = bytes[initialOffset + 59];
// member1Data[28] = bytes[initialOffset + 60];
// member1Data[29] = bytes[initialOffset + 61];
// member1Data[30] = bytes[initialOffset + 62];
// member1Data[31] = bytes[initialOffset + 63];
//
// endOfStringIndex = member1Data.length;
//
// for (int i = 0; i < member1Data.length; i++) {
// if (member1Data[i] == 0x00) {
// endOfStringIndex = i;
// break;
// }
// }
//
// subString = new byte[endOfStringIndex];
// for (int i = 0; i < endOfStringIndex; i++) {
// subString[i] = member1Data[i];
// }
//
// pass = new String(subString);
}
public ConnectPlain(Object padding, String user, String pass) {
this.user = user;
this.pass = pass;
}
public String getUser() {
return user;
}
public String getPass() {
return pass;
}
public void printMessageData() {
//System.out.println( user); // Field: user - Structle::String byte offset: 64
//System.out.println( pass); // Field: pass - Structle::String byte offset: 64
Logger.getLogger(ConnectPlain.class.getName()).log(Level.FINE, pass);
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, String user, String pass) {
byte[] memberData; // = name.getBytes();
char[] userchars = user.toCharArray();
//byte[] userBytes = new byte[userchars.length];
byte[] userBytes = new byte[32];
for (int i = 0; i < 32; i++) {
userBytes[i] = 0x00;
}
for (int i = 0; i < userchars.length; i++) {
userBytes[i] = (byte) userchars[i];
}
memberData = userBytes;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
char[] passchars = pass.toCharArray();
//byte[] passBytes = new byte[passchars.length];
byte[] passBytes = new byte[32];
for (int i = 0; i < 32; i++) {
passBytes[i] = 0x00;
}
for (int i = 0; i < passchars.length; i++) {
passBytes[i] = (byte) passchars[i];
}
memberData = passBytes;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, String user, String pass) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, user, pass);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
char[] userchars = user.toCharArray();
//byte[] userBytes = new byte[userchars.length];
byte[] userBytes = new byte[32];
for (int i = 0; i < 32; i++) {
userBytes[i] = 0x00;
}
for (int i = 0; i < userchars.length; i++) {
userBytes[i] = (byte) userchars[i];
}
memberData = userBytes;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
char[] passchars = pass.toCharArray();
//byte[] passBytes = new byte[passchars.length];
byte[] passBytes = new byte[32];
for (int i = 0; i < 32; i++) {
passBytes[i] = 0x00;
}
for (int i = 0; i < passchars.length; i++) {
passBytes[i] = (byte) passchars[i];
}
memberData = passBytes;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
public static class ConnectKey extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::ConnectKey
// Fields: key;
private byte[] key = new byte[32]; // Field: key - Structle::Bytes byte offset: 0
private static final int PAYLOAD_SIZE = 32;
public ConnectKey(byte[] bytes) {
this(bytes, 0);
}
public ConnectKey(byte[] bytes, int initialOffset) {
if(bytes.length != 36 + PAYLOAD_SIZE) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE,
String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
}
byte[] member0Data = new byte[32];
member0Data[0] = bytes[initialOffset + 0];
member0Data[1] = bytes[initialOffset + 1];
member0Data[2] = bytes[initialOffset + 2];
member0Data[3] = bytes[initialOffset + 3];
member0Data[4] = bytes[initialOffset + 4];
member0Data[5] = bytes[initialOffset + 5];
member0Data[6] = bytes[initialOffset + 6];
member0Data[7] = bytes[initialOffset + 7];
member0Data[8] = bytes[initialOffset + 8];
member0Data[9] = bytes[initialOffset + 9];
member0Data[10] = bytes[initialOffset + 10];
member0Data[11] = bytes[initialOffset + 11];
member0Data[12] = bytes[initialOffset + 12];
member0Data[13] = bytes[initialOffset + 13];
member0Data[14] = bytes[initialOffset + 14];
member0Data[15] = bytes[initialOffset + 15];
member0Data[16] = bytes[initialOffset + 16];
member0Data[17] = bytes[initialOffset + 17];
member0Data[18] = bytes[initialOffset + 18];
member0Data[19] = bytes[initialOffset + 19];
member0Data[20] = bytes[initialOffset + 20];
member0Data[21] = bytes[initialOffset + 21];
member0Data[22] = bytes[initialOffset + 22];
member0Data[23] = bytes[initialOffset + 23];
member0Data[24] = bytes[initialOffset + 24];
member0Data[25] = bytes[initialOffset + 25];
member0Data[26] = bytes[initialOffset + 26];
member0Data[27] = bytes[initialOffset + 27];
member0Data[28] = bytes[initialOffset + 28];
member0Data[29] = bytes[initialOffset + 29];
member0Data[30] = bytes[initialOffset + 30];
member0Data[31] = bytes[initialOffset + 31];
key = member0Data;
}
public ConnectKey(Object padding, byte[] key
) {
this.key = key;
}
public byte[] getKey() {
return key;
}
public void printMessageData() {
Logger.getLogger(ConnectKey.class.getName()).log(Level.FINE, "Byte Array Print not currently supported");
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, byte[] key) {
byte[] memberData; // = name.getBytes();
memberData = key;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, byte[] key) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, key);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
memberData = key;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
public static class StateConnect extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::StateConnect
// Fields: key;
private byte[] key = new byte[32]; // Field: key - Structle::Bytes byte offset: 0
private static final int PAYLOAD_SIZE = 32;
public StateConnect(byte[] bytes) {
this(bytes, 0);
}
public StateConnect(byte[] bytes, int initialOffset) {
// TODO: fix
// if(bytes.length != 36 + PAYLOAD_SIZE) {
// Logger.getLogger(getClass().getName()).log(Level.SEVERE,
// String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
// }
byte[] member0Data = new byte[32];
Arrays.fill(member0Data, (byte)0);
for(int i = initialOffset; i < bytes.length; i++) {
member0Data[i - initialOffset] = bytes[i];
}
// member0Data[0] = bytes[initialOffset + 0];
// member0Data[1] = bytes[initialOffset + 1];
// member0Data[2] = bytes[initialOffset + 2];
// member0Data[3] = bytes[initialOffset + 3];
// member0Data[4] = bytes[initialOffset + 4];
// member0Data[5] = bytes[initialOffset + 5];
// member0Data[6] = bytes[initialOffset + 6];
// member0Data[7] = bytes[initialOffset + 7];
// member0Data[8] = bytes[initialOffset + 8];
// member0Data[9] = bytes[initialOffset + 9];
// member0Data[10] = bytes[initialOffset + 10];
// member0Data[11] = bytes[initialOffset + 11];
// member0Data[12] = bytes[initialOffset + 12];
// member0Data[13] = bytes[initialOffset + 13];
// member0Data[14] = bytes[initialOffset + 14];
// member0Data[15] = bytes[initialOffset + 15];
// member0Data[16] = bytes[initialOffset + 16];
// member0Data[17] = bytes[initialOffset + 17];
// member0Data[18] = bytes[initialOffset + 18];
// member0Data[19] = bytes[initialOffset + 19];
// member0Data[20] = bytes[initialOffset + 20];
// member0Data[21] = bytes[initialOffset + 21];
// member0Data[22] = bytes[initialOffset + 22];
// member0Data[23] = bytes[initialOffset + 23];
// member0Data[24] = bytes[initialOffset + 24];
// member0Data[25] = bytes[initialOffset + 25];
// member0Data[26] = bytes[initialOffset + 26];
// member0Data[27] = bytes[initialOffset + 27];
// member0Data[28] = bytes[initialOffset + 28];
// member0Data[29] = bytes[initialOffset + 29];
// member0Data[30] = bytes[initialOffset + 30];
// member0Data[31] = bytes[initialOffset + 31];
key = member0Data;
}
public StateConnect(Object padding, byte[] key) {
this.key = key;
}
public byte[] getKey() {
return key;
}
public void printMessageData() {
Logger.getLogger(ConnectKey.class.getName()).log(Level.FINE, "Byte Array Print not currently supported");
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, byte[] key) {
byte[] memberData; // = name.getBytes();
memberData = key;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, byte[] key) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, key);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
memberData = key;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
public static class Sub extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::Sub
// Fields: target, site, device;
private byte[] target = new byte[8]; // Field: target - Structle::Bytes byte offset: 0
private byte[] site = new byte[6]; // Field: site - Structle::Bytes byte offset: 8
private Bool8 device; // Field: device - Structle::Bool byte offset: 14
private static final int PAYLOAD_SIZE = 15;
public Sub(byte[] bytes) {
this(bytes, 0);
}
public Sub(byte[] bytes, int initialOffset) {
// todo fix this
// if(bytes.length != 36 + PAYLOAD_SIZE) {
// Logger.getLogger(getClass().getName()).log(Level.SEVERE,
// String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
// }
// byte[] member0Data = new byte[8];
// member0Data[0] = bytes[initialOffset + 0];
// member0Data[1] = bytes[initialOffset + 1];
// member0Data[2] = bytes[initialOffset + 2];
// member0Data[3] = bytes[initialOffset + 3];
// member0Data[4] = bytes[initialOffset + 4];
// member0Data[5] = bytes[initialOffset + 5];
// member0Data[6] = bytes[initialOffset + 6];
// member0Data[7] = bytes[initialOffset + 7];
//
// target = member0Data;
//
// byte[] member1Data = new byte[6];
// member1Data[0] = bytes[initialOffset + 8];
// member1Data[1] = bytes[initialOffset + 9];
// member1Data[2] = bytes[initialOffset + 10];
// member1Data[3] = bytes[initialOffset + 11];
// member1Data[4] = bytes[initialOffset + 12];
// member1Data[5] = bytes[initialOffset + 13];
//
// site = member1Data;
//
// byte[] member2Data = new byte[1];
// member2Data[0] = bytes[initialOffset + 14];
//
// device = new Bool8(member2Data);
}
public Sub(Object padding, byte[] target, byte[] site, Bool8 device) {
this.target = target;
this.site = site;
this.device = device;
}
public byte[] getTarget() {
return target;
}
public byte[] getSite() {
return site;
}
public Bool8 getDevice() {
return device;
}
public void printMessageData() {
Logger.getLogger(ConnectKey.class.getName()).log(Level.FINE, "Byte Array Print not currently supported");
device.printValue("device"); // Field: device - Structle::Bool byte offset: 15
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, byte[] target, byte[] site, Bool8 device) {
byte[] memberData; // = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, byte[] target, byte[] site, Bool8 device) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, target, site, device);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
public static class Unsub extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::Unsub
// Fields: target, site, device;
private byte[] target = new byte[8]; // Field: target - Structle::Bytes byte offset: 0
private byte[] site = new byte[6]; // Field: site - Structle::Bytes byte offset: 8
private Bool8 device; // Field: device - Structle::Bool byte offset: 14
private static final int PAYLOAD_SIZE = 15;
public Unsub(byte[] bytes) {
this(bytes, 0);
}
public Unsub(byte[] bytes, int initialOffset) {
if(bytes.length != 36 + PAYLOAD_SIZE) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE,
String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
}
byte[] member0Data = new byte[8];
member0Data[0] = bytes[initialOffset + 0];
member0Data[1] = bytes[initialOffset + 1];
member0Data[2] = bytes[initialOffset + 2];
member0Data[3] = bytes[initialOffset + 3];
member0Data[4] = bytes[initialOffset + 4];
member0Data[5] = bytes[initialOffset + 5];
member0Data[6] = bytes[initialOffset + 6];
member0Data[7] = bytes[initialOffset + 7];
target = member0Data;
byte[] member1Data = new byte[6];
member1Data[0] = bytes[initialOffset + 8];
member1Data[1] = bytes[initialOffset + 9];
member1Data[2] = bytes[initialOffset + 10];
member1Data[3] = bytes[initialOffset + 11];
member1Data[4] = bytes[initialOffset + 12];
member1Data[5] = bytes[initialOffset + 13];
site = member1Data;
byte[] member2Data = new byte[1];
member2Data[0] = bytes[initialOffset + 14];
device = new Bool8(member2Data);
}
public Unsub(Object padding, byte[] target, byte[] site, Bool8 device
) {
this.target = target;
this.site = site;
this.device = device;
}
public byte[] getTarget() {
return target;
}
public byte[] getSite() {
return site;
}
public Bool8 getDevice() {
return device;
}
public void printMessageData() {
Logger.getLogger(ConnectKey.class.getName()).log(Level.FINE, "Byte Array Print not currently supported");
device.printValue("device"); // Field: device - Structle::Bool byte offset: 15
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, byte[] target, byte[] site, Bool8 device) {
byte[] memberData; // = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, byte[] target, byte[] site, Bool8 device) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, target, site, device);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
public static class StateSub extends LxProtocolTypeBase { // Struct: Lx::Protocol::Wan::StateSub
// Fields: target, site, device;
private byte[] target = new byte[8]; // Field: target - Structle::Bytes byte offset: 0
private byte[] site = new byte[6]; // Field: site - Structle::Bytes byte offset: 8
private Bool8 device; // Field: device - Structle::Bool byte offset: 14
private static final int PAYLOAD_SIZE = 15;
public StateSub(byte[] bytes) {
this(bytes, 0);
}
public StateSub(byte[] bytes, int initialOffset) {
// if(bytes.length != 36 + PAYLOAD_SIZE) {
// Logger.getLogger(getClass().getName()).log(Level.SEVERE,
// String.format("payload has more data than advertised: %s", StructleTypes.bytesToString(bytes)));
// }
//
// byte[] member0Data = new byte[8];
// member0Data[0] = bytes[initialOffset + 0];
// member0Data[1] = bytes[initialOffset + 1];
// member0Data[2] = bytes[initialOffset + 2];
// member0Data[3] = bytes[initialOffset + 3];
// member0Data[4] = bytes[initialOffset + 4];
// member0Data[5] = bytes[initialOffset + 5];
// member0Data[6] = bytes[initialOffset + 6];
// member0Data[7] = bytes[initialOffset + 7];
//
// target = member0Data;
//
// byte[] member1Data = new byte[6];
// member1Data[0] = bytes[initialOffset + 8];
// member1Data[1] = bytes[initialOffset + 9];
// member1Data[2] = bytes[initialOffset + 10];
// member1Data[3] = bytes[initialOffset + 11];
// member1Data[4] = bytes[initialOffset + 12];
// member1Data[5] = bytes[initialOffset + 13];
//
// site = member1Data;
//
// byte[] member2Data = new byte[1];
// member2Data[0] = bytes[initialOffset + 14];
//
// device = new Bool8(member2Data);
}
public StateSub(Object padding, byte[] target, byte[] site, Bool8 device) {
this.target = target;
this.site = site;
this.device = device;
}
public byte[] getTarget() {
return target;
}
public byte[] getSite() {
return site;
}
public Bool8 getDevice() {
return device;
}
public void printMessageData() {
Logger.getLogger(ConnectKey.class.getName()).log(Level.FINE, "Byte Array Print not currently supported");
device.printValue("device"); // Field: device - Structle::Bool byte offset: 15
}
public static void loadMessageDataWithPayloadAtOffset(byte[] messageData, int offset, byte[] target, byte[] site, Bool8 device) {
byte[] memberData; // = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
messageData[(offset + i)] = memberData[i];
}
offset += memberData.length;
}
public static void loadMessageDataWithPayloadAtDefaultOffset(byte[] messageData, byte[] target, byte[] site, Bool8 device) {
int offset = PAYLOAD_OFFSET;
loadMessageDataWithPayloadAtOffset(messageData, offset, target, site, device);
}
public byte[] getBytes() {
int offset = 0;
byte[] bytes = new byte[getPayloadSize()];
byte[] memberData;
// = name.getBytes();
memberData = target;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = site;
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
// = name.getBytes();
memberData = device.getBytes();
for (int i = 0; i < (memberData.length); i++) {
bytes[(offset + i)] = memberData[i];
}
offset += memberData.length;
return bytes;
}
public static int getPayloadSize() {
return PAYLOAD_SIZE;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy