38 #ifndef NRF24NETWORK_H
39 #define NRF24NETWORK_H
52 uint16_t to_branch: 3;
53 uint16_t from_leaf: 3;
54 uint16_t from_branch: 3;
55 uint16_t multi_msg: 1;
65 #define NRF24_CHANNEL_BRANCH_1 30
66 #define NRF24_CHANNEL_BRANCH_2 34
67 #define NRF24_CHANNEL_BRANCH_3 38
68 #define NRF24_CHANNEL_BRANCH_4 42
69 #define NRF24_CHANNEL_BRANCH_5 46
70 #define NRF24_CHANNEL_BRANCH_6 50
72 #define NRF24_ADDRESS_MASK 0x6C6C6C7800
74 #define NRF24_MIN_WINDOW_MS 200 //TODO change this to 4
75 #define NRF24_BRANCH_WINDOW_MS 100 //TODO change this to 4
76 #define NRF24_TICK_MS 10 //TODO change this to 1
77 #define NRF24_MISSING_NODE_TIMEOUT 500
99 enum nrf24_system_msg {
136 BLAZEJEWSKI_ALL = 0x17,
158 NRFNET_INITIALIZED = 0x00,
159 NRFNET_NORMAL_STATE = 0x00,
160 NRFNET_WAITING_FOR_MIN_WINDOW
163 enum nrfrole_e {ROLE_MASTER, ROLE_BRANCH, ROLE_LEAF};
178 #define NRFNET_MSG_BUFFER_LENGTH 16
185 enum nrfstate_e state;
186 volatile uint8_t current_child;
189 enum pipe_status_e child_status[6];
207 void nrf24_NetworkInit(
void (*ce)(uint8_t),
void (*csn)(uint8_t), uint8_t spi_channel);
208 void nrf24_NetworkInitN(
nrfnet_t * net,
void (*ce)(uint8_t),
void (*csn)(uint8_t), uint8_t spi_channel, uint8_t node);
245 void nrf24_SendMsgN(
nrfnet_t * net, uint8_t to,
enum nrf24_msg_id msg_id, uint8_t * data, uint8_t len);
271 void nrf24_NetworkISRHandler(
void);
272 #define nrf24_NetworkISRHandlerN(net) nRF24_ISR(&net.radio)
Used for testing the network.
Definition: nrf24network.h:95
void nrf24_SendMsg(uint8_t to, enum nrf24_msg_id msg_id, uint8_t *data, uint8_t len)
Definition: nrf24network.c:189
nrf24_msg_id
Definition: nrf24network.h:80
#define tint_t
Definition: timing.h:26
A Team.
Definition: nrf24network.h:92
nrf24_control_msg
Definition: nrf24network.h:104
Merlino.
Definition: nrf24network.h:94
void(* nrf24_handler_fn_t)(uint8_t *data, uint8_t len, uint8_t from)
Definition: nrf24network.h:42
George L.
Definition: nrf24network.h:88
Lee, Dan, Eric, and Lee aka Team James Ritchie III.
Definition: nrf24network.h:91
Matt and Tom.
Definition: nrf24network.h:90
built-in / Jon W.
Definition: nrf24network.h:84
void nrf24_NetworkInit(void(*ce)(uint8_t), void(*csn)(uint8_t), uint8_t spi_channel)
Initialize nRF24 Network Module.
Definition: nrf24network.c:111
Jimmy+Josh.
Definition: nrf24network.h:89
Jon W. Name TBD.
Definition: nrf24network.h:86
general sensor msg / max payload 4+ bytes
Definition: nrf24network.h:83
reserved name to determine number of control msgs supported
Definition: nrf24network.h:109
reserved name to determine number of message IDs supported
Definition: nrf24network.h:96
general control msg / max payload 5+ bytes
Definition: nrf24network.h:82
Know.
Definition: nrf24network.h:93
void nrf24_RegisterMsgHandler(enum nrf24_msg_id msg_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:176
Definition: nrf24network.h:47
uint8_t AddressFromName(char *name)
Definition: nrf24network.c:443
Team Enigma.
Definition: nrf24network.h:87
void nrf24_RegisterSensorHandler(enum nrf24_sensor_msg sensor_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:257
char * NameFromAddress(uint8_t address)
Definition: nrf24network.c:436
Definition: nrf24network.h:179
Jon W. Name TBD.
Definition: nrf24network.h:85
built-in / MM
Definition: nrf24network.h:81
nrf24_sensor_msg
Definition: nrf24network.h:113
reserved name to determine number of sensors supported
Definition: nrf24network.h:117
Definition: nrf24network.h:171
void nrf24_RegisterControlHandler(enum nrf24_control_msg control_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:248