[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r606 - /projects/zb4osgi/trunk/zigbee.zcl.library/src/main/java/it/cnr/isti/zigbee/zcl/library/impl/global/write/WriteAttributeCommand.java
scm-notify at zb4osgi.aaloa.org
scm-notify at zb4osgi.aaloa.org
Sat Jan 26 15:11:44 CET 2013
Author: stefano.lenzi
Date: Sat Jan 26 15:11:44 2013
New Revision: 606
Log:
Reverting changes after the merging ( refs #174 )
Modified:
projects/zb4osgi/trunk/zigbee.zcl.library/src/main/java/it/cnr/isti/zigbee/zcl/library/impl/global/write/WriteAttributeCommand.java
Modified: projects/zb4osgi/trunk/zigbee.zcl.library/src/main/java/it/cnr/isti/zigbee/zcl/library/impl/global/write/WriteAttributeCommand.java
==============================================================================
--- projects/zb4osgi/trunk/zigbee.zcl.library/src/main/java/it/cnr/isti/zigbee/zcl/library/impl/global/write/WriteAttributeCommand.java (original)
+++ projects/zb4osgi/trunk/zigbee.zcl.library/src/main/java/it/cnr/isti/zigbee/zcl/library/impl/global/write/WriteAttributeCommand.java Sat Jan 26 15:11:44 2013
@@ -52,14 +52,24 @@
int len = attributeRecord[i].getAttributeDataType().getLength();
if(len == -1){
//TODO Use a general method instead of assuming that variable length is applied only for String
- length = length + ((String) attributeRecord[i].getAttributeData()).length();
+ switch( attributeRecord[i].getAttributeDataType() ) {
+ case CharacterString : case OctectString :
+ length = length + ((String) attributeRecord[i].getAttributeData()).length() + 1;
+ break;
+ case LongOctectString : case LongCharacterString :
+ length = length + ((String) attributeRecord[i].getAttributeData()).length() + 2;
+ break;
+ default:
+ throw new IllegalArgumentException("Data type "+attributeRecord[i].getAttributeDataType()+" is not supported yet");
+ }
+
} else {
length = length + len;
}
- length = length + 2 + 1 + 1; // manlio +1 (a bit for string length field) //space for attribute id and attribute data type
+ length = length + 2 + 1; //space for attribute id and attribute data type
}
payload = new byte[length];
- ZBSerializer serializer = new DefaultSerializer(payload, 0);
+ ZBSerializer serializer = new DefaultSerializer(payload,0);
for (int i = 0; i < attributeRecord.length; i++) {
serializer.append_short( (short) attributeRecord[i].getAttributeId());
More information about the Commit
mailing list