<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>XBee-Arduino: XBee.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
<h1>XBee.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
<a name="l00020"></a>00020 <span class="preprocessor">#ifndef XBee_h</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define XBee_h</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span>
<a name="l00023"></a>00023 <span class="preprocessor">#if defined(ARDUINO) &amp;&amp; ARDUINO &gt;= 100</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">      #include "Arduino.h"</span>
<a name="l00025"></a>00025 <span class="preprocessor">#else</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">      #include "WProgram.h"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#endif</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00029"></a>00029 <span class="preprocessor">#include &lt;inttypes.h&gt;</span>
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="preprocessor">#define SERIES_1</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define SERIES_2</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span>
<a name="l00034"></a>00034 <span class="comment">// set to ATAP value of XBee. AP=2 is recommended</span>
<a name="l00035"></a>00035 <span class="preprocessor">#define ATAP 2</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span>
<a name="l00037"></a>00037 <span class="preprocessor">#define START_BYTE 0x7e</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define ESCAPE 0x7d</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#define XON 0x11</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#define XOFF 0x13</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span>
<a name="l00042"></a>00042 <span class="comment">// This value determines the size of the byte array for receiving RX packets</span>
<a name="l00043"></a>00043 <span class="comment">// Most users won't be dealing with packets this large so you can adjust this</span>
<a name="l00044"></a>00044 <span class="comment">// value to reduce memory consumption. But, remember that</span>
<a name="l00045"></a>00045 <span class="comment">// if a RX packet exceeds this size, it cannot be parsed!</span>
<a name="l00046"></a>00046 
<a name="l00047"></a>00047 <span class="comment">// This value is determined by the largest packet size (100 byte payload + 64-bit address + option byte and rssi byte) of a series 1 radio</span>
<a name="l00048"></a>00048 <span class="preprocessor">#define MAX_FRAME_DATA_SIZE 110</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span>
<a name="l00050"></a>00050 <span class="preprocessor">#define BROADCAST_ADDRESS 0xffff</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define ZB_BROADCAST_ADDRESS 0xfffe</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00053"></a>00053 <span class="comment">// the non-variable length of the frame data (not including frame id or api id or variable data size (e.g. payload, at command set value)</span>
<a name="l00054"></a>00054 <span class="preprocessor">#define ZB_TX_API_LENGTH 12</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define TX_16_API_LENGTH 3</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#define TX_64_API_LENGTH 9</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define AT_COMMAND_API_LENGTH 2</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#define REMOTE_AT_COMMAND_API_LENGTH 13</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="comment">// start/length(2)/api/frameid/checksum bytes</span>
<a name="l00060"></a>00060 <span class="preprocessor">#define PACKET_OVERHEAD_LENGTH 6</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="comment">// api is always the third byte in packet</span>
<a name="l00062"></a>00062 <span class="preprocessor">#define API_ID_INDEX 3</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span>
<a name="l00064"></a>00064 <span class="comment">// frame position of rssi byte</span>
<a name="l00065"></a>00065 <span class="preprocessor">#define RX_16_RSSI_OFFSET 2</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#define RX_64_RSSI_OFFSET 8</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span>
<a name="l00068"></a>00068 <span class="preprocessor">#define DEFAULT_FRAME_ID 1</span>
<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#define NO_RESPONSE_FRAME_ID 0</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span>
<a name="l00071"></a>00071 <span class="comment">// TODO put in tx16 class</span>
<a name="l00072"></a>00072 <span class="preprocessor">#define ACK_OPTION 0</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor">#define DISABLE_ACK_OPTION 1</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">#define BROADCAST_OPTION 4</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span>
<a name="l00076"></a>00076 <span class="comment">// RX options</span>
<a name="l00077"></a>00077 <span class="preprocessor">#define ZB_PACKET_ACKNOWLEDGED 0x01</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#define ZB_BROADCAST_PACKET 0x02</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span>
<a name="l00080"></a>00080 <span class="comment">// not everything is implemented!</span>
<a name="l00084"></a>00084 <span class="comment"></span><span class="preprocessor">#define TX_64_REQUEST 0x0</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define TX_16_REQUEST 0x1</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define AT_COMMAND_REQUEST 0x08</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#define AT_COMMAND_QUEUE_REQUEST 0x09</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor">#define REMOTE_AT_REQUEST 0x17</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">#define ZB_TX_REQUEST 0x10</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#define ZB_EXPLICIT_TX_REQUEST 0x11</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span><span class="preprocessor">#define RX_64_RESPONSE 0x80</span>
<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#define RX_16_RESPONSE 0x81</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#define RX_64_IO_RESPONSE 0x82</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor">#define RX_16_IO_RESPONSE 0x83</span>
<a name="l00095"></a>00095 <span class="preprocessor"></span><span class="preprocessor">#define AT_RESPONSE 0x88</span>
<a name="l00096"></a>00096 <span class="preprocessor"></span><span class="preprocessor">#define TX_STATUS_RESPONSE 0x89</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span><span class="preprocessor">#define MODEM_STATUS_RESPONSE 0x8a</span>
<a name="l00098"></a>00098 <span class="preprocessor"></span><span class="preprocessor">#define ZB_RX_RESPONSE 0x90</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#define ZB_EXPLICIT_RX_RESPONSE 0x91</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor">#define ZB_TX_STATUS_RESPONSE 0x8b</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#define ZB_IO_SAMPLE_RESPONSE 0x92</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">#define ZB_IO_NODE_IDENTIFIER_RESPONSE 0x95</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span><span class="preprocessor">#define AT_COMMAND_RESPONSE 0x88</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span><span class="preprocessor">#define REMOTE_AT_COMMAND_RESPONSE 0x97</span>
<a name="l00105"></a>00105 <span class="preprocessor"></span>
<a name="l00106"></a>00106 
<a name="l00110"></a>00110 <span class="preprocessor">#define     SUCCESS 0x0</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span><span class="preprocessor">#define CCA_FAILURE 0x2</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor">#define INVALID_DESTINATION_ENDPOINT_SUCCESS 0x15</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">#define     NETWORK_ACK_FAILURE 0x21</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor">#define NOT_JOINED_TO_NETWORK 0x22</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span><span class="preprocessor">#define     SELF_ADDRESSED 0x23</span>
<a name="l00116"></a>00116 <span class="preprocessor"></span><span class="preprocessor">#define ADDRESS_NOT_FOUND 0x24</span>
<a name="l00117"></a>00117 <span class="preprocessor"></span><span class="preprocessor">#define ROUTE_NOT_FOUND 0x25</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="preprocessor">#define PAYLOAD_TOO_LARGE 0x74</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span>
<a name="l00120"></a>00120 <span class="comment">// modem status</span>
<a name="l00121"></a>00121 <span class="preprocessor">#define HARDWARE_RESET 0</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#define WATCHDOG_TIMER_RESET 1</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">#define ASSOCIATED 2</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#define DISASSOCIATED 3</span>
<a name="l00125"></a>00125 <span class="preprocessor"></span><span class="preprocessor">#define SYNCHRONIZATION_LOST 4</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#define COORDINATOR_REALIGNMENT 5</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">#define COORDINATOR_STARTED 6</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span>
<a name="l00129"></a>00129 <span class="preprocessor">#define ZB_BROADCAST_RADIUS_MAX_HOPS 0</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span>
<a name="l00131"></a>00131 <span class="preprocessor">#define ZB_TX_UNICAST 0</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">#define ZB_TX_BROADCAST 8</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span>
<a name="l00134"></a>00134 <span class="preprocessor">#define AT_OK 0</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#define AT_ERROR  1</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#define AT_INVALID_COMMAND 2</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">#define AT_INVALID_PARAMETER 3</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">#define AT_NO_RESPONSE 4</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140 <span class="preprocessor">#define NO_ERROR 0</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#define CHECKSUM_FAILURE 1</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor">#define PACKET_EXCEEDS_BYTE_ARRAY_LENGTH 2</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span><span class="preprocessor">#define UNEXPECTED_START_BYTE 3</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span>
<a name="l00151"></a><a class="code" href="class_x_bee_response.html">00151</a> <span class="keyword">class </span><a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> {
<a name="l00152"></a>00152 <span class="keyword">public</span>:
<a name="l00153"></a>00153       <span class="comment">//static const int MODEM_STATUS = 0x8a;</span>
<a name="l00157"></a>00157 <span class="comment"></span>      <a class="code" href="class_x_bee_response.html#03a6ea7651a40062c22ca0a37fbf512f" title="Default constructor.">XBeeResponse</a>();
<a name="l00161"></a>00161       uint8_t <a class="code" href="class_x_bee_response.html#4a9677e3b39054119fa278d1ad52130a" title="Returns Api Id of the response.">getApiId</a>();
<a name="l00162"></a>00162       <span class="keywordtype">void</span> setApiId(uint8_t apiId);
<a name="l00166"></a>00166       uint8_t <a class="code" href="class_x_bee_response.html#ae9f85f70cbcb92cfcc278295a947952" title="Returns the MSB length of the packet.">getMsbLength</a>();
<a name="l00167"></a>00167       <span class="keywordtype">void</span> setMsbLength(uint8_t msbLength);
<a name="l00171"></a>00171       uint8_t <a class="code" href="class_x_bee_response.html#cb1b40edafa22461776b75bd5d7caadf" title="Returns the LSB length of the packet.">getLsbLength</a>();
<a name="l00172"></a>00172       <span class="keywordtype">void</span> setLsbLength(uint8_t lsbLength);
<a name="l00176"></a>00176       uint8_t <a class="code" href="class_x_bee_response.html#a8f34253bb77196366ea8ac9bc318734" title="Returns the packet checksum.">getChecksum</a>();
<a name="l00177"></a>00177       <span class="keywordtype">void</span> setChecksum(uint8_t checksum);
<a name="l00182"></a>00182       uint8_t <a class="code" href="class_x_bee_response.html#6205be340c4f0397a68dadbdca36a091" title="Returns the length of the frame data: all bytes after the api id, and prior to the...">getFrameDataLength</a>();
<a name="l00183"></a>00183       <span class="keywordtype">void</span> setFrameData(uint8_t* frameDataPtr);
<a name="l00192"></a>00192       uint8_t* <a class="code" href="class_x_bee_response.html#d958f0b5200138545bdd762111299a94" title="Returns the buffer that contains the response.">getFrameData</a>();
<a name="l00193"></a>00193 
<a name="l00194"></a>00194       <span class="keywordtype">void</span> setFrameLength(uint8_t frameLength);
<a name="l00195"></a>00195       <span class="comment">// to support future 65535 byte packets I guess</span>
<a name="l00199"></a>00199 <span class="comment"></span>      uint16_t <a class="code" href="class_x_bee_response.html#26a7c8baad9cc0322a38db997685d889" title="Returns the length of the packet.">getPacketLength</a>();
<a name="l00203"></a>00203       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#a08a73f576fc7ce2f7fa154342c01fba" title="Resets the response to default values.">reset</a>();
<a name="l00207"></a>00207       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#f084604e35462783ecd293ffc090d6dc" title="Initializes the response.">init</a>();
<a name="l00208"></a>00208 <span class="preprocessor">#ifdef SERIES_2</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>
<a name="l00213"></a>00213       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#1353f14b87b9cbdc1f8001fb8c5e9d35" title="Call with instance of ZBTxStatusResponse class only if getApiId() == ZB_TX_STATUS_RESPONSE...">getZBTxStatusResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00218"></a>00218       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#4c0edfc6be81349237956531a006d3ab" title="Call with instance of ZBRxResponse class only if getApiId() == ZB_RX_RESPONSE to...">getZBRxResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00223"></a>00223       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#0c1f8d66b1b276fd6d482c589d5cda3d" title="Call with instance of ZBRxIoSampleResponse class only if getApiId() == ZB_IO_SAMPLE_RESPONSE...">getZBRxIoSampleResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00224"></a>00224 <span class="preprocessor">#endif</span>
<a name="l00225"></a>00225 <span class="preprocessor"></span><span class="preprocessor">#ifdef SERIES_1</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span>
<a name="l00229"></a>00229       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#2fd9882d767d48e679a7595b780c2a2d" title="Call with instance of TxStatusResponse only if getApiId() == TX_STATUS_RESPONSE.">getTxStatusResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00233"></a>00233       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#b85f25eac3e57d665e2189d84cb5d2e3" title="Call with instance of Rx16Response only if getApiId() == RX_16_RESPONSE.">getRx16Response</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00237"></a>00237       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#72e5b863c14a9ec0a4f1cdeba5f24e58" title="Call with instance of Rx64Response only if getApiId() == RX_64_RESPONSE.">getRx64Response</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00241"></a>00241       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#e84d38e3759ebf8b23d256b207e5761d" title="Call with instance of Rx16IoSampleResponse only if getApiId() == RX_16_IO_RESPONSE...">getRx16IoSampleResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00245"></a>00245       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#e298de16ed0dce349154ae87f8b93d77" title="Call with instance of Rx64IoSampleResponse only if getApiId() == RX_64_IO_RESPONSE...">getRx64IoSampleResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00246"></a>00246 <span class="preprocessor">#endif</span>
<a name="l00247"></a>00247 <span class="preprocessor"></span>
<a name="l00250"></a>00250       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#5177bb036ccaa6ea30d73541a3e7d414" title="Call with instance of AtCommandResponse only if getApiId() == AT_COMMAND_RESPONSE...">getAtCommandResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;responses);
<a name="l00254"></a>00254       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#f359dab94c57006a0fb4b58986744c04" title="Call with instance of RemoteAtCommandResponse only if getApiId() == REMOTE_AT_COMMAND_RESPONSE...">getRemoteAtCommandResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00258"></a>00258       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_response.html#d93317521b52825c32b43d34a0f189d1" title="Call with instance of ModemStatusResponse only if getApiId() == MODEM_STATUS_RESPONSE...">getModemStatusResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00262"></a>00262       <span class="keywordtype">bool</span> <a class="code" href="class_x_bee_response.html#b60b2cc9e32fa88dee132f410cc8331d" title="Returns true if the response has been successfully parsed and is complete and ready...">isAvailable</a>();
<a name="l00263"></a>00263       <span class="keywordtype">void</span> setAvailable(<span class="keywordtype">bool</span> complete);
<a name="l00267"></a>00267       <span class="keywordtype">bool</span> <a class="code" href="class_x_bee_response.html#68cbc45004ff4314161b0fb1cc579b9b" title="Returns true if the response contains errors.">isError</a>();
<a name="l00272"></a>00272       uint8_t <a class="code" href="class_x_bee_response.html#2895438378d2738e3efe74b1c838170b" title="Returns an error code, or zero, if successful.">getErrorCode</a>();
<a name="l00273"></a>00273       <span class="keywordtype">void</span> setErrorCode(uint8_t errorCode);
<a name="l00274"></a>00274 <span class="keyword">protected</span>:
<a name="l00275"></a>00275       <span class="comment">// pointer to frameData</span>
<a name="l00276"></a>00276       uint8_t* _frameDataPtr;
<a name="l00277"></a>00277 <span class="keyword">private</span>:
<a name="l00278"></a>00278       <span class="keywordtype">void</span> setCommon(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;target);
<a name="l00279"></a>00279       uint8_t _apiId;
<a name="l00280"></a>00280       uint8_t _msbLength;
<a name="l00281"></a>00281       uint8_t _lsbLength;
<a name="l00282"></a>00282       uint8_t _checksum;
<a name="l00283"></a>00283       uint8_t _frameLength;
<a name="l00284"></a>00284       <span class="keywordtype">bool</span> _complete;
<a name="l00285"></a>00285       uint8_t _errorCode;
<a name="l00286"></a>00286 };
<a name="l00287"></a>00287 
<a name="l00288"></a>00288 <span class="keyword">class </span>XBeeAddress {
<a name="l00289"></a>00289 <span class="keyword">public</span>:
<a name="l00290"></a>00290       XBeeAddress();
<a name="l00291"></a>00291 };
<a name="l00292"></a>00292 
<a name="l00296"></a><a class="code" href="class_x_bee_address64.html">00296</a> <span class="keyword">class </span><a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> : <span class="keyword">public</span> XBeeAddress {
<a name="l00297"></a>00297 <span class="keyword">public</span>:
<a name="l00298"></a>00298       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>(uint32_t msb, uint32_t lsb);
<a name="l00299"></a>00299       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>();
<a name="l00300"></a>00300       uint32_t getMsb();
<a name="l00301"></a>00301       uint32_t getLsb();
<a name="l00302"></a>00302       <span class="keywordtype">void</span> setMsb(uint32_t msb);
<a name="l00303"></a>00303       <span class="keywordtype">void</span> setLsb(uint32_t lsb);
<a name="l00304"></a>00304 <span class="keyword">private</span>:
<a name="l00305"></a>00305       uint32_t _msb;
<a name="l00306"></a>00306       uint32_t _lsb;
<a name="l00307"></a>00307 };
<a name="l00308"></a>00308 
<a name="l00309"></a>00309 <span class="comment">//class XBeeAddress16 : public XBeeAddress {</span>
<a name="l00310"></a>00310 <span class="comment">//public:</span>
<a name="l00311"></a>00311 <span class="comment">//    XBeeAddress16(uint16_t addr);</span>
<a name="l00312"></a>00312 <span class="comment">//    XBeeAddress16();</span>
<a name="l00313"></a>00313 <span class="comment">//    uint16_t getAddress();</span>
<a name="l00314"></a>00314 <span class="comment">//    void setAddress(uint16_t addr);</span>
<a name="l00315"></a>00315 <span class="comment">//private:</span>
<a name="l00316"></a>00316 <span class="comment">//    uint16_t _addr;</span>
<a name="l00317"></a>00317 <span class="comment">//};</span>
<a name="l00318"></a>00318 
<a name="l00322"></a><a class="code" href="class_frame_id_response.html">00322</a> <span class="keyword">class </span><a class="code" href="class_frame_id_response.html" title="This class is extended by all Responses that include a frame id.">FrameIdResponse</a> : <span class="keyword">public</span> <a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> {
<a name="l00323"></a>00323 <span class="keyword">public</span>:
<a name="l00324"></a>00324       <a class="code" href="class_frame_id_response.html" title="This class is extended by all Responses that include a frame id.">FrameIdResponse</a>();
<a name="l00325"></a>00325       uint8_t getFrameId();
<a name="l00326"></a>00326 <span class="keyword">private</span>:
<a name="l00327"></a>00327       uint8_t _frameId;
<a name="l00328"></a>00328 };
<a name="l00329"></a>00329 
<a name="l00333"></a><a class="code" href="class_rx_data_response.html">00333</a> <span class="keyword">class </span><a class="code" href="class_rx_data_response.html" title="Common functionality for both Series 1 and 2 data RX data packets.">RxDataResponse</a> : <span class="keyword">public</span> <a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> {
<a name="l00334"></a>00334 <span class="keyword">public</span>:
<a name="l00335"></a>00335       <a class="code" href="class_rx_data_response.html" title="Common functionality for both Series 1 and 2 data RX data packets.">RxDataResponse</a>();
<a name="l00340"></a>00340       uint8_t <a class="code" href="class_rx_data_response.html#e0f858fe479a07c7122a8d414c60517e" title="Returns the payload array.">getData</a>(<span class="keywordtype">int</span> index);
<a name="l00344"></a>00344       uint8_t* <a class="code" href="class_rx_data_response.html#e0f858fe479a07c7122a8d414c60517e" title="Returns the payload array.">getData</a>();
<a name="l00348"></a>00348       <span class="keyword">virtual</span> uint8_t <a class="code" href="class_rx_data_response.html#5845e6a0719fd0bf52675e47053a704e" title="Returns the length of the payload.">getDataLength</a>() = 0;
<a name="l00352"></a>00352       <span class="keyword">virtual</span> uint8_t <a class="code" href="class_rx_data_response.html#9e4b6bf4f1bfd9ccec45d190a204f61a" title="Returns the position in the frame data where the data begins.">getDataOffset</a>() = 0;
<a name="l00353"></a>00353 };
<a name="l00354"></a>00354 
<a name="l00355"></a>00355 <span class="comment">// getResponse to return the proper subclass:</span>
<a name="l00356"></a>00356 <span class="comment">// we maintain a pointer to each type of response, when a response is parsed, it is allocated only if NULL</span>
<a name="l00357"></a>00357 <span class="comment">// can we allocate an object in a function?</span>
<a name="l00358"></a>00358 
<a name="l00359"></a>00359 <span class="preprocessor">#ifdef SERIES_2</span>
<a name="l00360"></a>00360 <span class="preprocessor"></span>
<a name="l00363"></a><a class="code" href="class_z_b_tx_status_response.html">00363</a> <span class="keyword">class </span><a class="code" href="class_z_b_tx_status_response.html" title="Represents a Series 2 TX status packet.">ZBTxStatusResponse</a> : <span class="keyword">public</span> <a class="code" href="class_frame_id_response.html" title="This class is extended by all Responses that include a frame id.">FrameIdResponse</a> {
<a name="l00364"></a>00364       <span class="keyword">public</span>:
<a name="l00365"></a>00365             <a class="code" href="class_z_b_tx_status_response.html" title="Represents a Series 2 TX status packet.">ZBTxStatusResponse</a>();
<a name="l00366"></a>00366             uint16_t getRemoteAddress();
<a name="l00367"></a>00367             uint8_t getTxRetryCount();
<a name="l00368"></a>00368             uint8_t getDeliveryStatus();
<a name="l00369"></a>00369             uint8_t getDiscoveryStatus();
<a name="l00370"></a>00370             <span class="keywordtype">bool</span> isSuccess();
<a name="l00371"></a>00371 };
<a name="l00372"></a>00372 
<a name="l00376"></a><a class="code" href="class_z_b_rx_response.html">00376</a> <span class="keyword">class </span><a class="code" href="class_z_b_rx_response.html" title="Represents a Series 2 RX packet.">ZBRxResponse</a> : <span class="keyword">public</span> <a class="code" href="class_rx_data_response.html" title="Common functionality for both Series 1 and 2 data RX data packets.">RxDataResponse</a> {
<a name="l00377"></a>00377 <span class="keyword">public</span>:
<a name="l00378"></a>00378       <a class="code" href="class_z_b_rx_response.html" title="Represents a Series 2 RX packet.">ZBRxResponse</a>();
<a name="l00379"></a>00379       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getRemoteAddress64();
<a name="l00380"></a>00380       uint16_t getRemoteAddress16();
<a name="l00381"></a>00381       uint8_t getOption();
<a name="l00382"></a>00382       uint8_t <a class="code" href="class_z_b_rx_response.html#9d2b73060d611bbdd581e0ceb195fd31" title="Returns the length of the payload.">getDataLength</a>();
<a name="l00383"></a>00383       <span class="comment">// frame position where data starts</span>
<a name="l00384"></a>00384       uint8_t <a class="code" href="class_z_b_rx_response.html#d54e6ff3008f79d0ed32a78cc3d69151" title="Returns the position in the frame data where the data begins.">getDataOffset</a>();
<a name="l00385"></a>00385 <span class="keyword">private</span>:
<a name="l00386"></a>00386       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _remoteAddress64;
<a name="l00387"></a>00387 };
<a name="l00388"></a>00388 
<a name="l00392"></a><a class="code" href="class_z_b_rx_io_sample_response.html">00392</a> <span class="keyword">class </span><a class="code" href="class_z_b_rx_io_sample_response.html" title="Represents a Series 2 RX I/O Sample packet.">ZBRxIoSampleResponse</a> : <span class="keyword">public</span> <a class="code" href="class_z_b_rx_response.html" title="Represents a Series 2 RX packet.">ZBRxResponse</a> {
<a name="l00393"></a>00393 <span class="keyword">public</span>:
<a name="l00394"></a>00394       <a class="code" href="class_z_b_rx_io_sample_response.html" title="Represents a Series 2 RX I/O Sample packet.">ZBRxIoSampleResponse</a>();
<a name="l00395"></a>00395       <span class="keywordtype">bool</span> containsAnalog();
<a name="l00396"></a>00396       <span class="keywordtype">bool</span> containsDigital();
<a name="l00400"></a>00400       <span class="keywordtype">bool</span> <a class="code" href="class_z_b_rx_io_sample_response.html#d0e444cc8854c996517c1ecde033a9c8" title="Returns true if the pin is enabled.">isAnalogEnabled</a>(uint8_t pin);
<a name="l00404"></a>00404       <span class="keywordtype">bool</span> <a class="code" href="class_z_b_rx_io_sample_response.html#946c653da11f62b319c3ca6606f8edff" title="Returns true if the pin is enabled.">isDigitalEnabled</a>(uint8_t pin);
<a name="l00409"></a>00409       uint16_t <a class="code" href="class_z_b_rx_io_sample_response.html#a74edf46988bd3e50ce4037350cbb91e" title="Returns the 10-bit analog reading of the specified pin.">getAnalog</a>(uint8_t pin);
<a name="l00414"></a>00414       <span class="keywordtype">bool</span> <a class="code" href="class_z_b_rx_io_sample_response.html#c94f045360d7dbb009ac16bc437cbbd5" title="Returns true if the specified pin is high/on.">isDigitalOn</a>(uint8_t pin);
<a name="l00415"></a>00415       uint8_t getDigitalMaskMsb();
<a name="l00416"></a>00416       uint8_t getDigitalMaskLsb();
<a name="l00417"></a>00417       uint8_t getAnalogMask();
<a name="l00418"></a>00418 };
<a name="l00419"></a>00419 
<a name="l00420"></a>00420 <span class="preprocessor">#endif</span>
<a name="l00421"></a>00421 <span class="preprocessor"></span>
<a name="l00422"></a>00422 <span class="preprocessor">#ifdef SERIES_1</span>
<a name="l00423"></a>00423 <span class="preprocessor"></span>
<a name="l00426"></a><a class="code" href="class_tx_status_response.html">00426</a> <span class="keyword">class </span><a class="code" href="class_tx_status_response.html" title="Represents a Series 1 TX Status packet.">TxStatusResponse</a> : <span class="keyword">public</span> <a class="code" href="class_frame_id_response.html" title="This class is extended by all Responses that include a frame id.">FrameIdResponse</a> {
<a name="l00427"></a>00427       <span class="keyword">public</span>:
<a name="l00428"></a>00428             <a class="code" href="class_tx_status_response.html" title="Represents a Series 1 TX Status packet.">TxStatusResponse</a>();
<a name="l00429"></a>00429             uint8_t getStatus();
<a name="l00430"></a>00430             <span class="keywordtype">bool</span> isSuccess();
<a name="l00431"></a>00431 };
<a name="l00432"></a>00432 
<a name="l00436"></a><a class="code" href="class_rx_response.html">00436</a> <span class="keyword">class </span><a class="code" href="class_rx_response.html" title="Represents a Series 1 RX packet.">RxResponse</a> : <span class="keyword">public</span> <a class="code" href="class_rx_data_response.html" title="Common functionality for both Series 1 and 2 data RX data packets.">RxDataResponse</a> {
<a name="l00437"></a>00437 <span class="keyword">public</span>:
<a name="l00438"></a>00438       <a class="code" href="class_rx_response.html" title="Represents a Series 1 RX packet.">RxResponse</a>();
<a name="l00439"></a>00439       <span class="comment">// remember rssi is negative but this is unsigned byte so it's up to you to convert</span>
<a name="l00440"></a>00440       uint8_t getRssi();
<a name="l00441"></a>00441       uint8_t getOption();
<a name="l00442"></a>00442       <span class="keywordtype">bool</span> isAddressBroadcast();
<a name="l00443"></a>00443       <span class="keywordtype">bool</span> isPanBroadcast();
<a name="l00444"></a>00444       uint8_t <a class="code" href="class_rx_response.html#dd3478a1ce5667aad315f6a6c218011a" title="Returns the length of the payload.">getDataLength</a>();
<a name="l00445"></a>00445       uint8_t <a class="code" href="class_rx_response.html#37fd3ee455f2157fa3894e710e668409" title="Returns the position in the frame data where the data begins.">getDataOffset</a>();
<a name="l00446"></a>00446       <span class="keyword">virtual</span> uint8_t getRssiOffset() = 0;
<a name="l00447"></a>00447 };
<a name="l00448"></a>00448 
<a name="l00452"></a><a class="code" href="class_rx16_response.html">00452</a> <span class="keyword">class </span><a class="code" href="class_rx16_response.html" title="Represents a Series 1 16-bit address RX packet.">Rx16Response</a> : <span class="keyword">public</span> <a class="code" href="class_rx_response.html" title="Represents a Series 1 RX packet.">RxResponse</a> {
<a name="l00453"></a>00453 <span class="keyword">public</span>:
<a name="l00454"></a>00454       <a class="code" href="class_rx16_response.html" title="Represents a Series 1 16-bit address RX packet.">Rx16Response</a>();
<a name="l00455"></a>00455       uint8_t getRssiOffset();
<a name="l00456"></a>00456       uint16_t getRemoteAddress16();
<a name="l00457"></a>00457 <span class="keyword">protected</span>:
<a name="l00458"></a>00458       uint16_t _remoteAddress;
<a name="l00459"></a>00459 };
<a name="l00460"></a>00460 
<a name="l00464"></a><a class="code" href="class_rx64_response.html">00464</a> <span class="keyword">class </span><a class="code" href="class_rx64_response.html" title="Represents a Series 1 64-bit address RX packet.">Rx64Response</a> : <span class="keyword">public</span> <a class="code" href="class_rx_response.html" title="Represents a Series 1 RX packet.">RxResponse</a> {
<a name="l00465"></a>00465 <span class="keyword">public</span>:
<a name="l00466"></a>00466       <a class="code" href="class_rx64_response.html" title="Represents a Series 1 64-bit address RX packet.">Rx64Response</a>();
<a name="l00467"></a>00467       uint8_t getRssiOffset();
<a name="l00468"></a>00468       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getRemoteAddress64();
<a name="l00469"></a>00469 <span class="keyword">private</span>:
<a name="l00470"></a>00470       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _remoteAddress;
<a name="l00471"></a>00471 };
<a name="l00472"></a>00472 
<a name="l00476"></a><a class="code" href="class_rx_io_sample_base_response.html">00476</a> <span class="keyword">class </span><a class="code" href="class_rx_io_sample_base_response.html" title="Represents a Series 1 RX I/O Sample packet.">RxIoSampleBaseResponse</a> : <span class="keyword">public</span> <a class="code" href="class_rx_response.html" title="Represents a Series 1 RX packet.">RxResponse</a> {
<a name="l00477"></a>00477       <span class="keyword">public</span>:
<a name="l00478"></a>00478             <a class="code" href="class_rx_io_sample_base_response.html" title="Represents a Series 1 RX I/O Sample packet.">RxIoSampleBaseResponse</a>();
<a name="l00482"></a>00482             uint8_t <a class="code" href="class_rx_io_sample_base_response.html#44ce66a6751e7e39c8908fe179a21d24" title="Returns the number of samples in this packet.">getSampleSize</a>();
<a name="l00483"></a>00483             <span class="keywordtype">bool</span> containsAnalog();
<a name="l00484"></a>00484             <span class="keywordtype">bool</span> containsDigital();
<a name="l00488"></a>00488             <span class="keywordtype">bool</span> <a class="code" href="class_rx_io_sample_base_response.html#d8fc07932c2e011b83814082b1d82400" title="Returns true if the specified analog pin is enabled.">isAnalogEnabled</a>(uint8_t pin);
<a name="l00492"></a>00492             <span class="keywordtype">bool</span> <a class="code" href="class_rx_io_sample_base_response.html#a897267985b5b8c02abd68b50f954de7" title="Returns true if the specified digital pin is enabled.">isDigitalEnabled</a>(uint8_t pin);
<a name="l00497"></a>00497             uint16_t <a class="code" href="class_rx_io_sample_base_response.html#81e98b2eab33f62e6af6b3b4014e841a" title="Returns the 10-bit analog reading of the specified pin.">getAnalog</a>(uint8_t pin, uint8_t sample);
<a name="l00502"></a>00502             <span class="keywordtype">bool</span> <a class="code" href="class_rx_io_sample_base_response.html#d4ffc0eb84c685fe45618d6b73a20ce2" title="Returns true if the specified pin is high/on.">isDigitalOn</a>(uint8_t pin, uint8_t sample);
<a name="l00503"></a>00503             uint8_t getSampleOffset();
<a name="l00504"></a>00504       <span class="keyword">private</span>:
<a name="l00505"></a>00505 };
<a name="l00506"></a>00506 
<a name="l00507"></a>00507 <span class="keyword">class </span>Rx16IoSampleResponse : <span class="keyword">public</span> <a class="code" href="class_rx_io_sample_base_response.html" title="Represents a Series 1 RX I/O Sample packet.">RxIoSampleBaseResponse</a> {
<a name="l00508"></a>00508 <span class="keyword">public</span>:
<a name="l00509"></a>00509       Rx16IoSampleResponse();
<a name="l00510"></a>00510       uint16_t getRemoteAddress16();
<a name="l00511"></a>00511       uint8_t getRssiOffset();
<a name="l00512"></a>00512 
<a name="l00513"></a>00513 };
<a name="l00514"></a>00514 
<a name="l00515"></a>00515 <span class="keyword">class </span>Rx64IoSampleResponse : <span class="keyword">public</span> <a class="code" href="class_rx_io_sample_base_response.html" title="Represents a Series 1 RX I/O Sample packet.">RxIoSampleBaseResponse</a> {
<a name="l00516"></a>00516 <span class="keyword">public</span>:
<a name="l00517"></a>00517       Rx64IoSampleResponse();
<a name="l00518"></a>00518       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getRemoteAddress64();
<a name="l00519"></a>00519       uint8_t getRssiOffset();
<a name="l00520"></a>00520 <span class="keyword">private</span>:
<a name="l00521"></a>00521       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _remoteAddress;
<a name="l00522"></a>00522 };
<a name="l00523"></a>00523 
<a name="l00524"></a>00524 <span class="preprocessor">#endif</span>
<a name="l00525"></a>00525 <span class="preprocessor"></span>
<a name="l00529"></a><a class="code" href="class_modem_status_response.html">00529</a> <span class="keyword">class </span><a class="code" href="class_modem_status_response.html" title="Represents a Modem Status RX packet.">ModemStatusResponse</a> : <span class="keyword">public</span> <a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> {
<a name="l00530"></a>00530 <span class="keyword">public</span>:
<a name="l00531"></a>00531       <a class="code" href="class_modem_status_response.html" title="Represents a Modem Status RX packet.">ModemStatusResponse</a>();
<a name="l00532"></a>00532       uint8_t getStatus();
<a name="l00533"></a>00533 };
<a name="l00534"></a>00534 
<a name="l00538"></a><a class="code" href="class_at_command_response.html">00538</a> <span class="keyword">class </span><a class="code" href="class_at_command_response.html" title="Represents an AT Command RX packet.">AtCommandResponse</a> : <span class="keyword">public</span> <a class="code" href="class_frame_id_response.html" title="This class is extended by all Responses that include a frame id.">FrameIdResponse</a> {
<a name="l00539"></a>00539       <span class="keyword">public</span>:
<a name="l00540"></a>00540             <a class="code" href="class_at_command_response.html" title="Represents an AT Command RX packet.">AtCommandResponse</a>();
<a name="l00544"></a>00544             uint8_t* <a class="code" href="class_at_command_response.html#20f1bf08ba77f2bc74f009318a6fd133" title="Returns an array containing the two character command.">getCommand</a>();
<a name="l00549"></a>00549             uint8_t <a class="code" href="class_at_command_response.html#340822cacf6eed3ef29955dc9610c09f" title="Returns the command status code.">getStatus</a>();
<a name="l00554"></a>00554             uint8_t* <a class="code" href="class_at_command_response.html#d1e2a0b6f8988536c570b116f103e7f9" title="Returns an array containing the command value.">getValue</a>();
<a name="l00558"></a>00558             uint8_t <a class="code" href="class_at_command_response.html#d7d6159fa1777144e94a9ccfeaf83662" title="Returns the length of the command value array.">getValueLength</a>();
<a name="l00562"></a>00562             <span class="keywordtype">bool</span> <a class="code" href="class_at_command_response.html#b606b3dc93f809b828b54e98a79711d8" title="Returns true if status equals AT_OK.">isOk</a>();
<a name="l00563"></a>00563 };
<a name="l00564"></a>00564 
<a name="l00568"></a><a class="code" href="class_remote_at_command_response.html">00568</a> <span class="keyword">class </span><a class="code" href="class_remote_at_command_response.html" title="Represents a Remote AT Command RX packet.">RemoteAtCommandResponse</a> : <span class="keyword">public</span> <a class="code" href="class_at_command_response.html" title="Represents an AT Command RX packet.">AtCommandResponse</a> {
<a name="l00569"></a>00569       <span class="keyword">public</span>:
<a name="l00570"></a>00570             <a class="code" href="class_remote_at_command_response.html" title="Represents a Remote AT Command RX packet.">RemoteAtCommandResponse</a>();
<a name="l00574"></a>00574             uint8_t* <a class="code" href="class_remote_at_command_response.html#6d26d626de8b8d0eaf8241b92ff39f28" title="Returns an array containing the two character command.">getCommand</a>();
<a name="l00579"></a>00579             uint8_t <a class="code" href="class_remote_at_command_response.html#fc1b15612ea780c10dc1f33754868548" title="Returns the command status code.">getStatus</a>();
<a name="l00584"></a>00584             uint8_t* <a class="code" href="class_remote_at_command_response.html#3d72d768131c63271a62f75530efda29" title="Returns an array containing the command value.">getValue</a>();
<a name="l00588"></a>00588             uint8_t <a class="code" href="class_remote_at_command_response.html#55cf17381e461b8de4a2d5459bfc964a" title="Returns the length of the command value array.">getValueLength</a>();
<a name="l00592"></a>00592             uint16_t <a class="code" href="class_remote_at_command_response.html#2bea13bca12330a2eb1da3e3f0224bde" title="Returns the 16-bit address of the remote radio.">getRemoteAddress16</a>();
<a name="l00596"></a>00596             <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; <a class="code" href="class_remote_at_command_response.html#b87802214e04a7058ed0dc9668e70e73" title="Returns the 64-bit address of the remote radio.">getRemoteAddress64</a>();
<a name="l00600"></a>00600             <span class="keywordtype">bool</span> <a class="code" href="class_remote_at_command_response.html#0cef7b3846d9c208ebd7ce4473aa90d3" title="Returns true if command was successful.">isOk</a>();
<a name="l00601"></a>00601       <span class="keyword">private</span>:
<a name="l00602"></a>00602             <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _remoteAddress64;
<a name="l00603"></a>00603 };
<a name="l00604"></a>00604 
<a name="l00605"></a>00605 
<a name="l00613"></a><a class="code" href="class_x_bee_request.html">00613</a> <span class="keyword">class </span><a class="code" href="class_x_bee_request.html" title="Super class of all XBee requests (TX packets) Users should never create an instance...">XBeeRequest</a> {
<a name="l00614"></a>00614 <span class="keyword">public</span>:
<a name="l00619"></a>00619       <a class="code" href="class_x_bee_request.html#f80fd559cab746ab8573087cddda71a2" title="Constructor TODO make protected.">XBeeRequest</a>(uint8_t apiId, uint8_t frameId);
<a name="l00623"></a>00623       <span class="keywordtype">void</span> <a class="code" href="class_x_bee_request.html#ed1724c11e710217807c971e40105c86" title="Sets the frame id.">setFrameId</a>(uint8_t frameId);
<a name="l00627"></a>00627       uint8_t <a class="code" href="class_x_bee_request.html#20394c7ea4666224c50bef25cc0cd836" title="Returns the frame id.">getFrameId</a>();
<a name="l00631"></a>00631       uint8_t <a class="code" href="class_x_bee_request.html#746d0373c9fb6ed0ff8b7e04f5fb12c9" title="Returns the API id.">getApiId</a>();
<a name="l00632"></a>00632       <span class="comment">// setting = 0 makes this a pure virtual function, meaning the subclass must implement, like abstract in java</span>
<a name="l00639"></a>00639 <span class="comment"></span>      <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_bee_request.html#d5b998cd95a570bdaa4d74c6c8790d94" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos) = 0;
<a name="l00643"></a>00643       <span class="keyword">virtual</span> uint8_t <a class="code" href="class_x_bee_request.html#03b6c558db5836fa7167c0fba7405642" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>() = 0;
<a name="l00644"></a>00644       <span class="comment">//void reset();</span>
<a name="l00645"></a>00645 <span class="keyword">protected</span>:
<a name="l00646"></a>00646       <span class="keywordtype">void</span> setApiId(uint8_t apiId);
<a name="l00647"></a>00647 <span class="keyword">private</span>:
<a name="l00648"></a>00648       uint8_t _apiId;
<a name="l00649"></a>00649       uint8_t _frameId;
<a name="l00650"></a>00650 };
<a name="l00651"></a>00651 
<a name="l00652"></a>00652 <span class="comment">// TODO add reset/clear method since responses are often reused</span>
<a name="l00674"></a><a class="code" href="class_x_bee.html">00674</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="class_x_bee.html" title="Primary interface for communicating with an XBee Radio.">XBee</a> {
<a name="l00675"></a>00675 <span class="keyword">public</span>:
<a name="l00676"></a>00676       <a class="code" href="class_x_bee.html" title="Primary interface for communicating with an XBee Radio.">XBee</a>();
<a name="l00689"></a>00689       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#7d788232f44e8b3c10dc686a0299fcc6" title="Reads all available serial bytes until a packet is parsed, an error occurs, or the...">readPacket</a>();
<a name="l00694"></a>00694       <span class="keywordtype">bool</span> <a class="code" href="class_x_bee.html#7d788232f44e8b3c10dc686a0299fcc6" title="Reads all available serial bytes until a packet is parsed, an error occurs, or the...">readPacket</a>(<span class="keywordtype">int</span> timeout);
<a name="l00700"></a>00700       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#594e2bb2ccb7b3fe7a2278b9324b4083" title="Reads until a packet is received or an error occurs.">readPacketUntilAvailable</a>();
<a name="l00704"></a>00704       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#2d170fc3f2412712adee0af794dc6263" title="Starts the serial connection on the specified serial port.">begin</a>(Stream &amp;serial);
<a name="l00705"></a>00705       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#18250def80e8b643aa1ccc15a98937f3" title="Returns a reference to the current response Note: once readPacket is called again...">getResponse</a>(<a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> &amp;response);
<a name="l00710"></a>00710       <a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a>&amp; <a class="code" href="class_x_bee.html#18250def80e8b643aa1ccc15a98937f3" title="Returns a reference to the current response Note: once readPacket is called again...">getResponse</a>();
<a name="l00714"></a>00714       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#802387f468be8622941d16739ac848f2" title="Sends a XBeeRequest (TX packet) out the serial port.">send</a>(<a class="code" href="class_x_bee_request.html" title="Super class of all XBee requests (TX packets) Users should never create an instance...">XBeeRequest</a> &amp;request);
<a name="l00715"></a>00715       <span class="comment">//uint8_t sendAndWaitForResponse(XBeeRequest &amp;request, int timeout);</span>
<a name="l00719"></a>00719 <span class="comment"></span>      uint8_t <a class="code" href="class_x_bee.html#25bd226e41517e8a66a13e531d31438d" title="Returns a sequential frame id between 1 and 255.">getNextFrameId</a>();
<a name="l00723"></a>00723       <span class="keywordtype">void</span> <a class="code" href="class_x_bee.html#58ff19e5342060ca91aea247db99b927" title="Specify the serial port.">setSerial</a>(Stream &amp;serial);
<a name="l00724"></a>00724 <span class="keyword">private</span>:
<a name="l00725"></a>00725       <span class="keywordtype">bool</span> available();
<a name="l00726"></a>00726       uint8_t read();
<a name="l00727"></a>00727       <span class="keywordtype">void</span> flush();
<a name="l00728"></a>00728       <span class="keywordtype">void</span> write(uint8_t val);
<a name="l00729"></a>00729       <span class="keywordtype">void</span> sendByte(uint8_t b, <span class="keywordtype">bool</span> escape);
<a name="l00730"></a>00730       <span class="keywordtype">void</span> resetResponse();
<a name="l00731"></a>00731       <a class="code" href="class_x_bee_response.html" title="The super class of all XBee responses (RX packets) Users should never attempt to...">XBeeResponse</a> _response;
<a name="l00732"></a>00732       <span class="keywordtype">bool</span> _escape;
<a name="l00733"></a>00733       <span class="comment">// current packet position for response.  just a state variable for packet parsing and has no relevance for the response otherwise</span>
<a name="l00734"></a>00734       uint8_t _pos;
<a name="l00735"></a>00735       <span class="comment">// last byte read</span>
<a name="l00736"></a>00736       uint8_t b;
<a name="l00737"></a>00737       uint8_t _checksumTotal;
<a name="l00738"></a>00738       uint8_t _nextFrameId;
<a name="l00739"></a>00739       <span class="comment">// buffer for incoming RX packets.  holds only the api specific frame data, starting after the api id byte and prior to checksum</span>
<a name="l00740"></a>00740       uint8_t _responseFrameData[MAX_FRAME_DATA_SIZE];
<a name="l00741"></a>00741       Stream* _serial;
<a name="l00742"></a>00742 };
<a name="l00743"></a>00743 
<a name="l00747"></a><a class="code" href="class_payload_request.html">00747</a> <span class="keyword">class </span><a class="code" href="class_payload_request.html" title="All TX packets that support payloads extend this class.">PayloadRequest</a> : <span class="keyword">public</span> <a class="code" href="class_x_bee_request.html" title="Super class of all XBee requests (TX packets) Users should never create an instance...">XBeeRequest</a> {
<a name="l00748"></a>00748 <span class="keyword">public</span>:
<a name="l00749"></a>00749       <a class="code" href="class_payload_request.html" title="All TX packets that support payloads extend this class.">PayloadRequest</a>(uint8_t apiId, uint8_t frameId, uint8_t *payload, uint8_t payloadLength);
<a name="l00753"></a>00753       uint8_t* <a class="code" href="class_payload_request.html#1e2d5757fefda70dfd0c567b3dd0ba39" title="Returns the payload of the packet, if not null.">getPayload</a>();
<a name="l00757"></a>00757       <span class="keywordtype">void</span> <a class="code" href="class_payload_request.html#a9abc1f496a1c457f796207aa8a7567d" title="Sets the payload array.">setPayload</a>(uint8_t* payloadPtr);
<a name="l00761"></a>00761       uint8_t <a class="code" href="class_payload_request.html#fb718d069f05611623833437c99893a4" title="Returns the length of the payload array, as specified by the user.">getPayloadLength</a>();
<a name="l00767"></a>00767       <span class="keywordtype">void</span> <a class="code" href="class_payload_request.html#6e86a663ab6299afaa1cf21ad7c2c5c1" title="Sets the length of the payload to include in the request.">setPayloadLength</a>(uint8_t payloadLength);
<a name="l00768"></a>00768 <span class="keyword">private</span>:
<a name="l00769"></a>00769       uint8_t* _payloadPtr;
<a name="l00770"></a>00770       uint8_t _payloadLength;
<a name="l00771"></a>00771 };
<a name="l00772"></a>00772 
<a name="l00773"></a>00773 <span class="preprocessor">#ifdef SERIES_1</span>
<a name="l00774"></a>00774 <span class="preprocessor"></span>
<a name="l00783"></a><a class="code" href="class_tx16_request.html">00783</a> <span class="keyword">class </span><a class="code" href="class_tx16_request.html" title="Represents a Series 1 TX packet that corresponds to Api Id: TX_16_REQUEST Be careful...">Tx16Request</a> : <span class="keyword">public</span> <a class="code" href="class_payload_request.html" title="All TX packets that support payloads extend this class.">PayloadRequest</a> {
<a name="l00784"></a>00784 <span class="keyword">public</span>:
<a name="l00785"></a>00785       <a class="code" href="class_tx16_request.html#dcdbb644e08788267fb86cbefde76b1b" title="Creates a default instance of this class.">Tx16Request</a>(uint16_t addr16, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId);
<a name="l00789"></a>00789       <a class="code" href="class_tx16_request.html#dcdbb644e08788267fb86cbefde76b1b" title="Creates a default instance of this class.">Tx16Request</a>(uint16_t addr16, uint8_t *payload, uint8_t payloadLength);
<a name="l00794"></a>00794       <a class="code" href="class_tx16_request.html#dcdbb644e08788267fb86cbefde76b1b" title="Creates a default instance of this class.">Tx16Request</a>();
<a name="l00795"></a>00795       uint16_t getAddress16();
<a name="l00796"></a>00796       <span class="keywordtype">void</span> setAddress16(uint16_t addr16);
<a name="l00797"></a>00797       uint8_t getOption();
<a name="l00798"></a>00798       <span class="keywordtype">void</span> setOption(uint8_t option);
<a name="l00799"></a>00799       uint8_t <a class="code" href="class_tx16_request.html#f5ffbc2164e766d96f54c723996fd389" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos);
<a name="l00800"></a>00800       uint8_t <a class="code" href="class_tx16_request.html#9a1ddfb380e72ecc09a024c6de6cdf8e" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>();
<a name="l00801"></a>00801 <span class="keyword">protected</span>:
<a name="l00802"></a>00802 <span class="keyword">private</span>:
<a name="l00803"></a>00803       uint16_t _addr16;
<a name="l00804"></a>00804       uint8_t _option;
<a name="l00805"></a>00805 };
<a name="l00806"></a>00806 
<a name="l00815"></a><a class="code" href="class_tx64_request.html">00815</a> <span class="keyword">class </span><a class="code" href="class_tx64_request.html" title="Represents a Series 1 TX packet that corresponds to Api Id: TX_64_REQUEST.">Tx64Request</a> : <span class="keyword">public</span> <a class="code" href="class_payload_request.html" title="All TX packets that support payloads extend this class.">PayloadRequest</a> {
<a name="l00816"></a>00816 <span class="keyword">public</span>:
<a name="l00817"></a>00817       <a class="code" href="class_tx64_request.html#49bd84b4aa5478c27e6da5581b2e1d3c" title="Creates a default instance of this class.">Tx64Request</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;addr64, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId);
<a name="l00821"></a>00821       <a class="code" href="class_tx64_request.html#49bd84b4aa5478c27e6da5581b2e1d3c" title="Creates a default instance of this class.">Tx64Request</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;addr64, uint8_t *payload, uint8_t payloadLength);
<a name="l00826"></a>00826       <a class="code" href="class_tx64_request.html#49bd84b4aa5478c27e6da5581b2e1d3c" title="Creates a default instance of this class.">Tx64Request</a>();
<a name="l00827"></a>00827       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getAddress64();
<a name="l00828"></a>00828       <span class="keywordtype">void</span> setAddress64(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; addr64);
<a name="l00829"></a>00829       <span class="comment">// TODO move option to superclass</span>
<a name="l00830"></a>00830       uint8_t getOption();
<a name="l00831"></a>00831       <span class="keywordtype">void</span> setOption(uint8_t option);
<a name="l00832"></a>00832       uint8_t <a class="code" href="class_tx64_request.html#fe3662433da85acd21f8a3d90844a084" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos);
<a name="l00833"></a>00833       uint8_t <a class="code" href="class_tx64_request.html#fadc1e07718a62d6c5a75a4bb07dfaae" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>();
<a name="l00834"></a>00834 <span class="keyword">private</span>:
<a name="l00835"></a>00835       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _addr64;
<a name="l00836"></a>00836       uint8_t _option;
<a name="l00837"></a>00837 };
<a name="l00838"></a>00838 
<a name="l00839"></a>00839 <span class="preprocessor">#endif</span>
<a name="l00840"></a>00840 <span class="preprocessor"></span>
<a name="l00841"></a>00841 
<a name="l00842"></a>00842 <span class="preprocessor">#ifdef SERIES_2</span>
<a name="l00843"></a>00843 <span class="preprocessor"></span>
<a name="l00856"></a><a class="code" href="class_z_b_tx_request.html">00856</a> <span class="keyword">class </span><a class="code" href="class_z_b_tx_request.html" title="Represents a Series 2 TX packet that corresponds to Api Id: ZB_TX_REQUEST.">ZBTxRequest</a> : <span class="keyword">public</span> <a class="code" href="class_payload_request.html" title="All TX packets that support payloads extend this class.">PayloadRequest</a> {
<a name="l00857"></a>00857 <span class="keyword">public</span>:
<a name="l00861"></a>00861       <a class="code" href="class_z_b_tx_request.html#410499f31a049f0bd4bbc8299ec74e24" title="Creates a default instance of this class.">ZBTxRequest</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;addr64, uint8_t *payload, uint8_t payloadLength);
<a name="l00862"></a>00862       <a class="code" href="class_z_b_tx_request.html#410499f31a049f0bd4bbc8299ec74e24" title="Creates a default instance of this class.">ZBTxRequest</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;addr64, uint16_t addr16, uint8_t broadcastRadius, uint8_t option, uint8_t *payload, uint8_t payloadLength, uint8_t frameId);
<a name="l00867"></a>00867       <a class="code" href="class_z_b_tx_request.html#410499f31a049f0bd4bbc8299ec74e24" title="Creates a default instance of this class.">ZBTxRequest</a>();
<a name="l00868"></a>00868       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getAddress64();
<a name="l00869"></a>00869       uint16_t getAddress16();
<a name="l00870"></a>00870       uint8_t getBroadcastRadius();
<a name="l00871"></a>00871       uint8_t getOption();
<a name="l00872"></a>00872       <span class="keywordtype">void</span> setAddress64(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; addr64);
<a name="l00873"></a>00873       <span class="keywordtype">void</span> setAddress16(uint16_t addr16);
<a name="l00874"></a>00874       <span class="keywordtype">void</span> setBroadcastRadius(uint8_t broadcastRadius);
<a name="l00875"></a>00875       <span class="keywordtype">void</span> setOption(uint8_t option);
<a name="l00876"></a>00876 <span class="keyword">protected</span>:
<a name="l00877"></a>00877       <span class="comment">// declare virtual functions</span>
<a name="l00878"></a>00878       uint8_t <a class="code" href="class_z_b_tx_request.html#c81e09dfbf7aefbdf7f8b4838b643c5c" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos);
<a name="l00879"></a>00879       uint8_t <a class="code" href="class_z_b_tx_request.html#8e6914c1f556981a0f863c57c57d053b" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>();
<a name="l00880"></a>00880 <span class="keyword">private</span>:
<a name="l00881"></a>00881       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _addr64;
<a name="l00882"></a>00882       uint16_t _addr16;
<a name="l00883"></a>00883       uint8_t _broadcastRadius;
<a name="l00884"></a>00884       uint8_t _option;
<a name="l00885"></a>00885 };
<a name="l00886"></a>00886 
<a name="l00887"></a>00887 <span class="preprocessor">#endif</span>
<a name="l00888"></a>00888 <span class="preprocessor"></span>
<a name="l00893"></a><a class="code" href="class_at_command_request.html">00893</a> <span class="keyword">class </span><a class="code" href="class_at_command_request.html" title="Represents an AT Command TX packet The command is used to configure the serially...">AtCommandRequest</a> : <span class="keyword">public</span> <a class="code" href="class_x_bee_request.html" title="Super class of all XBee requests (TX packets) Users should never create an instance...">XBeeRequest</a> {
<a name="l00894"></a>00894 <span class="keyword">public</span>:
<a name="l00895"></a>00895       <a class="code" href="class_at_command_request.html" title="Represents an AT Command TX packet The command is used to configure the serially...">AtCommandRequest</a>();
<a name="l00896"></a>00896       <a class="code" href="class_at_command_request.html" title="Represents an AT Command TX packet The command is used to configure the serially...">AtCommandRequest</a>(uint8_t *command);
<a name="l00897"></a>00897       <a class="code" href="class_at_command_request.html" title="Represents an AT Command TX packet The command is used to configure the serially...">AtCommandRequest</a>(uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength);
<a name="l00898"></a>00898       uint8_t <a class="code" href="class_at_command_request.html#a4fc8f0c8404172cd5532f3d8e5564f2" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos);
<a name="l00899"></a>00899       uint8_t <a class="code" href="class_at_command_request.html#ad12b8357e63fca9e95b6731a4bfda0d" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>();
<a name="l00900"></a>00900       uint8_t* getCommand();
<a name="l00901"></a>00901       <span class="keywordtype">void</span> setCommand(uint8_t* command);
<a name="l00902"></a>00902       uint8_t* getCommandValue();
<a name="l00903"></a>00903       <span class="keywordtype">void</span> setCommandValue(uint8_t* command);
<a name="l00904"></a>00904       uint8_t getCommandValueLength();
<a name="l00905"></a>00905       <span class="keywordtype">void</span> setCommandValueLength(uint8_t length);
<a name="l00909"></a>00909       <span class="keywordtype">void</span> <a class="code" href="class_at_command_request.html#6842d0e270162c389d804eafd37a4f45" title="Clears the optional commandValue and commandValueLength so that a query may be sent...">clearCommandValue</a>();
<a name="l00910"></a>00910       <span class="comment">//void reset();</span>
<a name="l00911"></a>00911 <span class="keyword">private</span>:
<a name="l00912"></a>00912       uint8_t *_command;
<a name="l00913"></a>00913       uint8_t *_commandValue;
<a name="l00914"></a>00914       uint8_t _commandValueLength;
<a name="l00915"></a>00915 };
<a name="l00916"></a>00916 
<a name="l00921"></a><a class="code" href="class_remote_at_command_request.html">00921</a> <span class="keyword">class </span><a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a> : <span class="keyword">public</span> <a class="code" href="class_at_command_request.html" title="Represents an AT Command TX packet The command is used to configure the serially...">AtCommandRequest</a> {
<a name="l00922"></a>00922 <span class="keyword">public</span>:
<a name="l00923"></a>00923       <a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a>();
<a name="l00928"></a>00928       <a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a>(uint16_t remoteAddress16, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength);
<a name="l00933"></a>00933       <a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a>(uint16_t remoteAddress16, uint8_t *command);
<a name="l00938"></a>00938       <a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;remoteAddress64, uint8_t *command, uint8_t *commandValue, uint8_t commandValueLength);
<a name="l00943"></a>00943       <a class="code" href="class_remote_at_command_request.html" title="Represents an Remote AT Command TX packet The command is used to configure a remote...">RemoteAtCommandRequest</a>(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;remoteAddress64, uint8_t *command);
<a name="l00944"></a>00944       uint16_t getRemoteAddress16();
<a name="l00945"></a>00945       <span class="keywordtype">void</span> setRemoteAddress16(uint16_t remoteAddress16);
<a name="l00946"></a>00946       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a>&amp; getRemoteAddress64();
<a name="l00947"></a>00947       <span class="keywordtype">void</span> setRemoteAddress64(<a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> &amp;remoteAddress64);
<a name="l00948"></a>00948       <span class="keywordtype">bool</span> getApplyChanges();
<a name="l00949"></a>00949       <span class="keywordtype">void</span> setApplyChanges(<span class="keywordtype">bool</span> applyChanges);
<a name="l00950"></a>00950       uint8_t <a class="code" href="class_remote_at_command_request.html#0e576cf564ebd5a82cb2ed05239a856a" title="Starting after the frame id (pos = 0) and up to but not including the checksum Note:...">getFrameData</a>(uint8_t pos);
<a name="l00951"></a>00951       uint8_t <a class="code" href="class_remote_at_command_request.html#1d78334a8924b0a0e06de6ef3a09c24f" title="Returns the size of the api frame (not including frame id or api id or checksum)...">getFrameDataLength</a>();
<a name="l00952"></a>00952       <span class="keyword">static</span> <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> broadcastAddress64;
<a name="l00953"></a>00953 <span class="comment">//    static uint16_t broadcast16Address;</span>
<a name="l00954"></a>00954 <span class="keyword">private</span>:
<a name="l00955"></a>00955       <a class="code" href="class_x_bee_address64.html" title="Represents a 64-bit XBee Address.">XBeeAddress64</a> _remoteAddress64;
<a name="l00956"></a>00956       uint16_t _remoteAddress16;
<a name="l00957"></a>00957       <span class="keywordtype">bool</span> _applyChanges;
<a name="l00958"></a>00958 };
<a name="l00959"></a>00959 
<a name="l00960"></a>00960 
<a name="l00961"></a>00961 
<a name="l00962"></a>00962 <span class="preprocessor">#endif //XBee_h</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Oct 15 21:25:26 2012 for XBee-Arduino by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>
