root / trunk / code / projects / libwireless / lib / wl_basic.c @ 1380
History | View | Annotate | Download (2.03 KB)
1 |
/**
|
---|---|
2 |
* @file wl_basic.c
|
3 |
* @brief High Level Wireless Packet Sending-Receiving Functions
|
4 |
*
|
5 |
* Abstracted wireless functionality for sending and receiving packets
|
6 |
*
|
7 |
* @author Christopher Mar, Colony Project, CMU Robotics Club
|
8 |
**/
|
9 |
|
10 |
#include <wireless.h> |
11 |
#include "wl_basic.h" |
12 |
|
13 |
/**
|
14 |
* Wrapper for wl_init().
|
15 |
* Initializes wireless and registers a
|
16 |
* packet handler function for Basic Group.
|
17 |
*
|
18 |
* @param handle_receive function pointer to handler function for Basic Group
|
19 |
* @return 0 on success, -1 on error
|
20 |
**/
|
21 |
int wl_basic_init( void(*handle_receive) (char type, int source, |
22 |
unsigned char* packet, int length) ) { |
23 |
int returnme = wl_init();
|
24 |
wl_basic_register_handler(handle_receive); |
25 |
return returnme;
|
26 |
} |
27 |
|
28 |
/**
|
29 |
* Internal function to register a packet group handler for Basic Group
|
30 |
*
|
31 |
* @param handle_receive function pointer to handler function for Basic Group
|
32 |
**/
|
33 |
void wl_basic_register_handler( void (*handle_receive) (char type, int source, |
34 |
unsigned char* packet, int length)) { |
35 |
wl_basic_group_handler.groupCode = WL_BASIC_GROUP; |
36 |
wl_basic_group_handler.timeout_handler = 0;
|
37 |
wl_basic_group_handler.handle_response = 0;
|
38 |
wl_basic_group_handler.handle_receive = handle_receive; |
39 |
wl_basic_group_handler.unregister = 0;
|
40 |
|
41 |
wl_register_packet_group(&wl_basic_group_handler); |
42 |
} |
43 |
|
44 |
/**
|
45 |
* Send a packet to a single robot in Basic Group
|
46 |
*
|
47 |
* @param type Packet type
|
48 |
* @param data Packet buffer, data you want to send
|
49 |
* @param len Length of the data buffer in bytes
|
50 |
* @dest Robot ID of the destination robot
|
51 |
**/
|
52 |
void wl_basic_send_robot_packet( char type, char* data, int len, int dest ) { |
53 |
wl_send_robot_to_robot_global_packet(WL_BASIC_GROUP, type, data, len, dest, 0);
|
54 |
} |
55 |
|
56 |
/**
|
57 |
* Send a packet to all robots in Basic Group
|
58 |
*
|
59 |
* @param type Packet type
|
60 |
* @param data Packet buffer, data you want to send
|
61 |
* @param len Length of the data buffer in bytes
|
62 |
**/
|
63 |
void wl_basic_send_global_packet( char type, char* data, int len ) { |
64 |
wl_send_global_packet(WL_BASIC_GROUP, type, data, len, 0);
|
65 |
} |
66 |
|