embedded-software
reusable software modules for embedded systems
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nrf24network.h File Reference
#include "project_settings.h"
#include <stdint.h>
#include "timing.h"
#include "nrf24.h"
Include dependency graph for nrf24network.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  nrfnet_address_t
 
struct  nrfnet_msg_t
 
struct  nrfnet_s
 

Macros

#define NRF24_CHANNEL_BRANCH_1   30
 
#define NRF24_CHANNEL_BRANCH_2   34
 
#define NRF24_CHANNEL_BRANCH_3   38
 
#define NRF24_CHANNEL_BRANCH_4   42
 
#define NRF24_CHANNEL_BRANCH_5   46
 
#define NRF24_CHANNEL_BRANCH_6   50
 
#define NRF24_ADDRESS_MASK   0x6C6C6C7800
 
#define NRF24_MIN_WINDOW_MS   8
 
#define NRF24_BRANCH_WINDOW_MS   7
 
#define NRF24_TICK_MS   2
 
#define NRF24_MISSING_NODE_TIMEOUT   100
 
#define NRFNET_MSG_BUFFER_LENGTH   16
 
#define nrf24_NetworkISRHandlerN(net)   nRF24_ISR(&net.radio)
 

Typedefs

typedef void(* nrf24_handler_fn_t )(uint8_t *data, uint8_t len, uint8_t from)
 
typedef struct nrfnet_s nrfnet_t
 

Enumerations

enum  nrf24_msg_id {
  SYSTEM_MSG = 0, CONTROL_MSG, SENSOR_MSG, CHAT_MSG,
  TEST_MSG, KILL_MSG, THIEF_MSG, LAST_MSG_ID
}
 
enum  nrf24_system_msg { NULL_MSG = 0, PING_MSG, PING_RESPONSE_MSG, SPAM_MSG }
 
enum  nrf24_control_msg { ONBOARD_LED, LINEAR_ACTUATOR, LAST_CONTROL_ID }
 
enum  nrf24_sensor_msg { TEMPERATURE_SENSOR, LAST_SENSOR_ID }
 
enum  nrf24_thief_msg {
  ARM_MSG, DISARM_MSG, TRIP_MSG, ACCESS_MSG,
  ERROR_MSG, DIFFICULTY_MSG, LAST_THIEF_ID
}
 
enum  nrf24_address {
  MASTER = 0x00, SCRUM_PUN = 0x08, BALL_TRAP, TOMS_PAD,
  NOODLE, MOUSE_TRAP = 0x10, ULTRASONIC = 0x18, DAN,
  CAM, JAKE, SUPREME = 0x20, BOT,
  SNEAK, LASER, SIMON, OGLAZERBOIZ = 0x28,
  OGLAZ2, LOCK_PICK, PIEZO, MIKE = 0x30,
  SORCE, MALONEY, MUHLBAIER, LAST_ADDRESS,
  ALL_ALL = 0x3F
}
 
enum  nrfstate_e { NRFNET_INITIALIZED = 0x00, NRFNET_NORMAL_STATE = 0x00, NRFNET_WAITING_FOR_MIN_WINDOW }
 
enum  nrfrole_e { ROLE_MASTER, ROLE_BRANCH, ROLE_LEAF }
 
enum  pipe_status_e { CHILD_INITIALIZED, CHILD_ACTIVE, CHILD_MISSING }
 

Functions

void nrf24_NetworkInit (void(*ce)(uint8_t), void(*csn)(uint8_t), uint8_t spi_channel)
 Initialize nRF24 Network Module. More...
 
void nrf24_NetworkInitN (nrfnet_t *net, void(*ce)(uint8_t), void(*csn)(uint8_t), uint8_t spi_channel, uint8_t node)
 
void nrf24_RegisterMsgHandler (enum nrf24_msg_id msg_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_RegisterMsgHandlerN (nrfnet_t *net, enum nrf24_msg_id msg_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_SendMsg (uint8_t to, enum nrf24_msg_id msg_id, uint8_t *data, uint8_t len)
 
void nrf24_SendMsgN (nrfnet_t *net, uint8_t to, enum nrf24_msg_id msg_id, uint8_t *data, uint8_t len)
 
void nrf24_RegisterControlHandler (enum nrf24_control_msg control_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_RegisterControlHandlerN (nrfnet_t *net, enum nrf24_control_msg control_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_RegisterSensorHandler (enum nrf24_sensor_msg sensor_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_RegisterSensorHandlerN (nrfnet_t *net, enum nrf24_sensor_msg sensor_id, nrf24_handler_fn_t fn_ptr)
 
void nrf24_NetworkISRHandler (void)
 
void nrf24_Ping (uint8_t to)
 
char * NameFromAddress (uint8_t address)
 
uint8_t AddressFromName (char *name)
 

Detailed Description

Author
Michael Muhlbaier