00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef _MOTE_NETWORKING_H_
00036 #define _MOTE_NETWORKING_H_
00037
00038 #include "sensix.h"
00039 #include "mote_types.h"
00040 #include "mote_sensix.h"
00041
00042
00043 enum { REDISCOVER_TIME = 100, REDISCOVER_OFFSET = 2 };
00044 enum { REDISCOVER_RESET = (3 * REDISCOVER_TIME / 4), };
00045
00046 enum { METADATA = 1, DATA = 2, CMD = 3, };
00047
00048 enum { PROTOCOL=0xff, VERSION=0x01, };
00049
00050 enum { HEADER_SIZE = 5, MAX_MSG_SIZE = 112, };
00051
00052 typedef struct _msg_header {
00053 byte_t magic;
00054 byte_t version;
00055 byte_t flags;
00056 byte_t type;
00057 byte_t size;
00058 } msg_hdr_t;
00059
00060 byte_t load_header(byte_t*, byte_t, byte_t);
00061 byte_t parse_packet(byte_t*, uint_t, uint_t);
00062 void xmit_data(functor*);
00063 void xmit_datum(functor*);
00064 void xmit_metadata(byte_t, uint_t);
00065 void xmit_command(functor*);
00066 void rediscovery(uint_t);
00067
00068
00069 #endif // _MOTE_NETWORKING_H_