#include #define RXADDR 0x586F2E10 // Address of this device #define TXADDR 0xFE4CA6E5 // Address of device to send to #define PACKET_NONE 0 #define PACKET_OK 1 #define PACKET_INVALID 2 static volatile uint8_t packetStatus; void NRF905_CB_RXCOMPLETE(void) { packetStatus = PACKET_OK; nRF905_standby(); } void NRF905_CB_RXINVALID(void) { packetStatus = PACKET_INVALID; nRF905_standby(); } void setup() { Serial.begin(9600); Serial.println(F("Server started")); // Start up nRF905_init(); // Set address of this device nRF905_setListenAddress(RXADDR); // Put into receive mode nRF905_RX(); } void loop() { // Put into receive mode nRF905_RX(); //Serial.println(packetStatus); // Wait for data while(packetStatus == PACKET_NONE); if(packetStatus != PACKET_OK) { packetStatus = PACKET_NONE; nRF905_RX(); } else { //Serial.println(packetStatus); packetStatus = PACKET_NONE; // Make buffer for data uint8_t textBuffer[NRF905_MAX_PAYLOAD]; nRF905_read(textBuffer, sizeof(textBuffer)); for(int i = 0; i < sizeof(textBuffer); i++) { if(textBuffer[i] == '!') { char Data[i]; strncpy (Data , textBuffer , i); // Print out ping contents //Serial.print("buffer: "); //Serial.write(textBuffer, sizeof(textBuffer)); //Serial.print(" / "); // Print out ping contents //Serial.print("Data from server: "); Serial.print(String(Data)); Serial.println(); delay(2000); break; } } } }