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.
Diff: Helper/IOSampleDecoder.cpp
- Revision:
- 5:945b89c71902
- Parent:
- 4:a0f1fba6c2fb
- Child:
- 6:5f31ddc17239
--- 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; + } } }