Jordan Earls
/
pjon_testing
Testing getting PJON working on mbed https://github.com/gioblu/PJON
Diff: main.cpp
- Revision:
- 1:bd0ee507dd4c
- Parent:
- 0:fa2f348efd7e
- Child:
- 2:5648483c5dbc
--- a/main.cpp Sun Jan 10 07:26:52 2016 +0000 +++ b/main.cpp Sun Jan 10 09:41:00 2016 +0000 @@ -1,6 +1,6 @@ #include "mbed.h" #include <pjon.h> - +/* // network(Arduino pin used, selected device id) PJON network(p12, 1); DigitalOut myled(LED1); @@ -15,3 +15,76 @@ wait(0.2); } } +*/ + +float test; +float mistakes; +int busy; +int fail; + +// network(Arduino pin used, selected device id) +PJON network(p13, 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() { + 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(14); + } + + 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(); + } +} \ No newline at end of file