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:
Fri Oct 30 00:38:40 2015 +0000
Revision:
4:a0f1fba6c2fb
Parent:
0:837e6c48e90d
Child:
6:5f31ddc17239
bug fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yangcq88517 0:837e6c48e90d 1 #include "Tx64TransmitOptions.h"
yangcq88517 0:837e6c48e90d 2
yangcq88517 0:837e6c48e90d 3 Tx64TransmitOptions::Tx64TransmitOptions() { }
yangcq88517 0:837e6c48e90d 4
yangcq88517 0:837e6c48e90d 5 Tx64TransmitOptions::Tx64TransmitOptions(char value)
yangcq88517 0:837e6c48e90d 6 : OptionsBase(value)
yangcq88517 0:837e6c48e90d 7 { }
yangcq88517 0:837e6c48e90d 8
yangcq88517 0:837e6c48e90d 9 Tx64TransmitOptions::Tx64TransmitOptions(bool disable_retries_and_route_repair, bool donot_repeat_packet, bool send_packet_with_broadcast_PanID, bool invoke_traceroute, bool purge_packet_if_delayed_due_to_duty_cycle)
yangcq88517 0:837e6c48e90d 10 {
yangcq88517 0:837e6c48e90d 11 value = 0x00;
yangcq88517 0:837e6c48e90d 12 if (disable_retries_and_route_repair)
yangcq88517 0:837e6c48e90d 13 value |= 0x01;
yangcq88517 0:837e6c48e90d 14 if (donot_repeat_packet)
yangcq88517 0:837e6c48e90d 15 value |= 0x02;
yangcq88517 0:837e6c48e90d 16 if (send_packet_with_broadcast_PanID)
yangcq88517 0:837e6c48e90d 17 value |= 0x04;
yangcq88517 0:837e6c48e90d 18 if (invoke_traceroute)
yangcq88517 0:837e6c48e90d 19 value |= 0x08;
yangcq88517 0:837e6c48e90d 20 if (purge_packet_if_delayed_due_to_duty_cycle)
yangcq88517 0:837e6c48e90d 21 value |= 0x10;
yangcq88517 0:837e6c48e90d 22 }
yangcq88517 0:837e6c48e90d 23
yangcq88517 4:a0f1fba6c2fb 24 Tx64TransmitOptions * Tx64TransmitOptions::DonotRepeatPacket = new Tx64TransmitOptions(0x02);
yangcq88517 0:837e6c48e90d 25
yangcq88517 4:a0f1fba6c2fb 26 Tx64TransmitOptions * Tx64TransmitOptions::SendPacketWithBroadcastPanID = new Tx64TransmitOptions(0x04);
yangcq88517 0:837e6c48e90d 27
yangcq88517 4:a0f1fba6c2fb 28 Tx64TransmitOptions * Tx64TransmitOptions::InvokeTraceroute = new Tx64TransmitOptions(0x08);
yangcq88517 0:837e6c48e90d 29
yangcq88517 4:a0f1fba6c2fb 30 Tx64TransmitOptions * Tx64TransmitOptions::PurgePacketWhenDelayed = new Tx64TransmitOptions(0x10);
yangcq88517 0:837e6c48e90d 31
yangcq88517 0:837e6c48e90d 32 bool Tx64TransmitOptions::getDonotRepeatPacket()
yangcq88517 0:837e6c48e90d 33 {
yangcq88517 0:837e6c48e90d 34 if ((value & 0x02) == 0x02)
yangcq88517 0:837e6c48e90d 35 return true;
yangcq88517 0:837e6c48e90d 36 else return false;
yangcq88517 0:837e6c48e90d 37 }
yangcq88517 0:837e6c48e90d 38
yangcq88517 0:837e6c48e90d 39 void Tx64TransmitOptions::setDonotRepeatPacket(bool status)
yangcq88517 0:837e6c48e90d 40 {
yangcq88517 0:837e6c48e90d 41 if (status)
yangcq88517 0:837e6c48e90d 42 value |= 0x02;
yangcq88517 0:837e6c48e90d 43 else
yangcq88517 0:837e6c48e90d 44 value &= 0xFD;
yangcq88517 0:837e6c48e90d 45 }
yangcq88517 0:837e6c48e90d 46
yangcq88517 0:837e6c48e90d 47 bool Tx64TransmitOptions::getSendPacketWithBroadcastPanID()
yangcq88517 0:837e6c48e90d 48 {
yangcq88517 0:837e6c48e90d 49 if ((value & 0x04) == 0x04)
yangcq88517 0:837e6c48e90d 50 return true;
yangcq88517 0:837e6c48e90d 51 else return false;
yangcq88517 0:837e6c48e90d 52 }
yangcq88517 0:837e6c48e90d 53
yangcq88517 0:837e6c48e90d 54 void Tx64TransmitOptions::setSendPacketWithBroadcastPanID(bool status)
yangcq88517 0:837e6c48e90d 55 {
yangcq88517 0:837e6c48e90d 56 if (status)
yangcq88517 0:837e6c48e90d 57 value |= 0x04;
yangcq88517 0:837e6c48e90d 58 else
yangcq88517 0:837e6c48e90d 59 value &= 0xFB;
yangcq88517 0:837e6c48e90d 60 }
yangcq88517 0:837e6c48e90d 61
yangcq88517 0:837e6c48e90d 62 bool Tx64TransmitOptions::getInvokeTraceroute()
yangcq88517 0:837e6c48e90d 63 {
yangcq88517 0:837e6c48e90d 64 if ((value & 0x08) == 0x08)
yangcq88517 0:837e6c48e90d 65 return true;
yangcq88517 0:837e6c48e90d 66 else return false;
yangcq88517 0:837e6c48e90d 67 }
yangcq88517 0:837e6c48e90d 68
yangcq88517 0:837e6c48e90d 69 void Tx64TransmitOptions::setInvokeTraceroute(bool status)
yangcq88517 0:837e6c48e90d 70 {
yangcq88517 0:837e6c48e90d 71 if (status)
yangcq88517 0:837e6c48e90d 72 value |= 0x08;
yangcq88517 0:837e6c48e90d 73 else
yangcq88517 0:837e6c48e90d 74 value &= 0xF7;
yangcq88517 0:837e6c48e90d 75 }
yangcq88517 0:837e6c48e90d 76
yangcq88517 0:837e6c48e90d 77 bool Tx64TransmitOptions::getPurgePacketWhenDelayed()
yangcq88517 0:837e6c48e90d 78 {
yangcq88517 0:837e6c48e90d 79 if ((value & 0x10) == 0x10)
yangcq88517 0:837e6c48e90d 80 return true;
yangcq88517 0:837e6c48e90d 81 else return false;
yangcq88517 0:837e6c48e90d 82 }
yangcq88517 0:837e6c48e90d 83
yangcq88517 0:837e6c48e90d 84 void Tx64TransmitOptions::setPurgePacketWhenDelayed(bool status)
yangcq88517 0:837e6c48e90d 85 {
yangcq88517 0:837e6c48e90d 86 if (status)
yangcq88517 0:837e6c48e90d 87 value |= 0x10;
yangcq88517 0:837e6c48e90d 88 else
yangcq88517 0:837e6c48e90d 89 value &= 0xEF;
yangcq88517 0:837e6c48e90d 90 }