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
See wiki Page for a detailed
This is a link to the wiki page
Diff: main.cpp
- 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("[42mTempMonitorOff[\r0m\n"); + printf("[42mTempMonitorOff[\r0m\r\n"); } else { printf("TempThreshold:"); switch (fsk.RegImageCal.bits.TempThreshold) { @@ -886,13 +886,13 @@ printf("\r\n"); } if (fsk.RegImageCal.bits.ImageCalRunning) - printf("[33mImageCalRunning[\r0m\n"); + printf("[33mImageCalRunning[\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 - * -*/