pedro neto
/
testepedro
Test program for RFM69 library. Listens and prints packets from "RFM69_Sender" nodes
Listener.cpp@2:08246d6498ce, 2019-07-29 (annotated)
- Committer:
- pedroneto1209
- Date:
- Mon Jul 29 18:26:05 2019 +0000
- Revision:
- 2:08246d6498ce
- Parent:
- 1:7bc722e656a5
baja
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
br549 | 0:52becca880bd | 1 | // Listener - print sender messages |
br549 | 0:52becca880bd | 2 | // From Tnode/Tsender @ anarduino.com |
br549 | 0:52becca880bd | 3 | // 2014 - anarduino.com |
br549 | 0:52becca880bd | 4 | // |
pedroneto1209 | 2:08246d6498ce | 5 | #include "mbed.h" |
pedroneto1209 | 2:08246d6498ce | 6 | #include "RFM69.h" |
br549 | 0:52becca880bd | 7 | |
pedroneto1209 | 2:08246d6498ce | 8 | #define NETWORK_ID 101 |
pedroneto1209 | 2:08246d6498ce | 9 | #define BOXRADIO_ID 69 |
pedroneto1209 | 2:08246d6498ce | 10 | #define NODE_ID 55 |
pedroneto1209 | 2:08246d6498ce | 11 | #define FREQUENCY_915MHZ 91 |
br549 | 0:52becca880bd | 12 | |
br549 | 0:52becca880bd | 13 | // Uncomment only one of the following three to match radio frequency |
br549 | 0:52becca880bd | 14 | //#define FREQUENCY RF69_433MHZ |
br549 | 0:52becca880bd | 15 | //#define FREQUENCY RF69_868MHZ |
br549 | 0:52becca880bd | 16 | #define FREQUENCY RF69_915MHZ |
br549 | 0:52becca880bd | 17 | |
pedroneto1209 | 2:08246d6498ce | 18 | #define IS_RFM69HW //NOTE: uncomment this ONLY for RFM69HW or RFM69HCW |
br549 | 0:52becca880bd | 19 | #define ENCRYPT_KEY "EncryptKey123456" // use same 16byte encryption key for all devices on net |
br549 | 0:52becca880bd | 20 | #define ACK_TIME 50 // max msec for ACK wait |
br549 | 0:52becca880bd | 21 | #define LED 9 // Anardino miniWireless has LEDs on D9 |
br549 | 0:52becca880bd | 22 | #define SERIAL_BAUD 115200 |
br549 | 0:52becca880bd | 23 | #define VERSION "1.0" |
br549 | 0:52becca880bd | 24 | |
br549 | 0:52becca880bd | 25 | #define MSGBUFSIZE 64 // message buffersize, but for this demo we only use: |
br549 | 0:52becca880bd | 26 | // 1-byte NODEID + 4-bytes for time + 1-byte for temp in C + 2-bytes for vcc(mV) |
br549 | 0:52becca880bd | 27 | |
pedroneto1209 | 2:08246d6498ce | 28 | Serial pc(PA_9, PA_10); |
pedroneto1209 | 2:08246d6498ce | 29 | DigitalOut myled(PC_13); |
pedroneto1209 | 2:08246d6498ce | 30 | DigitalOut but(PA_1, PullUp); |
br549 | 1:7bc722e656a5 | 31 | //RFM69::RFM69(PinName PinName mosi, PinName miso, PinName sclk,slaveSelectPin, PinName int) |
pedroneto1209 | 2:08246d6498ce | 32 | RFM69 radio(PB_15, PB_14, PB_13, PB_12, PA_8); |
pedroneto1209 | 2:08246d6498ce | 33 | |
br549 | 0:52becca880bd | 34 | bool promiscuousMode = false; // set 'true' to sniff all packets on the same network |
pedroneto1209 | 2:08246d6498ce | 35 | uint8_t data[61]; |
br549 | 0:52becca880bd | 36 | bool requestACK=false; |
pedroneto1209 | 2:08246d6498ce | 37 | |
br549 | 0:52becca880bd | 38 | Timer tmr; |
br549 | 0:52becca880bd | 39 | |
br549 | 0:52becca880bd | 40 | main() { |
br549 | 0:52becca880bd | 41 | uint8_t theNodeID; |
br549 | 0:52becca880bd | 42 | tmr.start(); |
br549 | 0:52becca880bd | 43 | |
pedroneto1209 | 2:08246d6498ce | 44 | pc.baud(SERIAL_BAUD); |
br549 | 0:52becca880bd | 45 | pc.printf("\r\nListener %s startup at %d Mhz...\r\n",VERSION,(FREQUENCY==RF69_433MHZ ? 433 : FREQUENCY==RF69_868MHZ ? 868 : 915)); |
br549 | 0:52becca880bd | 46 | wait(1); |
br549 | 0:52becca880bd | 47 | radio.initialize(FREQUENCY, GATEWAY_ID, NETWORKID); |
br549 | 0:52becca880bd | 48 | radio.encrypt(0); |
br549 | 0:52becca880bd | 49 | radio.promiscuous(promiscuousMode); |
pedroneto1209 | 2:08246d6498ce | 50 | radio.setPowerLevel(20); |
br549 | 0:52becca880bd | 51 | #ifdef IS_RFM69HW |
br549 | 0:52becca880bd | 52 | radio.setHighPower(); //uncomment #define ONLY if radio is of type: RFM69HW or RFM69HCW |
br549 | 0:52becca880bd | 53 | #endif |
br549 | 0:52becca880bd | 54 | |
br549 | 0:52becca880bd | 55 | while(1) { |
br549 | 0:52becca880bd | 56 | if (radio.receiveDone()) { |
br549 | 0:52becca880bd | 57 | pc.printf("Received from TNODE: %d ",radio.SENDERID); |
br549 | 0:52becca880bd | 58 | pc.printf((char*)radio.DATA); |
br549 | 0:52becca880bd | 59 | if (radio.ACKRequested()){ |
br549 | 0:52becca880bd | 60 | theNodeID = radio.SENDERID; |
br549 | 0:52becca880bd | 61 | radio.sendACK(); |
br549 | 0:52becca880bd | 62 | pc.printf(" - ACK sent. Receive RSSI: %d\r\n",radio.RSSI); |
br549 | 0:52becca880bd | 63 | } else pc.printf("Receive RSSI: %d\r\n",radio.RSSI); |
br549 | 0:52becca880bd | 64 | } |
br549 | 0:52becca880bd | 65 | myled = !myled; |
br549 | 0:52becca880bd | 66 | } |
br549 | 0:52becca880bd | 67 | } |