XBee and XBee-PRO ZigBee RF modules provide cost-effective wireless connectivity to electronic devices. They are interoperable with other ZigBee PRO feature set devices, including devices from other vendors.

Dependencies:   BufferedArray

Dependents:   MBEDminiproject

Files at this revision

API Documentation at this revision

Comitter:
yangcq88517
Date:
Thu Nov 05 23:03:42 2015 +0000
Parent:
4:a0f1fba6c2fb
Child:
6:5f31ddc17239
Commit message:
bug fix for io sample

Changed in this revision

Helper/IOSampleDecoder.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Helper/IOSampleDecoder.cpp	Fri Oct 30 00:38:40 2015 +0000
+++ b/Helper/IOSampleDecoder.cpp	Thu Nov 05 23:03:42 2015 +0000
@@ -17,7 +17,7 @@
     int index = offset + 1;
 
     samples = new IOSamples[numofsamples];
-    
+
     int digitMask = ((IOSamplePayload[index] & 0x01) << 8) | IOSamplePayload[index + 1];
     int analogMask = IOSamplePayload[index] & 0xFE;
 
@@ -52,23 +52,34 @@
         }
 
         if (analogMask != 0) {
-            if ((analogMask & 0x02) == 0x02)
-                (*analog)[XBeePins::P20_AD0_DIO0] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x02) == 0x02) {
+                (*analog)[XBeePins::P20_AD0_DIO0] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
+            if ((analogMask & 0x04) == 0x04) {
+                (*analog)[XBeePins::P19_AD1_DIO1] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x04) == 0x04)
-                (*analog)[XBeePins::P19_AD1_DIO1] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
-
-            if ((analogMask & 0x08) == 0x08)
-                (*analog)[XBeePins::P18_AD2_DIO2] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x08) == 0x08) {
+                (*analog)[XBeePins::P18_AD2_DIO2] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x10) == 0x10)
-                (*analog)[XBeePins::P17_AD3_DIO3] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x10) == 0x10) {
+                (*analog)[XBeePins::P17_AD3_DIO3] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x20) == 0x20)
-                (*analog)[XBeePins::P11_AD4_DIO4] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x20) == 0x20) {
+                (*analog)[XBeePins::P11_AD4_DIO4] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x40) == 0x40)
-                (*analog)[XBeePins::P15_ASSOCIATE_AD5_DIO5] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x40) == 0x40) {
+                (*analog)[XBeePins::P15_ASSOCIATE_AD5_DIO5] = IOSamplePayload[index] << 8 | IOSamplePayload[index+1];
+                index+=2;
+            }
         }
     }
 
@@ -127,20 +138,30 @@
             index += 2;// 2 [digital sample]
         }
         if (analogMask != 0x00) { //analog mask
-            if ((analogMask & 0x01) == 0x01)
-                (*analog)[ZigBeePins::P20_AD0_DIO0_COMMISSIONONG_BUTTON] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x01) == 0x01){
+                (*analog)[ZigBeePins::P20_AD0_DIO0_COMMISSIONONG_BUTTON] = (IOSamplePayload[index] << 8) | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x02) == 0x02)
-                (*analog)[ZigBeePins::P19_AD1_DIO1] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x02) == 0x02){
+                (*analog)[ZigBeePins::P19_AD1_DIO1] = (IOSamplePayload[index] << 8) | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x04) == 0x04)
-                (*analog)[ZigBeePins::P18_AD2_DIO2] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x04) == 0x04){
+                (*analog)[ZigBeePins::P18_AD2_DIO2] = (IOSamplePayload[index] << 8) | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x08) == 0x08)
-                (*analog)[ZigBeePins::P17_AD3_DIO3] = (IOSamplePayload[index++] << 8) | IOSamplePayload[index++];
+            if ((analogMask & 0x08) == 0x08){
+                (*analog)[ZigBeePins::P17_AD3_DIO3] = (IOSamplePayload[index] << 8) | IOSamplePayload[index+1];
+                index+=2;
+            }
 
-            if ((analogMask & 0x80) == 0x80)
-                (samples + i)->setSupplyVoltage((IOSamplePayload[index++] << 8) | IOSamplePayload[index++]);
+            if ((analogMask & 0x80) == 0x80){
+                (samples + i)->setSupplyVoltage((IOSamplePayload[index] << 8) | IOSamplePayload[index+1]);
+                index+=2;
+            }
         }
     }