40 #ifndef NRF24NETWORK_H
41 #define NRF24NETWORK_H
43 #include "project_settings.h"
59 uint16_t to_branch: 3;
60 uint16_t from_leaf: 3;
61 uint16_t from_branch: 3;
62 uint16_t multi_msg: 1;
72 #define NRF24_CHANNEL_BRANCH_1 30
73 #define NRF24_CHANNEL_BRANCH_2 34
74 #define NRF24_CHANNEL_BRANCH_3 38
75 #define NRF24_CHANNEL_BRANCH_4 42
76 #define NRF24_CHANNEL_BRANCH_5 46
77 #define NRF24_CHANNEL_BRANCH_6 50
79 #define NRF24_ADDRESS_MASK 0x6C6C6C7800
81 #define NRF24_MIN_WINDOW_MS 8 //TODO change this to 4
82 #define NRF24_BRANCH_WINDOW_MS 7 //TODO change this to 4
83 #define NRF24_TICK_MS 2 //TODO change this to 1
84 #define NRF24_MISSING_NODE_TIMEOUT 100 //TODO make this larger
178 #define NRFNET_MSG_BUFFER_LENGTH 16
207 void nrf24_NetworkInit(
void (*ce)(uint8_t),
void (*csn)(uint8_t), uint8_t spi_channel);
272 #define nrf24_NetworkISRHandlerN(net) nRF24_ISR(&net.radio)
uint32_t child_time[6]
Definition: nrf24network.h:187
nrf24_handler_fn_t sensor_handler[LAST_SENSOR_ID]
Definition: nrf24network.h:194
nrf24_msg_id
Definition: nrf24network.h:87
Thing->Brainframe, data is score (1 great job)
Definition: nrf24network.h:122
uint8_t channel[6]
Definition: nrf24network.h:190
void nrf24_NetworkInitN(nrfnet_t *net, void(*ce)(uint8_t), void(*csn)(uint8_t), uint8_t spi_channel, uint8_t node)
Definition: nrf24network.c:139
Definition: nrf24network.h:154
void nrf24_RegisterSensorHandler(enum nrf24_sensor_msg sensor_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:284
uint8_t sys_id
Definition: nrf24network.h:181
Brainframe->Thing, data is difficulty.
Definition: nrf24network.h:120
Definition: nrf24network.h:101
Definition: nrf24network.h:168
reserved name to determine number of messages supported
Definition: nrf24network.h:125
Definition: nrf24network.h:107
built-in / Jon W.
Definition: nrf24network.h:91
nrf24_system_msg
Definition: nrf24network.h:98
Definition: nrf24network.h:150
Definition: nrf24network.h:152
Definition: nrf24network.h:151
Branch 5 - Muhlbaier's Fav. Clinic.
Definition: nrf24network.h:145
Definition: nrf24network.h:114
nrfnet_msg_t msg_buf[NRFNET_MSG_BUFFER_LENGTH]
Definition: nrf24network.h:191
Used to remotely kill (reset) a node on the network.
Definition: nrf24network.h:93
reserved name to determine number of control msgs supported
Definition: nrf24network.h:109
uint8_t child
Definition: nrf24network.h:173
Definition: nrf24network.h:134
nrf24_handler_fn_t handler[LAST_MSG_ID]
Definition: nrf24network.h:192
Definition: nrf24network.h:139
Brainframe->Thing, data is difficulty.
Definition: nrf24network.h:119
reserved name to determine number of message IDs supported
Definition: nrf24network.h:95
Branch 2 - RedBulls.
Definition: nrf24network.h:135
uint16_t word
Definition: nrf24network.h:55
enum pipe_status_e child_status[6]
Definition: nrf24network.h:189
Definition: nrf24network.h:146
volatile uint8_t current_child
Definition: nrf24network.h:186
Definition: nrf24network.h:160
void nrf24_RegisterControlHandler(enum nrf24_control_msg control_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:275
general sensor msg / max payload 4+ bytes
Definition: nrf24network.h:90
nrf24_sensor_msg
Definition: nrf24network.h:113
Thing->Brainframe, data is error code (TBD)
Definition: nrf24network.h:123
void nrf24_RegisterSensorHandlerN(nrfnet_t *net, enum nrf24_sensor_msg sensor_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:287
Definition: nrf24network.h:108
Definition: nrf24network.h:153
nrf24_t radio
Definition: nrf24network.h:180
Definition: nrf24network.h:138
void nrf24_NetworkInit(void(*ce)(uint8_t), void(*csn)(uint8_t), uint8_t spi_channel)
Initialize nRF24 Network Module.
Definition: nrf24network.c:136
void nrf24_SendMsgN(nrfnet_t *net, uint8_t to, enum nrf24_msg_id msg_id, uint8_t *data, uint8_t len)
Definition: nrf24network.c:220
uint8_t node
Definition: nrf24network.h:182
Definition: nrf24network.h:148
pipe_status_e
Definition: nrf24network.h:165
Definition: nrf24network.h:137
char name[5]
Definition: nrf24network.h:183
Branch 6 - Scrumshank Redemption.
Definition: nrf24network.h:149
nrfstate_e
Definition: nrf24network.h:157
Definition: nrf24network.h:158
Definition: nrf24network.h:132
nrfrole_e
Definition: nrf24network.h:163
#define NRFNET_MSG_BUFFER_LENGTH
Definition: nrf24network.h:178
reserved name to determine number of sensors supported
Definition: nrf24network.h:115
Definition: nrf24network.h:99
Brainframe->Thing, data is difficulty.
Definition: nrf24network.h:124
void nrf24_RegisterControlHandlerN(nrfnet_t *net, enum nrf24_control_msg control_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:278
nrf24_thief_msg
Definition: nrf24network.h:118
uint8_t length
Definition: nrf24network.h:172
Branch 4 - TeamSupreme.
Definition: nrf24network.h:140
Definition: nrf24network.h:100
Definition: nrf24network.h:163
Definition: nrf24network.h:142
enum nrfrole_e role
Definition: nrf24network.h:184
nrf24_handler_fn_t control_handler[LAST_CONTROL_ID]
Definition: nrf24network.h:193
Definition: nrf24network.h:144
uint32_t switch_to_tx_time
Definition: nrf24network.h:188
void nrf24_Ping(uint8_t to)
Definition: nrf24network.c:499
Definition: nrf24network.h:54
nrf24_address
Definition: nrf24network.h:128
Definition: nrf24network.h:133
uint8_t age
Definition: nrf24network.h:174
Definition: nrf24network.h:167
Definition: nrf24network.h:102
Branch 3 - SmartHomies.
Definition: nrf24network.h:136
char * NameFromAddress(uint8_t address)
Definition: nrf24network.c:526
void nrf24_SendMsg(uint8_t to, enum nrf24_msg_id msg_id, uint8_t *data, uint8_t len)
Definition: nrf24network.c:216
Definition: nrf24network.h:179
Used for testing the network.
Definition: nrf24network.h:92
Used to support the Theif class project.
Definition: nrf24network.h:94
void nrf24_RegisterMsgHandlerN(nrfnet_t *net, enum nrf24_msg_id msg_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:206
Thing->Brainframe, data is score (1 barely tripped)
Definition: nrf24network.h:121
uint8_t AddressFromName(char *name)
Definition: nrf24network.c:533
Definition: nrf24network.h:159
Definition: nrf24network.h:143
Definition: nrf24network.h:166
Branch 1 - ScrumPun.
Definition: nrf24network.h:131
Definition: nrf24network.h:171
void nrf24_NetworkISRHandler(void)
Definition: nrf24network.c:890
general control msg / max payload 5+ bytes
Definition: nrf24network.h:89
void nrf24_RegisterMsgHandler(enum nrf24_msg_id msg_id, nrf24_handler_fn_t fn_ptr)
Definition: nrf24network.c:203
built-in / MM
Definition: nrf24network.h:88
Definition: nrf24network.h:163
Brainframe / Scrumshank Redemption.
Definition: nrf24network.h:130
void(* nrf24_handler_fn_t)(uint8_t *data, uint8_t len, uint8_t from)
Definition: nrf24network.h:49
Definition: nrf24network.h:163
Definition: nrf24network.h:147
Definition: nrf24network.h:141
enum nrfstate_e state
Definition: nrf24network.h:185
nrf24_control_msg
Definition: nrf24network.h:106