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

Committer:
yangcq88517
Date:
Sat Nov 14 16:42:36 2015 +0000
Revision:
6:5f31ddc17239
Parent:
0:837e6c48e90d
change to unsigned char array

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 0:837e6c48e90d 1 #include "NodeIdentificationIndicator.h"
yangcq88517 0:837e6c48e90d 2
yangcq88517 0:837e6c48e90d 3 NodeIdentificationIndicator::NodeIdentificationIndicator(APIFrame * frame)
yangcq88517 0:837e6c48e90d 4 : RxBase(frame)
yangcq88517 0:837e6c48e90d 5 {
yangcq88517 0:837e6c48e90d 6 offset = getPosition() - 8;
yangcq88517 0:837e6c48e90d 7 }
yangcq88517 0:837e6c48e90d 8
yangcq88517 0:837e6c48e90d 9 int NodeIdentificationIndicator::getReceiveStatus()
yangcq88517 0:837e6c48e90d 10 {
yangcq88517 0:837e6c48e90d 11 return data[11];
yangcq88517 0:837e6c48e90d 12 }
yangcq88517 0:837e6c48e90d 13
yangcq88517 0:837e6c48e90d 14 Address NodeIdentificationIndicator::getRemoteDevice()
yangcq88517 0:837e6c48e90d 15 {
yangcq88517 0:837e6c48e90d 16 return Address(data + 14, data + 8);
yangcq88517 0:837e6c48e90d 17 }
yangcq88517 0:837e6c48e90d 18
yangcq88517 0:837e6c48e90d 19 Address NodeIdentificationIndicator::getSenderDevice()
yangcq88517 0:837e6c48e90d 20 {
yangcq88517 0:837e6c48e90d 21 return Address(data + 1);
yangcq88517 0:837e6c48e90d 22 }
yangcq88517 0:837e6c48e90d 23
yangcq88517 6:5f31ddc17239 24 unsigned char * NodeIdentificationIndicator::getNIString()
yangcq88517 0:837e6c48e90d 25 {
yangcq88517 0:837e6c48e90d 26 int length = getPosition() - 31;
yangcq88517 0:837e6c48e90d 27
yangcq88517 0:837e6c48e90d 28 if (length <= 0)
yangcq88517 0:837e6c48e90d 29 return NULL;
yangcq88517 0:837e6c48e90d 30
yangcq88517 0:837e6c48e90d 31 return data + 22;
yangcq88517 0:837e6c48e90d 32 }
yangcq88517 0:837e6c48e90d 33
yangcq88517 0:837e6c48e90d 34 int NodeIdentificationIndicator::getParentNetworkAddress()
yangcq88517 0:837e6c48e90d 35 {
yangcq88517 0:837e6c48e90d 36 return (data[offset] << 8) | data[offset + 1];
yangcq88517 0:837e6c48e90d 37 }
yangcq88517 0:837e6c48e90d 38
yangcq88517 0:837e6c48e90d 39 int NodeIdentificationIndicator::getDeviceType()
yangcq88517 0:837e6c48e90d 40 {
yangcq88517 0:837e6c48e90d 41 return data[offset + 2];
yangcq88517 0:837e6c48e90d 42 }
yangcq88517 0:837e6c48e90d 43
yangcq88517 0:837e6c48e90d 44 int NodeIdentificationIndicator::getSourceEvent()
yangcq88517 0:837e6c48e90d 45 {
yangcq88517 0:837e6c48e90d 46 return data[offset + 3];
yangcq88517 0:837e6c48e90d 47 }
yangcq88517 0:837e6c48e90d 48
yangcq88517 0:837e6c48e90d 49 int NodeIdentificationIndicator::getDigiProfileID()
yangcq88517 0:837e6c48e90d 50 {
yangcq88517 0:837e6c48e90d 51 return (data[offset + 4] << 8) | data[offset + 5];
yangcq88517 0:837e6c48e90d 52 }
yangcq88517 0:837e6c48e90d 53
yangcq88517 0:837e6c48e90d 54 int NodeIdentificationIndicator::getManufacturerID()
yangcq88517 0:837e6c48e90d 55 {
yangcq88517 0:837e6c48e90d 56 return (data[offset + 6] << 8) | data[offset + 7];
yangcq88517 0:837e6c48e90d 57 }
yangcq88517 0:837e6c48e90d 58
yangcq88517 0:837e6c48e90d 59 bool NodeIdentificationIndicator::convert(APIFrame * frame)
yangcq88517 0:837e6c48e90d 60 {
yangcq88517 0:837e6c48e90d 61 if (frame == NULL)
yangcq88517 0:837e6c48e90d 62 return false;
yangcq88517 0:837e6c48e90d 63
yangcq88517 0:837e6c48e90d 64 if (frame->getFrameType() != APIFrame::Node_Identification_Indicator)
yangcq88517 0:837e6c48e90d 65 return false;
yangcq88517 0:837e6c48e90d 66
yangcq88517 0:837e6c48e90d 67 return APIFrame::convert(frame);
yangcq88517 0:837e6c48e90d 68 }