void gotData(void){ bool rx = 0, blnTXOK = 0, blnTXFail = 0; intResult = 0; uint8_t pipe_num = 0; radio.whatHappened(blnTXOK,blnTXFail,rx, &pipe_num); if(blnTXFail){ intResult = 2; }else if(blnTXOK){ intResult = 1; }else if ( rx ){ intResult = 3; uint8_t len = radio.getDynamicPayloadSize(); bool more_available = true; while (more_available) { // Fetch the payload, and see if this was the last one. more_available = radio.read( receive_payload, len ); // Put a zero at the end for easy printing receive_payload[len] = 0; // Print received packet printf("[%d] Data size=%i value=%s\n\r",pipe_num, len,receive_payload); // next payload can be of different size if (more_available){ len = radio.getDynamicPayloadSize(); } } } // printf("intResult %d %d %d %d \n\r",blnTXOK,blnTXFail,rx,intResult); fflush (stdout) ; // radio.clearInterrupt(); }
/** * Handles interrupts from the radio * * */ void check_radio(void) { bool tx, fail, rx; // What happened? radio.whatHappened(tx, fail, rx); if (tx) { // Have we successfully transmitted? message_good++; // printf("Ack Payload:Sent\n\r"); } if (fail) { // Have we failed to transmit? message_fail++; // printf("Ack Payload:Failed\n\r"); } // Did we receive a message? if (rx || radio.available()) { // get payload and store in buffer; set command flag while (radio.available()) { radio.read((void *) commandBuffer, MAX_COMMAND_SIZE); } radio.writeAckPayload(1, &message_count, sizeof(message_count)); ++message_count; commandAvailable = true; } }