Project

General

Profile

Statistics
| Revision:

root / branches / wireless / docs / libwireless / html / group__xbee.html @ 1581

History | View | Annotate | Download (18 KB)

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
<title>Colony: XBee</title>
4
<link href="tabs.css" rel="stylesheet" type="text/css">
5
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
</head><body>
7
<!-- Generated by Doxygen 1.5.8 -->
8
<div class="navigation" id="top">
9
  <div class="tabs">
10
    <ul>
11
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12
      <li><a href="modules.html"><span>Modules</span></a></li>
13
      <li><a href="files.html"><span>Files</span></a></li>
14
    </ul>
15
  </div>
16
</div>
17
<div class="contents">
18
<h1>XBee</h1>Interface with the XBee module.  
19
<a href="#_details">More...</a>
20
<p>
21
<table border="0" cellpadding="0" cellspacing="0">
22
<tr><td></td></tr>
23
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
24
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee__const.html">xbee constants</a></td></tr>
25

    
26
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
27
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g2fbd69862a11b6bcc5cfdb9f182bcdb9">xbee_send_read_at_command</a> (char *command)</td></tr>
28

    
29
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g3d5fbb6aae8dda99240ec38108a645af">xbee_lib_init</a> (void)</td></tr>
30

    
31
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the XBee library.  <a href="#g3d5fbb6aae8dda99240ec38108a645af"></a><br></td></tr>
32
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g9334ac71dca1ddd697b1a35a361ade6a">xbee_terminate</a> (void)</td></tr>
33

    
34
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Uninitialize the XBee library.  <a href="#g9334ac71dca1ddd697b1a35a361ade6a"></a><br></td></tr>
35
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g7c44bc25fda954efde574ee8d735073c">xbee_send_packet</a> (char *packet, int len, int dest, char options, char frame)</td></tr>
36

    
37
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a packet to the XBee.  <a href="#g7c44bc25fda954efde574ee8d735073c"></a><br></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g00fbdd9d849171588df736f8b608589d">xbee_get_packet</a> (unsigned char *packet)</td></tr>
39

    
40
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a packet from the XBee.  <a href="#g00fbdd9d849171588df736f8b608589d"></a><br></td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#gde50cbefd7ba8d7361ce2654a298748b">xbee_set_pan_id</a> (int id)</td></tr>
42

    
43
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the PAN ID for the XBee.  <a href="#gde50cbefd7ba8d7361ce2654a298748b"></a><br></td></tr>
44
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g7755cd8db87703c9e9943153660b8052">xbee_get_pan_id</a> (void)</td></tr>
45

    
46
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the XBee's PAN ID.  <a href="#g7755cd8db87703c9e9943153660b8052"></a><br></td></tr>
47
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#gb93170c493c5cdfd43a7b640c6ed1d14">xbee_set_channel</a> (int channel)</td></tr>
48

    
49
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the channel the XBee is currently using.  <a href="#gb93170c493c5cdfd43a7b640c6ed1d14"></a><br></td></tr>
50
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g133706db81f69ba0a3c169b7a3f42d2a">xbee_get_channel</a> (void)</td></tr>
51

    
52
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the channel the XBee is currently using.  <a href="#g133706db81f69ba0a3c169b7a3f42d2a"></a><br></td></tr>
53
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g7c53e8a8492494a61ca306875d633309">xbee_get_address</a> (void)</td></tr>
54

    
55
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the XBee's 16-bit address.  <a href="#g7c53e8a8492494a61ca306875d633309"></a><br></td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1e9e3c2abf0ff683ca8e591c3851cf0a"></a><!-- doxytag: member="xbee::xbee_set_com_port" ref="g1e9e3c2abf0ff683ca8e591c3851cf0a" args="(char *port)" -->
57
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#g1e9e3c2abf0ff683ca8e591c3851cf0a">xbee_set_com_port</a> (char *port)</td></tr>
58

    
59
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the com port on a computer, undefined on the robot. <br></td></tr>
60
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfcfccfa7323041108202275eba913be7"></a><!-- doxytag: member="xbee::xbee_reset" ref="gfcfccfa7323041108202275eba913be7" args="(void)" -->
61
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__xbee.html#gfcfccfa7323041108202275eba913be7">xbee_reset</a> (void)</td></tr>
62

    
63
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reset XBee. <br></td></tr>
64
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
65
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g65685824a9cbbc9da05be520d0d80d12"></a><!-- doxytag: member="xbee::arrival_buf" ref="g65685824a9cbbc9da05be520d0d80d12" args="[XBEE_BUFFER_SIZE]" -->
66
char&nbsp;</td><td class="memItemRight" valign="bottom"><b>arrival_buf</b> [XBEE_BUFFER_SIZE]</td></tr>
67

    
68
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb7ae7d59f0f2dabc258c678996b59b22"></a><!-- doxytag: member="xbee::buffer_last" ref="gb7ae7d59f0f2dabc258c678996b59b22" args="" -->
69
volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>buffer_last</b> = 0</td></tr>
70

    
71
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38080e2a4d6f0497f3c2faf487a0952"></a><!-- doxytag: member="xbee::buffer_first" ref="ga38080e2a4d6f0497f3c2faf487a0952" args="" -->
72
volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>buffer_first</b> = 0</td></tr>
73

    
74
</table>
75
<hr><a name="_details"></a><h2>Detailed Description</h2>
76
Interface with the XBee module. <hr><h2>Function Documentation</h2>
77
<a class="anchor" name="g7c53e8a8492494a61ca306875d633309"></a><!-- doxytag: member="xbee.c::xbee_get_address" ref="g7c53e8a8492494a61ca306875d633309" args="(void)" -->
78
<div class="memitem">
79
<div class="memproto">
80
      <table class="memname">
81
        <tr>
82
          <td class="memname">unsigned int xbee_get_address           </td>
83
          <td>(</td>
84
          <td class="paramname">          </td>
85
          <td>&nbsp;)&nbsp;</td>
86
          <td></td>
87
        </tr>
88
      </table>
89
</div>
90
<div class="memdoc">
91

    
92
<p>
93
Get the 16-bit address of the XBee. This is used to specify who to send messages to and who messages are from.<p>
94
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the 16-bit address of the XBee. </dd></dl>
95

    
96
</div>
97
</div><p>
98
<a class="anchor" name="g133706db81f69ba0a3c169b7a3f42d2a"></a><!-- doxytag: member="xbee.c::xbee_get_channel" ref="g133706db81f69ba0a3c169b7a3f42d2a" args="(void)" -->
99
<div class="memitem">
100
<div class="memproto">
101
      <table class="memname">
102
        <tr>
103
          <td class="memname">int xbee_get_channel           </td>
104
          <td>(</td>
105
          <td class="paramtype">void&nbsp;</td>
106
          <td class="paramname">          </td>
107
          <td>&nbsp;)&nbsp;</td>
108
          <td></td>
109
        </tr>
110
      </table>
111
</div>
112
<div class="memdoc">
113

    
114
<p>
115
Returns the channel which the XBee is currently using.<p>
116
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the channel the XBee is using</dd></dl>
117
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__xbee.html#gb93170c493c5cdfd43a7b640c6ed1d14" title="Set the channel the XBee is currently using.">xbee_set_channel</a> </dd></dl>
118

    
119
</div>
120
</div><p>
121
<a class="anchor" name="g00fbdd9d849171588df736f8b608589d"></a><!-- doxytag: member="xbee.c::xbee_get_packet" ref="g00fbdd9d849171588df736f8b608589d" args="(unsigned char *packet)" -->
122
<div class="memitem">
123
<div class="memproto">
124
      <table class="memname">
125
        <tr>
126
          <td class="memname">int xbee_get_packet           </td>
127
          <td>(</td>
128
          <td class="paramtype">unsigned char *&nbsp;</td>
129
          <td class="paramname"> <em>dest</em>          </td>
130
          <td>&nbsp;)&nbsp;</td>
131
          <td></td>
132
        </tr>
133
      </table>
134
</div>
135
<div class="memdoc">
136

    
137
<p>
138
Reads a packet received from the XBee. This function is non-blocking. The resulting packet is stored in dest. Only returns transmission response packets and received packets. The returned packet does not include header information or the checksum. This method also handles special packets dealt with by the XBee library, and so should be called frequently while the XBee is in use.<br>
139
<br>
140
<p>
141
The first byte of the packet will be either XBEE_TX_STATUS or XBEE_RX to indicated a response to a sent message or a received message, respectively.<br>
142
<br>
143
<p>
144
For a status response packet:<br>
145
 The first byte will be XBEE_TX_STATUS.<br>
146
 The second byte will be the frame number.<br>
147
 The third byte will be the result. 0 indicates success, and nonzero indicates that an error ocurred in transmitting the packet.<br>
148
<br>
149
<p>
150
For a received packet:<br>
151
 The first byte will be XBEE_RX.<br>
152
 The second and third bytes will be the 16-bit address of the packet's sender.<br>
153
 The fourth byte is the signal strength.<br>
154
 The fifth byte is 1 if the packet were sent to a specific address, and 2 if it is a broadcast packet.<br>
155
<br>
156
<p>
157
<dl compact><dt><b>Parameters:</b></dt><dd>
158
  <table border="0" cellspacing="2" cellpadding="0">
159
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>set to the packet data </td></tr>
160
  </table>
161
</dl>
162
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the length of the packet, or -1 if no packet is available </dd></dl>
163

    
164
</div>
165
</div><p>
166
<a class="anchor" name="g7755cd8db87703c9e9943153660b8052"></a><!-- doxytag: member="xbee.c::xbee_get_pan_id" ref="g7755cd8db87703c9e9943153660b8052" args="(void)" -->
167
<div class="memitem">
168
<div class="memproto">
169
      <table class="memname">
170
        <tr>
171
          <td class="memname">unsigned int xbee_get_pan_id           </td>
172
          <td>(</td>
173
          <td class="paramname">          </td>
174
          <td>&nbsp;)&nbsp;</td>
175
          <td></td>
176
        </tr>
177
      </table>
178
</div>
179
<div class="memdoc">
180

    
181
<p>
182
Get the PAN ID for the XBee.<p>
183
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the personal area network id, or XBEE_PAN_DEFAULT if it has not yet been set. </dd></dl>
184

    
185
</div>
186
</div><p>
187
<a class="anchor" name="g3d5fbb6aae8dda99240ec38108a645af"></a><!-- doxytag: member="xbee.c::xbee_lib_init" ref="g3d5fbb6aae8dda99240ec38108a645af" args="(void)" -->
188
<div class="memitem">
189
<div class="memproto">
190
      <table class="memname">
191
        <tr>
192
          <td class="memname">int xbee_lib_init           </td>
193
          <td>(</td>
194
          <td class="paramname">          </td>
195
          <td>&nbsp;)&nbsp;</td>
196
          <td></td>
197
        </tr>
198
      </table>
199
</div>
200
<div class="memdoc">
201

    
202
<p>
203
Initializes the XBee library so that other functions may be used. 
204
</div>
205
</div><p>
206
<a class="anchor" name="g7c44bc25fda954efde574ee8d735073c"></a><!-- doxytag: member="xbee.c::xbee_send_packet" ref="g7c44bc25fda954efde574ee8d735073c" args="(char *packet, int len, int dest, char options, char frame)" -->
207
<div class="memitem">
208
<div class="memproto">
209
      <table class="memname">
210
        <tr>
211
          <td class="memname">int xbee_send_packet           </td>
212
          <td>(</td>
213
          <td class="paramtype">char *&nbsp;</td>
214
          <td class="paramname"> <em>packet</em>, </td>
215
        </tr>
216
        <tr>
217
          <td class="paramkey"></td>
218
          <td></td>
219
          <td class="paramtype">int&nbsp;</td>
220
          <td class="paramname"> <em>len</em>, </td>
221
        </tr>
222
        <tr>
223
          <td class="paramkey"></td>
224
          <td></td>
225
          <td class="paramtype">int&nbsp;</td>
226
          <td class="paramname"> <em>dest</em>, </td>
227
        </tr>
228
        <tr>
229
          <td class="paramkey"></td>
230
          <td></td>
231
          <td class="paramtype">char&nbsp;</td>
232
          <td class="paramname"> <em>options</em>, </td>
233
        </tr>
234
        <tr>
235
          <td class="paramkey"></td>
236
          <td></td>
237
          <td class="paramtype">char&nbsp;</td>
238
          <td class="paramname"> <em>frame</em></td><td>&nbsp;</td>
239
        </tr>
240
        <tr>
241
          <td></td>
242
          <td>)</td>
243
          <td></td><td></td><td></td>
244
        </tr>
245
      </table>
246
</div>
247
<div class="memdoc">
248

    
249
<p>
250
Send the specified packet.<p>
251
<dl compact><dt><b>Parameters:</b></dt><dd>
252
  <table border="0" cellspacing="2" cellpadding="0">
253
    <tr><td valign="top"></td><td valign="top"><em>packet</em>&nbsp;</td><td>the packet data to send </td></tr>
254
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>the number of bytes in the packet</td></tr>
255
    <tr><td valign="top"></td><td valign="top"><em>dest</em>&nbsp;</td><td>the ID of the XBee to send the packet to, or XBEE_BROADCAST to send the message to all robots in the PAN.</td></tr>
256
    <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>a combination of the flags XBEE_OPTIONS_NONE, XBEE_OPTIONS_DISABLE_RESPONSE and XBEE_OPTIONS_BROADCAST_ALL_PANS</td></tr>
257
    <tr><td valign="top"></td><td valign="top"><em>frame</em>&nbsp;</td><td>the frame number to associate this packet with. This will be used to identify the response when the XBee alerts us as to whether or not our message was received. </td></tr>
258
  </table>
259
</dl>
260

    
261
</div>
262
</div><p>
263
<a class="anchor" name="g2fbd69862a11b6bcc5cfdb9f182bcdb9"></a><!-- doxytag: member="xbee.c::xbee_send_read_at_command" ref="g2fbd69862a11b6bcc5cfdb9f182bcdb9" args="(char *command)" -->
264
<div class="memitem">
265
<div class="memproto">
266
      <table class="memname">
267
        <tr>
268
          <td class="memname">int xbee_send_read_at_command           </td>
269
          <td>(</td>
270
          <td class="paramtype">char *&nbsp;</td>
271
          <td class="paramname"> <em>command</em>          </td>
272
          <td>&nbsp;)&nbsp;</td>
273
          <td></td>
274
        </tr>
275
      </table>
276
</div>
277
<div class="memdoc">
278

    
279
<p>
280
Sends an AT command to read a parameter.<p>
281
<dl compact><dt><b>Parameters:</b></dt><dd>
282
  <table border="0" cellspacing="2" cellpadding="0">
283
    <tr><td valign="top"></td><td valign="top"><em>command</em>&nbsp;</td><td>the AT command to send. For exmaple, use ID to read the PAN ID and MY to return the XBee ID. See the XBee reference guide for a complete listing. </td></tr>
284
  </table>
285
</dl>
286

    
287
</div>
288
</div><p>
289
<a class="anchor" name="gb93170c493c5cdfd43a7b640c6ed1d14"></a><!-- doxytag: member="xbee.c::xbee_set_channel" ref="gb93170c493c5cdfd43a7b640c6ed1d14" args="(int channel)" -->
290
<div class="memitem">
291
<div class="memproto">
292
      <table class="memname">
293
        <tr>
294
          <td class="memname">int xbee_set_channel           </td>
295
          <td>(</td>
296
          <td class="paramtype">int&nbsp;</td>
297
          <td class="paramname"> <em>channel</em>          </td>
298
          <td>&nbsp;)&nbsp;</td>
299
          <td></td>
300
        </tr>
301
      </table>
302
</div>
303
<div class="memdoc">
304

    
305
<p>
306
Set the channel the XBee is using.<p>
307
<dl compact><dt><b>Parameters:</b></dt><dd>
308
  <table border="0" cellspacing="2" cellpadding="0">
309
    <tr><td valign="top"></td><td valign="top"><em>channel</em>&nbsp;</td><td>the channel the XBee will not use, between 0x0B and 0x1A</td></tr>
310
  </table>
311
</dl>
312
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__xbee.html#g133706db81f69ba0a3c169b7a3f42d2a" title="Get the channel the XBee is currently using.">xbee_get_channel</a> </dd></dl>
313

    
314
</div>
315
</div><p>
316
<a class="anchor" name="gde50cbefd7ba8d7361ce2654a298748b"></a><!-- doxytag: member="xbee.c::xbee_set_pan_id" ref="gde50cbefd7ba8d7361ce2654a298748b" args="(int id)" -->
317
<div class="memitem">
318
<div class="memproto">
319
      <table class="memname">
320
        <tr>
321
          <td class="memname">int xbee_set_pan_id           </td>
322
          <td>(</td>
323
          <td class="paramtype">int&nbsp;</td>
324
          <td class="paramname"> <em>id</em>          </td>
325
          <td>&nbsp;)&nbsp;</td>
326
          <td></td>
327
        </tr>
328
      </table>
329
</div>
330
<div class="memdoc">
331

    
332
<p>
333
Sets the personal area network id.<p>
334
<dl compact><dt><b>Parameters:</b></dt><dd>
335
  <table border="0" cellspacing="2" cellpadding="0">
336
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>the new personal area network (PAN) id </td></tr>
337
  </table>
338
</dl>
339

    
340
</div>
341
</div><p>
342
<a class="anchor" name="g9334ac71dca1ddd697b1a35a361ade6a"></a><!-- doxytag: member="xbee.c::xbee_terminate" ref="g9334ac71dca1ddd697b1a35a361ade6a" args="(void)" -->
343
<div class="memitem">
344
<div class="memproto">
345
      <table class="memname">
346
        <tr>
347
          <td class="memname">void xbee_terminate           </td>
348
          <td>(</td>
349
          <td class="paramname">          </td>
350
          <td>&nbsp;)&nbsp;</td>
351
          <td></td>
352
        </tr>
353
      </table>
354
</div>
355
<div class="memdoc">
356

    
357
<p>
358
Call when finished using the XBee library. This releases all sued resources. 
359
</div>
360
</div><p>
361
</div>
362
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Nov 24 12:45:55 2009 for Colony by&nbsp;
363
<a href="http://www.doxygen.org/index.html">
364
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
365
</body>
366
</html>