Test Commit

Dependencies:   sx126x

Revision:
1:ce312fc7dd18
Parent:
0:a64836ef007e
Child:
2:5e2bc143df58
--- a/main.cpp	Fri May 18 10:59:53 2018 -0700
+++ b/main.cpp	Tue May 22 14:27:12 2018 -0700
@@ -1,9 +1,12 @@
-#include "sx126x.h"
+#include "sx12xx.h"
+
+DigitalOut myled(LED1);
 
 #ifdef TARGET_FF_ARDUINO    /* pins of SX126xDVK1xAS board */
     SPI spi(D11, D12, D13); // mosi, miso, sclk
-    //           spi, nss, busy, dio1
-    SX126x radio(spi,  D7,   D3,   D5 );
+                   //spi, nss, busy, dio1
+    SX126x radio(spi, D7, D3, D5);
+
     #define CHIP_TYPE_SX1262        0
     #define CHIP_TYPE_SX1261        1
     DigitalIn chipType(A2);
@@ -12,19 +15,25 @@
 #endif /* TARGET_FF_ARDUINO */
 
 /**********************************************************************/
-volatile bool txDone;
+
+void rx_done(uint8_t size, float rssi, float snr)
+{
+    unsigned i;
 
-void txDone_callback()
-{
-    txDone = true;
+    myled.write(!myled.read()); // toggle LED
+
+    printf("rssi:%.1fdBm, snr:%.1fdB   ", rssi, snr);
+    for (i = 0; i < size; i++) {
+        printf("%02x ", radio.rx_buf[i]);
+    }
+    printf("\r\n");
 }
 
+
 int main()
-{
-    uint8_t seq = 0;
+{   
+    printf("\r\nreset-rx\r\n");
     
-    printf("\r\nreset-tx ");
-
     radio.setStandby(STBY_XOSC);
     radio.setPacketType(PACKET_TYPE_LORA);
     radio.setMHz(915.0); 
@@ -40,46 +49,27 @@
         radio.xfer(OPCODE_SET_MODULATION_PARAMS, 4, mp.buf);
     }
 
-    if (chipType == CHIP_TYPE_SX1262)
-        radio.set_tx_dbm(true, 20);
-    else
-        radio.set_tx_dbm(false, 14);
-
-
     {    
         PacketParams_t p;
 
         p.lora.PreambleLengthHi = 0;
         p.lora.PreambleLengthLo = 8;
         p.lora.HeaderType = HEADER_TYPE_VARIABLE_LENGTH;
-        /* constant payload length of one byte */
-        p.lora.PayloadLength = 1;
+        p.lora.PayloadLength = 0x40;    // max limit in rx
         p.lora.CRCType = CRC_ON;
         p.lora.InvertIQ = STANDARD_IQ;
 
         radio.xfer(OPCODE_SET_PACKET_PARAMS, 6, p.buf);
     }
-
-                
+    
     antswPower = 1;
     radio.SetDIO2AsRfSwitchCtrl(1);
-    
-    radio.txDone = txDone_callback;
+
+    radio.rxDone = rx_done;
+
+    radio.start_rx(RX_TIMEOUT_CONTINUOUS);
     
-    for (;;) {       
-        radio.tx_buf[0] = seq;  /* set payload */
-        txDone = false;
-        radio.start_tx(1);   /* begin transmission */
-        
-        printf("sent\r\n");
-        while (!txDone) {
-            radio.service();
-        }
-
-        printf("got-tx-done\r\n");
-        
-        wait(0.5);  /* throttle sending rate */
-        seq++;  /* change payload */
+    for (;;) {     
+        radio.service();
     }
 }
-