Project

General

Profile

Revision 737

Updated wireless documentation.

View differences:

wireless_8h-source.html
16 16
<h1>wireless.h</h1><a href="wireless_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
17 17
<a name="l00035"></a>00035 <span class="preprocessor">#ifndef WIRELESS_H</span>
18 18
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define WIRELESS_H</span>
19
<a name="l00037"></a>00037 <span class="preprocessor"></span> 
19
<a name="l00037"></a>00037 <span class="preprocessor"></span>
20 20
<a name="l00038"></a>00038 <span class="comment">//Note: If this is raised above 16, we will need to do</span>
21 21
<a name="l00039"></a>00039 <span class="comment">//something about frame numbers for TX Status packets.</span>
22
<a name="l00043"></a><a class="code" href="wireless_8h.html#f083cc95511287866eeb4337fdc75eeb">00043</a> <span class="comment"></span><span class="preprocessor">#define WL_MAX_PACKET_GROUPS 16</span>
23
<a name="l00044"></a>00044 <span class="preprocessor"></span>
24
<a name="l00075"></a><a class="code" href="structPacketGroupHandler.html">00075</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
25
<a name="l00076"></a>00076 {
26
<a name="l00082"></a><a class="code" href="structPacketGroupHandler.html#f0849c643f1b1e257ccfe96110109950">00082</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> groupCode;
27
<a name="l00083"></a>00083 
28
<a name="l00088"></a>00088         void (*timeout_handler) (void);
29
<a name="l00089"></a>00089         
30
<a name="l00099"></a>00099         void (*handle_response) (<span class="keywordtype">int</span> frame, <span class="keywordtype">int</span> received);
31
<a name="l00100"></a>00100         
32
<a name="l00110"></a>00110         void (*handle_receive) (<span class="keywordtype">char</span> type, <span class="keywordtype">int</span> source, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* packet,
33
<a name="l00111"></a>00111                                                         <span class="keywordtype">int</span> length);
34
<a name="l00112"></a>00112         
35
<a name="l00116"></a>00116         void (*unregister) (void);
36
<a name="l00117"></a>00117         
37
<a name="l00118"></a>00118 } <a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>;
38
<a name="l00119"></a>00119 
39
<a name="l00121"></a>00121 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g629ceefdf83847af356d90e2df27041c" title="Initialize the wireless library.">wl_init</a>(<span class="keywordtype">void</span>);
40
<a name="l00123"></a>00123 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g66075ff87a1c9f2c0d7938a26c7830f2" title="Uninitialize the wireless library.">wl_terminate</a>(<span class="keywordtype">void</span>);
41
<a name="l00125"></a>00125 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g5c1f1a0e20fc718e59edc29246afd703" title="Perform wireless library functionality.">wl_do</a>(<span class="keywordtype">void</span>);
42
<a name="l00127"></a>00127 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g183343ed0594ec1c2b79bb4085d57107" title="Register a packet group with the wireless library.">wl_register_packet_group</a>(<a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>* h);
43
<a name="l00129"></a>00129 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#gcdbedf6465798abc7af3bf5fea3d4dd7" title="Unregister a packet group with the wireless library.">wl_unregister_packet_group</a>(<a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>* h);
44
<a name="l00130"></a>00130 
45
<a name="l00132"></a>00132 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#ga7175b13dbfc0b11b341fbe0ad7c637c" title="Send a packet to a specific robot in any PAN.">wl_send_robot_to_robot_global_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type,
46
<a name="l00133"></a>00133                 <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> dest, <span class="keywordtype">char</span> frame);
47
<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#gafaca74445d215cef2b2e0ae1a1c72ba" title="Send a packet to a specific robot in our PAN.">wl_send_robot_to_robot_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type,
48
<a name="l00136"></a>00136                 <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> dest, <span class="keywordtype">char</span> frame);
49
<a name="l00138"></a>00138 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#gdd534c99c49d5207fe09f02af304c1ad" title="Send a packet to all robots.">wl_send_global_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type,
50
<a name="l00139"></a>00139                 <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> frame);
51
<a name="l00141"></a>00141 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g0a1a0e4d885f0e0dde87160a16daa0aa" title="Send a packet to all robots in our PAN.">wl_send_pan_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type,
52
<a name="l00142"></a>00142                 <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> frame);
53
<a name="l00143"></a>00143 
54
<a name="l00145"></a>00145 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g211ccf907dce4493813573e20264e542" title="Set the PAN we are using.">wl_set_pan</a>(<span class="keywordtype">int</span> pan);
55
<a name="l00147"></a>00147 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g4e6b5c97d40a8e7557a1b4b90a7d34f7" title="Get the PAN we are using.">wl_get_pan</a>(<span class="keywordtype">void</span>);
56
<a name="l00149"></a>00149 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g9aac809e57c9eb93a2905ed544c93aba" title="Set the channel we are using.">wl_set_channel</a>(<span class="keywordtype">int</span> channel);
57
<a name="l00151"></a>00151 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g2d65d3e35b193da4213755c4bf61ab6b" title="Get the channel we are using.">wl_get_channel</a>(<span class="keywordtype">void</span>);
58
<a name="l00153"></a>00153 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g90cb41c855ac3da028e8f1278bd49f4f" title="Get the 16-bit address of the XBee module.">wl_get_xbee_id</a>(<span class="keywordtype">void</span>);
59
<a name="l00155"></a>00155 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g344dead0023100eb40f8670a92c9ce5c" title="Set the com port on a computer, undefined on the robot.">wl_set_com_port</a>(<span class="keywordtype">char</span>* port);
60
<a name="l00156"></a>00156  <span class="comment">// end defgroup</span>
61
<a name="l00158"></a>00158 
62
<a name="l00159"></a>00159 <span class="preprocessor">#endif</span>
63
<a name="l00160"></a>00160 <span class="preprocessor"></span>
64
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Thu Nov 8 23:27:22 2007 for libwireless by&nbsp;
22
<a name="l00043"></a>00043 <span class="comment"></span><span class="comment">//TODO: a PacketGroupHandler is at least 10 bytes (I don't know if function pointers are 2 bytes</span>
23
<a name="l00044"></a>00044 <span class="comment">// or 4 bytes).  That means that in the c file, your array of packet groups is at least 160 bytes.</span>
24
<a name="l00045"></a>00045 <span class="comment">// Normally that might be fine (the robot's avr chips have 4k SRAM), but austin's chip only has</span>
25
<a name="l00046"></a>00046 <span class="comment">// 1k SRAM, so if this number can be reduced or if the size of the struct could be reduced, that would be a plus.</span>
26
<a name="l00047"></a><a class="code" href="wireless_8h.html#f083cc95511287866eeb4337fdc75eeb">00047</a> <span class="preprocessor">#define WL_MAX_PACKET_GROUPS 16</span>
27
<a name="l00048"></a>00048 <span class="preprocessor"></span>
28
<a name="l00079"></a>00079 <span class="comment">//TODO: the order of member variables in this struct should be changed in case the compile packs the struct</span>
29
<a name="l00080"></a>00080 <span class="comment">// In order to achieve the best packing, the variables should be listed in order of decreasing memory size.</span>
30
<a name="l00081"></a>00081 <span class="comment">// Thus, pointers should be first, followed by int, followed by char.</span>
31
<a name="l00082"></a><a class="code" href="structPacketGroupHandler.html">00082</a> <span class="keyword">typedef</span> <span class="keyword">struct</span>
32
<a name="l00083"></a>00083 {
33
<a name="l00089"></a>00089   <span class="comment">//TODO: if this number must be less than or equal to WL_MAX_PACKET_GROUPS, don't you only need</span>
34
<a name="l00090"></a>00090   <span class="comment">// one byte for it and it can be made an unsigned char?</span>
35
<a name="l00091"></a><a class="code" href="structPacketGroupHandler.html#f0849c643f1b1e257ccfe96110109950">00091</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> groupCode;
36
<a name="l00092"></a>00092 
37
<a name="l00097"></a>00097         void (*timeout_handler) (void);
38
<a name="l00098"></a>00098 
39
<a name="l00108"></a>00108         void (*handle_response) (<span class="keywordtype">int</span> frame, <span class="keywordtype">int</span> received);
40
<a name="l00109"></a>00109 
41
<a name="l00119"></a>00119         void (*handle_receive) (<span class="keywordtype">char</span> type, <span class="keywordtype">int</span> source, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* packet, <span class="keywordtype">int</span> length);
42
<a name="l00120"></a>00120 
43
<a name="l00124"></a>00124         void (*unregister) (void);
44
<a name="l00125"></a>00125 
45
<a name="l00126"></a>00126 } <a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>;
46
<a name="l00127"></a>00127 
47
<a name="l00129"></a>00129 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#gedd4562415e273ce6537f9c1a0f2701b" title="Initialize the wireless library.">wl_init</a>(<span class="keywordtype">void</span>);
48
<a name="l00131"></a>00131 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g66075ff87a1c9f2c0d7938a26c7830f2" title="Uninitialize the wireless library.">wl_terminate</a>(<span class="keywordtype">void</span>);
49
<a name="l00133"></a>00133 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g5c1f1a0e20fc718e59edc29246afd703" title="Perform wireless library functionality.">wl_do</a>(<span class="keywordtype">void</span>);
50
<a name="l00135"></a>00135 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g183343ed0594ec1c2b79bb4085d57107" title="Register a packet group with the wireless library.">wl_register_packet_group</a>(<a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>* h);
51
<a name="l00137"></a>00137 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#gcdbedf6465798abc7af3bf5fea3d4dd7" title="Unregister a packet group with the wireless library.">wl_unregister_packet_group</a>(<a class="code" href="structPacketGroupHandler.html">PacketGroupHandler</a>* h);
52
<a name="l00138"></a>00138 
53
<a name="l00140"></a>00140 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g6e841a6ef0504538d8650a0a2f5fa869" title="Send a packet to a specific robot in any PAN.">wl_send_robot_to_robot_global_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type, <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> dest, <span class="keywordtype">char</span> frame);
54
<a name="l00142"></a>00142 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#gf8fbadf62eeb754b98b200328fb7a8be" title="Send a packet to a specific robot in our PAN.">wl_send_robot_to_robot_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type, <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">int</span> dest, <span class="keywordtype">char</span> frame);
55
<a name="l00144"></a>00144 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#gda6b187ea58cee5aec18725bf7f24b9a" title="Send a packet to all robots.">wl_send_global_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type, <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> frame);
56
<a name="l00146"></a>00146 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g0a1a0e4d885f0e0dde87160a16daa0aa" title="Send a packet to all robots in our PAN.">wl_send_pan_packet</a>(<span class="keywordtype">char</span> group, <span class="keywordtype">char</span> type, <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> len, <span class="keywordtype">char</span> frame);
57
<a name="l00147"></a>00147 
58
<a name="l00149"></a>00149 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g754445d2353a70963a489651cff554c1" title="Set the PAN we are using.">wl_set_pan</a>(<span class="keywordtype">int</span> pan);
59
<a name="l00151"></a>00151 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g4e6b5c97d40a8e7557a1b4b90a7d34f7" title="Get the PAN we are using.">wl_get_pan</a>(<span class="keywordtype">void</span>);
60
<a name="l00153"></a>00153 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g51d3fe958d44fd92f0e0830ced13139d" title="Set the channel we are using.">wl_set_channel</a>(<span class="keywordtype">int</span> channel);
61
<a name="l00155"></a>00155 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g2d65d3e35b193da4213755c4bf61ab6b" title="Get the channel we are using.">wl_get_channel</a>(<span class="keywordtype">void</span>);
62
<a name="l00157"></a>00157 <span class="keywordtype">int</span> <a class="code" href="group__wireless.html#g6c75a84ff5f9a2bdc156aba522d2adf7" title="Get the 16-bit address of the XBee module.">wl_get_xbee_id</a>(<span class="keywordtype">void</span>);
63
<a name="l00159"></a>00159 <span class="keywordtype">void</span> <a class="code" href="group__wireless.html#g344dead0023100eb40f8670a92c9ce5c" title="Set the com port on a computer, undefined on the robot.">wl_set_com_port</a>(<span class="keywordtype">char</span>* port);
64
<a name="l00160"></a>00160  <span class="comment">// end defgroup</span>
65
<a name="l00162"></a>00162 
66
<a name="l00163"></a>00163 <span class="preprocessor">#endif</span>
67
<a name="l00164"></a>00164 <span class="preprocessor"></span>
68
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Apr 28 17:49:53 2008 for libwireless by&nbsp;
65 69
<a href="http://www.doxygen.org/index.html">
66 70
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
67 71
</body>

Also available in: Unified diff