Testing getting PJON working on mbed https://github.com/gioblu/PJON

Dependencies:   mbed

Committer:
earlz
Date:
Sat Jan 16 15:51:23 2016 +0000
Revision:
2:5648483c5dbc
Parent:
1:bd0ee507dd4c
Attempting to make things work, but it currently just freezes for some reason

Who changed what in which revision?

UserRevisionLine numberNew contents of line
earlz 0:fa2f348efd7e 1 #include "mbed.h"
earlz 0:fa2f348efd7e 2 #include <pjon.h>
earlz 1:bd0ee507dd4c 3 /*
earlz 0:fa2f348efd7e 4 // network(Arduino pin used, selected device id)
earlz 0:fa2f348efd7e 5 PJON network(p12, 1);
earlz 0:fa2f348efd7e 6 DigitalOut myled(LED1);
earlz 0:fa2f348efd7e 7
earlz 0:fa2f348efd7e 8 int main() {
earlz 0:fa2f348efd7e 9 network.send(44, "B", 1, 1000000);
earlz 0:fa2f348efd7e 10 while(1) {
earlz 0:fa2f348efd7e 11 network.update();
earlz 0:fa2f348efd7e 12 myled = 1;
earlz 0:fa2f348efd7e 13 wait(0.2);
earlz 0:fa2f348efd7e 14 myled = 0;
earlz 0:fa2f348efd7e 15 wait(0.2);
earlz 0:fa2f348efd7e 16 }
earlz 0:fa2f348efd7e 17 }
earlz 1:bd0ee507dd4c 18 */
earlz 1:bd0ee507dd4c 19
earlz 1:bd0ee507dd4c 20 float test;
earlz 1:bd0ee507dd4c 21 float mistakes;
earlz 1:bd0ee507dd4c 22 int busy;
earlz 1:bd0ee507dd4c 23 int fail;
earlz 1:bd0ee507dd4c 24
earlz 1:bd0ee507dd4c 25 // network(Arduino pin used, selected device id)
earlz 2:5648483c5dbc 26 PJON network(p21, 45);
earlz 1:bd0ee507dd4c 27 Serial serial(USBTX, USBRX);
earlz 1:bd0ee507dd4c 28 Timer timer;
earlz 1:bd0ee507dd4c 29 int packet;
earlz 1:bd0ee507dd4c 30 char content[] = "01234567890123456789";
earlz 1:bd0ee507dd4c 31
earlz 1:bd0ee507dd4c 32 void setup() {
earlz 1:bd0ee507dd4c 33 serial.baud(19200);
earlz 1:bd0ee507dd4c 34 timer.start();
earlz 1:bd0ee507dd4c 35 serial.printf("PJON - Network analysis\n\r");
earlz 1:bd0ee507dd4c 36 serial.printf("Starting a 10 seconds communication test..\n\r\n\r");
earlz 1:bd0ee507dd4c 37 }
earlz 1:bd0ee507dd4c 38
earlz 1:bd0ee507dd4c 39 void loop() {
earlz 2:5648483c5dbc 40 Timer t2;
earlz 1:bd0ee507dd4c 41 long time = timer.read_ms();
earlz 1:bd0ee507dd4c 42 while(timer.read_ms() - time < 10000) {
earlz 1:bd0ee507dd4c 43
earlz 1:bd0ee507dd4c 44 /*
earlz 1:bd0ee507dd4c 45 Here send_string low level function is used to
earlz 1:bd0ee507dd4c 46 be able to catch every single sending result.
earlz 1:bd0ee507dd4c 47 */
earlz 1:bd0ee507dd4c 48
earlz 1:bd0ee507dd4c 49 int response = network.send_string(44, content, 20);
earlz 1:bd0ee507dd4c 50 if(response == ACK)
earlz 1:bd0ee507dd4c 51 test++;
earlz 1:bd0ee507dd4c 52 if(response == NAK)
earlz 1:bd0ee507dd4c 53 mistakes++;
earlz 1:bd0ee507dd4c 54 if(response == BUSY)
earlz 1:bd0ee507dd4c 55 busy++;
earlz 1:bd0ee507dd4c 56 if(response == FAIL)
earlz 1:bd0ee507dd4c 57 fail++;
earlz 2:5648483c5dbc 58 wait_us(50);
earlz 1:bd0ee507dd4c 59 }
earlz 1:bd0ee507dd4c 60
earlz 1:bd0ee507dd4c 61 serial.printf("Absolute com speed: ");
earlz 1:bd0ee507dd4c 62 serial.printf("%i", (test * 24 ) / 10 );
earlz 1:bd0ee507dd4c 63 serial.printf("B/s\n\r");
earlz 1:bd0ee507dd4c 64 serial.printf("Practical bandwidth: ");
earlz 1:bd0ee507dd4c 65 serial.printf("%i", (test * 20 ) / 10 );
earlz 1:bd0ee507dd4c 66 serial.printf("B/s\n\r");
earlz 1:bd0ee507dd4c 67 serial.printf("Packets sent: ");
earlz 1:bd0ee507dd4c 68 serial.printf("%f\n\r", test);
earlz 1:bd0ee507dd4c 69 serial.printf("Mistakes (error found with CRC) ");
earlz 1:bd0ee507dd4c 70 serial.printf("%f\n\r", mistakes);
earlz 1:bd0ee507dd4c 71 serial.printf("Fail (no answer from receiver) ");
earlz 1:bd0ee507dd4c 72 serial.printf("%i\n\r", fail);
earlz 1:bd0ee507dd4c 73 serial.printf("Busy (Channel is busy or affected by interference) ");
earlz 1:bd0ee507dd4c 74 serial.printf("%i\n\r", busy);
earlz 1:bd0ee507dd4c 75 serial.printf("Accuracy: ");
earlz 1:bd0ee507dd4c 76 serial.printf("%i", 100 - (100 / (test / mistakes)));
earlz 1:bd0ee507dd4c 77 serial.printf(" %\n\r");
earlz 1:bd0ee507dd4c 78 serial.printf(" --------------------- \n\r");
earlz 1:bd0ee507dd4c 79
earlz 1:bd0ee507dd4c 80 test = 0;
earlz 1:bd0ee507dd4c 81 mistakes = 0;
earlz 1:bd0ee507dd4c 82 busy = 0;
earlz 1:bd0ee507dd4c 83 fail = 0;
earlz 1:bd0ee507dd4c 84 };
earlz 1:bd0ee507dd4c 85
earlz 1:bd0ee507dd4c 86 int main(){
earlz 1:bd0ee507dd4c 87 setup();
earlz 1:bd0ee507dd4c 88 while(true){
earlz 1:bd0ee507dd4c 89 loop();
earlz 1:bd0ee507dd4c 90 }
earlz 1:bd0ee507dd4c 91 }