Jordan Earls
/
pjon_testing
Testing getting PJON working on mbed https://github.com/gioblu/PJON
main.cpp
- Committer:
- earlz
- Date:
- 2016-01-16
- Revision:
- 2:5648483c5dbc
- Parent:
- 1:bd0ee507dd4c
File content as of revision 2:5648483c5dbc:
#include "mbed.h" #include <pjon.h> /* // network(Arduino pin used, selected device id) PJON network(p12, 1); DigitalOut myled(LED1); int main() { network.send(44, "B", 1, 1000000); while(1) { network.update(); myled = 1; wait(0.2); myled = 0; wait(0.2); } } */ float test; float mistakes; int busy; int fail; // network(Arduino pin used, selected device id) PJON network(p21, 45); Serial serial(USBTX, USBRX); Timer timer; int packet; char content[] = "01234567890123456789"; void setup() { serial.baud(19200); timer.start(); serial.printf("PJON - Network analysis\n\r"); serial.printf("Starting a 10 seconds communication test..\n\r\n\r"); } void loop() { Timer t2; long time = timer.read_ms(); while(timer.read_ms() - time < 10000) { /* Here send_string low level function is used to be able to catch every single sending result. */ int response = network.send_string(44, content, 20); if(response == ACK) test++; if(response == NAK) mistakes++; if(response == BUSY) busy++; if(response == FAIL) fail++; wait_us(50); } serial.printf("Absolute com speed: "); serial.printf("%i", (test * 24 ) / 10 ); serial.printf("B/s\n\r"); serial.printf("Practical bandwidth: "); serial.printf("%i", (test * 20 ) / 10 ); serial.printf("B/s\n\r"); serial.printf("Packets sent: "); serial.printf("%f\n\r", test); serial.printf("Mistakes (error found with CRC) "); serial.printf("%f\n\r", mistakes); serial.printf("Fail (no answer from receiver) "); serial.printf("%i\n\r", fail); serial.printf("Busy (Channel is busy or affected by interference) "); serial.printf("%i\n\r", busy); serial.printf("Accuracy: "); serial.printf("%i", 100 - (100 / (test / mistakes))); serial.printf(" %\n\r"); serial.printf(" --------------------- \n\r"); test = 0; mistakes = 0; busy = 0; fail = 0; }; int main(){ setup(); while(true){ loop(); } }