XBee API operation library for mbed

Committer:
yangcq88517
Date:
Wed Mar 30 20:44:56 2016 +0000
Revision:
9:6e4ef3c302b4
Parent:
8:4da2ac03e35e
Address.cpp static broadcast variable fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 8:4da2ac03e35e 1 #include "Address.h"
yangcq88517 8:4da2ac03e35e 2
yangcq88517 9:6e4ef3c302b4 3 Address * Address::BROADCAST_ZIGBEE = new Address(0x00000000, 0x0000FFFF, 0xFFFE);
yangcq88517 9:6e4ef3c302b4 4 Address * Address::BROADCAST_XBEE = new Address(0x00000000, 0x00000000, 0xFFFF);
yangcq88517 8:4da2ac03e35e 5
yangcq88517 8:4da2ac03e35e 6 Address::Address() {}
yangcq88517 8:4da2ac03e35e 7
yangcq88517 8:4da2ac03e35e 8 Address::Address(const unsigned char * address64, const unsigned char * NET16)
yangcq88517 8:4da2ac03e35e 9 {
yangcq88517 8:4da2ac03e35e 10 if (address64 != NULL)
yangcq88517 8:4da2ac03e35e 11 memcpy(value,address64,8);
yangcq88517 8:4da2ac03e35e 12
yangcq88517 8:4da2ac03e35e 13 if (NET16 != NULL) {
yangcq88517 8:4da2ac03e35e 14 value[8] = NET16[0];
yangcq88517 8:4da2ac03e35e 15 value[9] = NET16[1];
yangcq88517 8:4da2ac03e35e 16 }
yangcq88517 8:4da2ac03e35e 17 }
yangcq88517 8:4da2ac03e35e 18
yangcq88517 8:4da2ac03e35e 19 Address::Address(const unsigned char * addr)
yangcq88517 8:4da2ac03e35e 20 {
yangcq88517 8:4da2ac03e35e 21 if (addr != NULL)
yangcq88517 8:4da2ac03e35e 22 memcpy(value,addr,10);
yangcq88517 8:4da2ac03e35e 23 }
yangcq88517 8:4da2ac03e35e 24
yangcq88517 8:4da2ac03e35e 25 Address::Address(long serialNumberHigh, long serialNumberLow, int networkAddress)
yangcq88517 8:4da2ac03e35e 26 {
yangcq88517 8:4da2ac03e35e 27 setSerialNumberHigh(serialNumberHigh);
yangcq88517 8:4da2ac03e35e 28 setSerialNumberLow(serialNumberLow);
yangcq88517 8:4da2ac03e35e 29 setNetworkAddress(networkAddress);
yangcq88517 8:4da2ac03e35e 30 }
yangcq88517 8:4da2ac03e35e 31
yangcq88517 8:4da2ac03e35e 32 unsigned long Address::getSerialNumberHigh()
yangcq88517 8:4da2ac03e35e 33 {
yangcq88517 8:4da2ac03e35e 34 return (value[0] << 24) | (value[1] << 16) | (value[2] << 8) | value[3];
yangcq88517 8:4da2ac03e35e 35 }
yangcq88517 8:4da2ac03e35e 36
yangcq88517 8:4da2ac03e35e 37 unsigned long Address::getSerialNumberLow()
yangcq88517 8:4da2ac03e35e 38 {
yangcq88517 8:4da2ac03e35e 39 return (value[4] << 24) | (value[5] << 16) | (value[6] << 8) | value[7];
yangcq88517 8:4da2ac03e35e 40 }
yangcq88517 8:4da2ac03e35e 41
yangcq88517 8:4da2ac03e35e 42 unsigned int Address::getNetworkAddress()
yangcq88517 8:4da2ac03e35e 43 {
yangcq88517 8:4da2ac03e35e 44 return (value[8] << 8) | value[9];
yangcq88517 8:4da2ac03e35e 45 }
yangcq88517 8:4da2ac03e35e 46
yangcq88517 8:4da2ac03e35e 47 void Address::setSerialNumberHigh(long serialNumberHigh)
yangcq88517 8:4da2ac03e35e 48 {
yangcq88517 8:4da2ac03e35e 49 value[0] = serialNumberHigh >> 24;
yangcq88517 8:4da2ac03e35e 50 value[1] = serialNumberHigh >> 16;
yangcq88517 8:4da2ac03e35e 51 value[2] = serialNumberHigh >> 8;
yangcq88517 8:4da2ac03e35e 52 value[3] = serialNumberHigh;
yangcq88517 8:4da2ac03e35e 53 }
yangcq88517 8:4da2ac03e35e 54
yangcq88517 8:4da2ac03e35e 55 void Address::setSerialNumberLow(long serialNumberLow)
yangcq88517 8:4da2ac03e35e 56 {
yangcq88517 8:4da2ac03e35e 57 value[4] = serialNumberLow >> 24;
yangcq88517 8:4da2ac03e35e 58 value[5] = serialNumberLow >> 16;
yangcq88517 8:4da2ac03e35e 59 value[6] = serialNumberLow >> 8;
yangcq88517 8:4da2ac03e35e 60 value[7] = serialNumberLow;
yangcq88517 8:4da2ac03e35e 61 }
yangcq88517 8:4da2ac03e35e 62
yangcq88517 8:4da2ac03e35e 63 void Address::setNetworkAddress(int networkAddress)
yangcq88517 8:4da2ac03e35e 64 {
yangcq88517 8:4da2ac03e35e 65 value[8] = networkAddress >> 8;
yangcq88517 8:4da2ac03e35e 66 value[9] = networkAddress;
yangcq88517 8:4da2ac03e35e 67 }
yangcq88517 8:4da2ac03e35e 68
yangcq88517 8:4da2ac03e35e 69 const unsigned char * Address::getAddressValue()
yangcq88517 8:4da2ac03e35e 70 {
yangcq88517 8:4da2ac03e35e 71 return value;
yangcq88517 8:4da2ac03e35e 72 }
yangcq88517 8:4da2ac03e35e 73
yangcq88517 8:4da2ac03e35e 74 bool operator ==(const Address &a,const Address &b)
yangcq88517 8:4da2ac03e35e 75 {
yangcq88517 8:4da2ac03e35e 76 for (uint8_t i = 0; i < 8; i++)
yangcq88517 8:4da2ac03e35e 77 if (a.value[i] != b.value[i])
yangcq88517 8:4da2ac03e35e 78 return false;
yangcq88517 8:4da2ac03e35e 79 return true;
yangcq88517 8:4da2ac03e35e 80 }
yangcq88517 8:4da2ac03e35e 81
yangcq88517 8:4da2ac03e35e 82 bool operator !=(const Address &a,const Address &b)
yangcq88517 8:4da2ac03e35e 83 {
yangcq88517 8:4da2ac03e35e 84 return !(a==b);
yangcq88517 8:4da2ac03e35e 85 }