NAMote72 Utility Application – Serial Terminal Monitor control for NAMote72 (note: this application replaces the previous na_mote1 test code application)

Dependencies:   SX127x lib_gps lib_mma8451q lib_mpl3115a2 lib_sx9500 mbed

Fork of na_mote1 by wayne roberts

See wiki Page for a detailed

This is a link to the wiki page

Revision:
7:6d5f193b6c2f
Parent:
6:8defa260bc10
Child:
8:e3da1dc7b628
diff -r 8defa260bc10 -r 6d5f193b6c2f main.cpp
--- a/main.cpp	Fri May 08 01:44:19 2015 +0000
+++ b/main.cpp	Wed May 13 20:59:12 2015 +0000
@@ -504,10 +504,10 @@
         case HOP_TYPE_NONE:
             break;
         case HOP_TYPE_64CH:
-            printf("hop 64ch\n");
+            printf("hop 64ch\r\n");
             break;
         case HOP_TYPE_4CH:
-            printf("hop 4ch\n");
+            printf("hop 4ch\r\n");
             break;
     }
        
@@ -531,13 +531,13 @@
         case 0: printf("off"); break;
         case 1: // NodeAddress
             FSKRegNodeAdrs = radio.read_reg(REG_FSK_NODEADRS);
-            printf("NodeAdrs:%02x\n", FSKRegNodeAdrs);
+            printf("NodeAdrs:%02x\r\n", FSKRegNodeAdrs);
             break;
         case 2: // NodeAddress & BroadcastAddress
             FSKRegNodeAdrs = radio.read_reg(REG_FSK_NODEADRS);
             printf("NodeAdrs:%02x ", FSKRegNodeAdrs);
             FSKRegBroadcastAdrs = radio.read_reg(REG_FSK_BROADCASTADRS);
-            printf("BroadcastAdrs:%02x\n", FSKRegBroadcastAdrs );
+            printf("BroadcastAdrs:%02x\r\n", FSKRegBroadcastAdrs );
             break;
         default:
             printf("%d", fsk.RegPktConfig1.bits.AddressFiltering);
@@ -874,7 +874,7 @@
 
     fsk.RegImageCal.octet = radio.read_reg(REG_FSK_IMAGECAL);
     if (fsk.RegImageCal.bits.TempMonitorOff) {
-        printf("TempMonitorOff[\r0m\n");
+        printf("TempMonitorOff[\r0m\r\n");
     } else {
         printf("TempThreshold:");
         switch (fsk.RegImageCal.bits.TempThreshold) {
@@ -886,13 +886,13 @@
         printf("\r\n");
     }
     if (fsk.RegImageCal.bits.ImageCalRunning)
-        printf("ImageCalRunning[\r0m\n");
+        printf("ImageCalRunning[\r0m\r\n");
 
 /*    printf("flags.fifo_flow_ctl:%d pktidx:%d rx_pktlen:%d", flags.fifo_flow_ctl, pktidx, rx_pktlen);
-    printf("\n");
+    printf("\r\n");
 
-    //printf("DIO0_PIN:%d\n", digitalRead(DIO0_PIN));
-    printf("pkt_buf_len=%d remaining=%d\n", pk*/
+    //printf("DIO0_PIN:%d\r\n", digitalRead(DIO0_PIN));
+    printf("pkt_buf_len=%d remaining=%d\r\n", pk*/
 }
 
 void printOpMode()
@@ -963,8 +963,8 @@
     printf("\r\n");
     
     if (per_en) {
-        printf("per_tx_delay:%f\n", per_tx_delay);
-        printf("PER device ID:%d\n", per_id);
+        printf("per_tx_delay:%f\r\n", per_tx_delay);
+        printf("PER device ID:%d\r\n", per_id);
     }
     printf("GPS enabled:%d\r\n", gps.enabled());
 }
@@ -1135,7 +1135,7 @@
                             //IntervalPerKoCnt += i;
                             printf("%d, ok=%d missed=%d normal=%d ", PacketRxSequence, PacketPerOkCnt, PacketPerKoCnt, PacketNormalCnt);
                             per = ( 1.0 - ( float )PacketPerOkCnt / ( float )( PacketPerOkCnt + PacketPerKoCnt ) ) * 100.0;
-                            printf("per:%f\n", per);
+                            printf("per:%f\r\n", per);
                         } else {
                             PacketNormalCnt++;
                             print_rx_verbose(lora.RegRxNbBytes);
@@ -1215,7 +1215,7 @@
     
     if (new_hop) {
         new_hop = false;
-        printf("%02d  %.1f\n", hop_ofs, hop_MHz);
+        printf("%02d  %.1f\r\n", hop_ofs, hop_MHz);
     }    
 }
 
@@ -1350,7 +1350,7 @@
                     lora_printTxContinuousMode();
                     printf("\r\n");
                 } else
-                    printf("(fsk)\n");
+                    printf("(fsk)\r\n");
                 break;
             case 'C':
                 if (radio.RegOpMode.bits.LongRangeMode) {
@@ -1449,12 +1449,12 @@
                 printf("frf[%%f]    get/set operating frequency (MHz)\r\n");
                 printf("pd2         toggle PA_High_Power\r\n");
                 printf("bgr[%%d]        get/set prog_txdac BGR bias for TXDAC (7=+20dBm)\r\n"); 
-                printf("per         toggle PER enable\n");
-                printf("pin[%%f]         get/set per_tx_delay (seconds)\n");    
-                printf("pid[%%d]        get/set PER device ID\n");
-                printf("hop         change hop type (off, 64ch, 4ch)\n");
-                printf("hb[%%f]     get/set hop base MHz\n");
-                printf("hs[%%f]     get/set hop step MHz\n");
+                printf("per         toggle PER enable\r\n");
+                printf("pin[%%f]         get/set per_tx_delay (seconds)\r\n");    
+                printf("pid[%%d]        get/set PER device ID\r\n");
+                printf("hop         change hop type (off, 64ch, 4ch)\r\n");
+                printf("hb[%%f]     get/set hop base MHz\r\n");
+                printf("hs[%%f]     get/set hop step MHz\r\n");
                 if (radio.RegOpMode.bits.LongRangeMode) {
                     printf("pl[%%d]     LORA get/set RegPayloadLength\r\n");
                     printf("cr[1234]    LORA set coding rate \r\n");
@@ -1497,7 +1497,7 @@
         if (pcbuf[0] == 't' && pcbuf[1] == 'x') { // TX
             if (radio.RegOpMode.bits.LongRangeMode) {
                 if (per_en) {
-                    printf("timeout attach %f\n", per_tx_delay);
+                    printf("timeout attach %f\r\n", per_tx_delay);
                     PacketTxCnt = 0;
                     per_timeout.attach(&per_cb, per_tx_delay);
                 } else {
@@ -1534,30 +1534,30 @@
         } else if (pcbuf[0] == 'r' && pcbuf[1] == 'n' && pcbuf[2] == 'd') {
             uint8_t of = rand() & 0x3f;
 
-            printf("%02d %.2f\n", of, 902.3 + (of * 0.2));
+            printf("%02d %.2f\r\n", of, 902.3 + (of * 0.2));
         } else if (pcbuf[0] == 'h' && pcbuf[1] == 'b') {
             if (pcbuf[2] >= '0' && pcbuf[2] <= '9') {
                 sscanf(pcbuf+2, "%f", &hop_base_MHz);
             }
-            printf("hop_base:%f\n", hop_base_MHz);
+            printf("hop_base:%f\r\n", hop_base_MHz);
         } else if (pcbuf[0] == 'h' && pcbuf[1] == 's') {
             if (pcbuf[2] >= '0' && pcbuf[2] <= '9') {
                 sscanf(pcbuf+2, "%f", &hop_step_MHz);
             }
-            printf("hop_step:%f\n", hop_step_MHz);                           
+            printf("hop_step:%f\r\n", hop_step_MHz);                           
         } else if (pcbuf[0] == 'h' && pcbuf[1] == 'o' && pcbuf[2] == 'p') {
             switch (hop_type) {
                 case HOP_TYPE_NONE:
                     hop_type = HOP_TYPE_64CH;
-                    printf("64ch hop\n");                 
+                    printf("64ch hop\r\n");                 
                     break;
                 case HOP_TYPE_64CH:
                     hop_type = HOP_TYPE_4CH;
-                    printf("4ch hop\n");                                 
+                    printf("4ch hop\r\n");                                 
                     break;
                 case HOP_TYPE_4CH:
                     hop_type = HOP_TYPE_NONE;
-                    printf("hop off\n");                 
+                    printf("hop off\r\n");                 
                     break;
             }
         } else if (pcbuf[0] == 'h' && pcbuf[1] == 'p' && radio.RegOpMode.bits.LongRangeMode) {
@@ -1634,7 +1634,7 @@
                     printf("z");
                     break;                    
             }
-            printf("\n");
+            printf("\r\n");
         } else if (pcbuf[0] == 'b' && pcbuf[1] == '9') {
             printf("SDA:");
             switch (pcbuf[2]) {
@@ -1653,18 +1653,18 @@
                     printf("z");
                     break;                    
             }
-            printf("\n");                      
+            printf("\r\n");                      
         }
 #else    
         /************************** MMA8451Q... **************************************/
         else if (pcbuf[0] == 'm' && pcbuf[1] == 'm') {
             if (pcbuf[2] == '?') {
                 printf("mm.     get status\r\n");
-                printf("mm,     print XYZ\n");
-                printf("mma     toggle stby/active\n");
-                printf("mmtd     configure for transient detection\n");
+                printf("mm,     print XYZ\r\n");
+                printf("mma     toggle stby/active\r\n");
+                printf("mmtd     configure for transient detection\r\n");
             } else if (pcbuf[2] == '.') {
-                printf("active:%d\n", mma8451q.get_active());
+                printf("active:%d\r\n", mma8451q.get_active());
                 mma8451q.print_regs();
                 printf("i2c_int_pin:%d\r\n", i2c_int_pin.read());
             } else if (pcbuf[2] == ',') {
@@ -1672,7 +1672,7 @@
                 mma8451q.out.v.x >>= 4; // 12bit data
                 mma8451q.out.v.y >>= 4; // 12bit data
                 mma8451q.out.v.z >>= 4; // 12bit data
-                printf("x:%d y:%d z:%d\n", mma8451q.out.v.x, mma8451q.out.v.y, mma8451q.out.v.z);
+                printf("x:%d y:%d z:%d\r\n", mma8451q.out.v.x, mma8451q.out.v.y, mma8451q.out.v.z);
             } else if (pcbuf[2] == 't' && pcbuf[3] == 'd') {   
                 printf("transient ");
                 if (mma8451q.transient_cfg.bits.ELE) {
@@ -1680,11 +1680,11 @@
                     mma8451q.write(MMA8451_TRANSIENT_CFG, mma8451q.transient_cfg.octet);
                     mma8451q.ctrl_reg4.bits.INT_EN_TRANS = 0;
                     mma8451q.write(MMA8451_CTRL_REG4, mma8451q.ctrl_reg4.octet);                    
-                    printf("off\n");
+                    printf("off\r\n");
                 } else {
                     mma8451q.transient_detect();
                     //poll_timeout.attach(on_poll, 0.3);
-                    printf("on\n");
+                    printf("on\r\n");
                 }                         
             } else if (pcbuf[2] == 'a') {
                 if (mma8451q.get_active()) {
@@ -1692,7 +1692,7 @@
                 } else {
                     mma8451q.set_active(1);
                 }
-                printf("active:%d\n", mma8451q.get_active());
+                printf("active:%d\r\n", mma8451q.get_active());
             }
         }
         /************************** MPL3115... **************************************/
@@ -1719,21 +1719,21 @@
         /************************** sx9500... **************************************/
         else if (pcbuf[0] == '9' && pcbuf[1] == '5') {
             if (pcbuf[2] == '?') {
-                printf("95R     reset\n");
-                printf("95.     read status\n");
+                printf("95R     reset\r\n");
+                printf("95.     read status\r\n");
                 printf("95t[%%d]   get/set PROXTHRESH\r\n");
                 printf("95s[%%d]   get/set SCANPERIOD\r\n");
                 printf("95a         toggle txen\r\n");
             } else if (pcbuf[2] == '.') {
                 printf("(txen) active:%d\r\n", sx9500.get_active());
-                printf("RegStat:%02x\n", sx9500.read_single(SX9500_REG_STAT));
-                printf("RegProxCtrl0:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL0));
-                printf("RegProxCtrl1:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL1));
-                printf("RegProxCtrl2:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL2));
-                printf("RegProxCtrl3:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL3));
-                printf("RegProxCtrl4:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL4));
-                printf("RegProxCtrl5:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL5));
-                printf("RegProxCtrl6:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL6));
+                printf("RegStat:%02x\r\n", sx9500.read_single(SX9500_REG_STAT));
+                printf("RegProxCtrl0:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL0));
+                printf("RegProxCtrl1:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL1));
+                printf("RegProxCtrl2:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL2));
+                printf("RegProxCtrl3:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL3));
+                printf("RegProxCtrl4:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL4));
+                printf("RegProxCtrl5:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL5));
+                printf("RegProxCtrl6:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL6));
             } else if (pcbuf[2] == 'a') {
                 if (sx9500.get_active()) {
                     sx9500.set_active(false);
@@ -1744,7 +1744,7 @@
                     sx9500.write(SX9500_REG_PROXCTRL6, 1);  // threshold to 20 for CS1 release
                     sx9500.write(SX9500_REG_IRQMSK, 0x60);     // enable near and far interrupts
                     sx9500.set_active(true);
-                    printf("RegProxCtrl0:%02x\n", sx9500.read_single(SX9500_REG_PROXCTRL0));    /* sensor-enable and scan period */
+                    printf("RegProxCtrl0:%02x\r\n", sx9500.read_single(SX9500_REG_PROXCTRL0));    /* sensor-enable and scan period */
                 }
                 printf("(txen) active:%d\r\n", sx9500.get_active());
             } else if (pcbuf[2] == 'R') {
@@ -1956,15 +1956,15 @@
             if (pcbuf[3] >= '0' && pcbuf[3] <= '9') {
                 sscanf(pcbuf+3, "%d", &per_id);
             }
-            printf("PER device ID:%d\n", per_id);
+            printf("PER device ID:%d\r\n", per_id);
         } else if (pcbuf[0] == 'p' && pcbuf[1] == 'i' && pcbuf[2] == 'n') {
             if (pcbuf[3] >= '0' && pcbuf[3] <= '9') {
                 sscanf(pcbuf+2, "%f", &per_tx_delay);
             }
-            printf("per_tx_delay:%f\n", per_tx_delay);
+            printf("per_tx_delay:%f\r\n", per_tx_delay);
         } else if (pcbuf[0] == 'p' && pcbuf[1] == 'e' && pcbuf[2] == 'r') {
             per_en ^= 1;
-            printf("per_en:%d\n", per_en);
+            printf("per_en:%d\r\n", per_en);
             if (per_en && radio.RegOpMode.bits.LongRangeMode) {
                 if (radio.type == SX1272) {
                     lora.RegModemConfig.sx1272bits.LowDataRateOptimize = 1;
@@ -2014,7 +2014,7 @@
                 pd2 = 0;
             else 
                 pd2 = 1;
-            printf("pd2:%d\n", pd2.read());
+            printf("pd2:%d\r\n", pd2.read());
         } else if (pcbuf[0] == 'p' && pcbuf[1] == 'd' && !radio.RegOpMode.bits.LongRangeMode) {
             fsk.RegPreambleDetect.bits.PreambleDetectorOn ^= 1;
             radio.write_reg(REG_FSK_PREAMBLEDETECT, fsk.RegPreambleDetect.octet);
@@ -2113,7 +2113,7 @@
     pc.baud(57600);
     gps.init();
 
-    printf("\nreset\n");    
+    printf("\nreset\r\n");    
     //green_led = LED_OFF;
     red_led = LED_OFF;
     
@@ -2144,12 +2144,3 @@
         } // ...switch (app)
     } // ...while(1)
 }
-
-/*
-GPS, Pressure sensor, touch sensor etc
-3-axis accelerometer: MMA8415IQ      peripherials/mma8415..c
-SX9500 SAR,   peripherials/sx9500.c
-altimeter & temperature: MPL3115A2.   peripherials/mpl3115.c
-GPS: NMEA from system/gps.c, boards/LoRaMote/gps-board.c
- * 
-*/