diff --git a/development/src/main/java/gurux/dlms/objects/GXDLMSProfileGeneric.java b/development/src/main/java/gurux/dlms/objects/GXDLMSProfileGeneric.java index 25fd51c4..5a2a9270 100644 --- a/development/src/main/java/gurux/dlms/objects/GXDLMSProfileGeneric.java +++ b/development/src/main/java/gurux/dlms/objects/GXDLMSProfileGeneric.java @@ -542,7 +542,7 @@ final byte[] getProfileGenericData(final int selector, .getValue(); for (Object row : getBuffer()) { java.util.Date tm; - Object tmp = ((Object[]) row)[0]; + Object tmp = ((Object[]) row)[this.getSortObjectDataIndex()]; if (tmp instanceof GXDateTime) { tm = ((GXDateTime) tmp).getValue(); } else { @@ -697,8 +697,18 @@ public final void setValue(final GXDLMSSettings settings, obj = gurux.dlms.GXDLMSClient.createObject(type); obj.setLogicalName(ln); } - addCaptureObject(obj, ((Number) tmp[2]).intValue(), - ((Number) tmp[3]).intValue()); + int attributeIndex = ((Number) tmp[2]).intValue(); + int dataIndex = ((Number) tmp[3]).intValue(); + if (tmp[2] instanceof Byte) { + byte bValue = (Byte)tmp[2]; + attributeIndex = bValue & 0xFF; + } + if (tmp[3] instanceof Byte) { + byte bValue = (Byte)tmp[3]; + dataIndex = bValue & 0xFF; + } + + this.addCaptureObject(obj, attributeIndex, dataIndex); } } } else if (e.getIndex() == 4) {