RF24Mesh  V1.0.3b
A user friendly mesh overlay for sensor networks using RF24Network and nRF24L01 radio modules
RF24Mesh_Example_Master.cpp

Raspberry Pi Example Sketch
This example sketch shows how to manually configure a node via RF24Mesh as a master node, which will receive all data from sensor nodes.

The nodes can change physical or logical position in the network, and reconnect through different routing nodes as required. The master node manages the address assignments for the individual nodes in a manner similar to DHCP.

#include <RF24/RF24.h>
#include <RF24Network/RF24Network.h>
RF24 radio(RPI_V2_GPIO_P1_15, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ);
RF24Network network(radio);
int main(int argc, char** argv) {
// Set the nodeID to 0 for the master node
// Connect to the mesh
printf("start\n");
radio.printDetails();
while(1)
{
// Call network.update as usual to keep the network updated
// In addition, keep the 'DHCP service' running on the master node so addresses will
// be assigned to the sensor nodes
// Check for incoming data from the sensors
while(network.available()){
// printf("rcv\n");
RF24NetworkHeader header;
network.peek(header);
uint32_t dat=0;
switch(header.type){
// Display the incoming millis() values from the sensor nodes
case 'M': network.read(header,&dat,sizeof(dat));
printf("Rcv %u from 0%o\n",dat,header.from_node);
break;
default: network.read(header,0,0);
printf("Rcv bad type %d from 0%o\n",header.type,header.from_node);
break;
}
}
delay(2);
}
return 0;
}