Code optimization
This commit is contained in:
parent
114651d8c0
commit
a37a567ab2
120
src/lorawan.cpp
120
src/lorawan.cpp
@ -10,8 +10,6 @@
|
|||||||
#include <Wire.h> // Needed for 24AA02E64, does not hurt anything if included and not used
|
#include <Wire.h> // Needed for 24AA02E64, does not hurt anything if included and not used
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t mydata[] = "0000";
|
|
||||||
|
|
||||||
// Local logging Tag
|
// Local logging Tag
|
||||||
static const char *TAG = "lorawan";
|
static const char *TAG = "lorawan";
|
||||||
|
|
||||||
@ -113,6 +111,7 @@ void printKeys(void) {
|
|||||||
#endif // VERBOSE
|
#endif // VERBOSE
|
||||||
|
|
||||||
void do_send(osjob_t* j){
|
void do_send(osjob_t* j){
|
||||||
|
uint8_t mydata[4];
|
||||||
uint16_t data;
|
uint16_t data;
|
||||||
// Total BLE+WIFI unique MACs seen
|
// Total BLE+WIFI unique MACs seen
|
||||||
data = (uint16_t) macs.size();
|
data = (uint16_t) macs.size();
|
||||||
@ -131,52 +130,40 @@ void do_send(osjob_t* j){
|
|||||||
//mydata[5] = data & 0xff;
|
//mydata[5] = data & 0xff;
|
||||||
|
|
||||||
// Check if there is not a current TX/RX job running
|
// Check if there is not a current TX/RX job running
|
||||||
|
u8x8.clearLine(7);
|
||||||
if (LMIC.opmode & OP_TXRXPEND) {
|
if (LMIC.opmode & OP_TXRXPEND) {
|
||||||
ESP_LOGI(TAG, "OP_TXRXPEND, not sending");
|
ESP_LOGI(TAG, "OP_TXRXPEND, not sending");
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "LORA BUSY");
|
u8x8.drawString(0, 7, "LORA BUSY");
|
||||||
} else {
|
} else {
|
||||||
// Prepare upstream data transmission at the next possible time.
|
// Prepare upstream data transmission at the next possible time.
|
||||||
LMIC_setTxData2(1, mydata, sizeof(mydata)-1, (cfg.countermode & 0x02));
|
LMIC_setTxData2(1, mydata, sizeof(mydata), (cfg.countermode & 0x02));
|
||||||
ESP_LOGI(TAG, "Packet queued");
|
ESP_LOGI(TAG, "Packet queued");
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "PACKET QUEUED");
|
u8x8.drawString(0, 7, "PACKET QUEUED");
|
||||||
}
|
}
|
||||||
// Next TX is scheduled after TX_COMPLETE event.
|
// Next TX is scheduled after TX_COMPLETE event.
|
||||||
}
|
}
|
||||||
|
|
||||||
void onEvent (ev_t ev) {
|
void onEvent (ev_t ev) {
|
||||||
|
char buff[24]="";
|
||||||
|
|
||||||
switch(ev) {
|
switch(ev) {
|
||||||
case EV_SCAN_TIMEOUT:
|
case EV_SCAN_TIMEOUT: strcpy_P(buff, PSTR("SCAN TIMEOUT")); break;
|
||||||
ESP_LOGI(TAG, "EV_SCAN_TIMEOUT");
|
case EV_BEACON_FOUND: strcpy_P(buff, PSTR("BEACON FOUND")); break;
|
||||||
u8x8.clearLine(7);
|
case EV_BEACON_MISSED: strcpy_P(buff, PSTR( "BEACON MISSED")); break;
|
||||||
u8x8.drawString(0, 7, "SCAN TIMEOUT");
|
case EV_BEACON_TRACKED: strcpy_P(buff, PSTR("BEACON TRACKED")); break;
|
||||||
break;
|
case EV_JOINING: strcpy_P(buff, PSTR("JOINING")); break;
|
||||||
case EV_BEACON_FOUND:
|
case EV_LOST_TSYNC: strcpy_P(buff, PSTR("LOST TSYNC")); break;
|
||||||
ESP_LOGI(TAG, "EV_BEACON_FOUND");
|
case EV_RESET: strcpy_P(buff, PSTR("RESET")); break;
|
||||||
u8x8.clearLine(7);
|
case EV_RXCOMPLETE: strcpy_P(buff, PSTR("RX COMPLETE")); break;
|
||||||
u8x8.drawString(0, 7, "BEACON FOUND");
|
case EV_LINK_DEAD: strcpy_P(buff, PSTR("LINK DEAD")); break;
|
||||||
break;
|
case EV_LINK_ALIVE: strcpy_P(buff, PSTR("LINK ALIVE")); break;
|
||||||
case EV_BEACON_MISSED:
|
case EV_RFU1: strcpy_P(buff, PSTR("RFUI")); break;
|
||||||
ESP_LOGI(TAG, "EV_BEACON_MISSED");
|
case EV_JOIN_FAILED: strcpy_P(buff, PSTR("JOIN FAILED")); break;
|
||||||
u8x8.clearLine(7);
|
case EV_REJOIN_FAILED: strcpy_P(buff, PSTR("REJOIN FAILED")); break;
|
||||||
u8x8.drawString(0, 7, "BEACON MISSED");
|
|
||||||
break;
|
|
||||||
case EV_BEACON_TRACKED:
|
|
||||||
ESP_LOGI(TAG, "EV_BEACON_TRACKED");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "BEACON TRACKED");
|
|
||||||
break;
|
|
||||||
case EV_JOINING:
|
|
||||||
ESP_LOGI(TAG, "EV_JOINING");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "JOINING");
|
|
||||||
break;
|
|
||||||
case EV_JOINED:
|
case EV_JOINED:
|
||||||
ESP_LOGI(TAG, "EV_JOINED");
|
strcpy_P(buff, PSTR("JOINED"));
|
||||||
u8x8.clearLine(6); // erase "Join Wait" message from display, see main.cpp
|
u8x8.clearLine(6); // erase "Join Wait" message from display, see main.cpp
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "JOINED");
|
|
||||||
// Disable link check validation (automatically enabled
|
// Disable link check validation (automatically enabled
|
||||||
// during join, but not supported by TTN at this time).
|
// during join, but not supported by TTN at this time).
|
||||||
LMIC_setLinkCheckMode(0);
|
LMIC_setLinkCheckMode(0);
|
||||||
@ -188,35 +175,20 @@ void onEvent (ev_t ev) {
|
|||||||
// show effective LoRa parameters after join
|
// show effective LoRa parameters after join
|
||||||
ESP_LOGI(TAG, "ADR=%i, SF=%i, TXPOWER=%i", cfg.adrmode, cfg.lorasf, cfg.txpower);
|
ESP_LOGI(TAG, "ADR=%i, SF=%i, TXPOWER=%i", cfg.adrmode, cfg.lorasf, cfg.txpower);
|
||||||
break;
|
break;
|
||||||
case EV_RFU1:
|
|
||||||
ESP_LOGI(TAG, "EV_RFU1");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "RFUI");
|
|
||||||
break;
|
|
||||||
case EV_JOIN_FAILED:
|
|
||||||
ESP_LOGI(TAG, "EV_JOIN_FAILED");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "JOIN FAILED");
|
|
||||||
break;
|
|
||||||
case EV_REJOIN_FAILED:
|
|
||||||
ESP_LOGI(TAG, "EV_REJOIN_FAILED");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "REJOIN FAILED");
|
|
||||||
break;
|
|
||||||
case EV_TXCOMPLETE:
|
case EV_TXCOMPLETE:
|
||||||
ESP_LOGI(TAG, "EV_TXCOMPLETE (includes waiting for RX windows)");
|
ESP_LOGI(TAG, "EV_TXCOMPLETE (includes waiting for RX windows)");
|
||||||
u8x8.clearLine(7);
|
u8x8.clearLine(7);
|
||||||
u8x8.drawString(0, 7, "TX COMPLETE");
|
|
||||||
if (LMIC.txrxFlags & TXRX_ACK) {
|
if (LMIC.txrxFlags & TXRX_ACK) {
|
||||||
ESP_LOGI(TAG, "Received ack");
|
ESP_LOGI(TAG, "Received ack");
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "RECEIVED ACK");
|
u8x8.drawString(0, 7, "RECEIVED ACK");
|
||||||
|
} else {
|
||||||
|
u8x8.drawString(0, 7, "TX COMPLETE");
|
||||||
}
|
}
|
||||||
if (LMIC.dataLen) {
|
if (LMIC.dataLen) {
|
||||||
ESP_LOGI(TAG, "Received %i bytes of payload", LMIC.dataLen);
|
ESP_LOGI(TAG, "Received %d bytes of payload", LMIC.dataLen);
|
||||||
u8x8.clearLine(6);
|
u8x8.clearLine(6);
|
||||||
u8x8.setCursor(0, 6);
|
u8x8.setCursor(0, 6);
|
||||||
u8x8.printf("Rcvd %i bytes", LMIC.dataLen);
|
u8x8.printf("Rcvd %d bytes", LMIC.dataLen);
|
||||||
u8x8.clearLine(7);
|
u8x8.clearLine(7);
|
||||||
u8x8.setCursor(0, 7);
|
u8x8.setCursor(0, 7);
|
||||||
// LMIC.snr = SNR twos compliment [dB] * 4
|
// LMIC.snr = SNR twos compliment [dB] * 4
|
||||||
@ -234,38 +206,16 @@ void onEvent (ev_t ev) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EV_LOST_TSYNC:
|
default: sprintf_P(buff, PSTR("UNKNOWN EVENT %d"), ev); break;
|
||||||
ESP_LOGI(TAG, "EV_LOST_TSYNC");
|
}
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "LOST TSYNC");
|
// Log & Display if asked
|
||||||
break;
|
if (*buff) {
|
||||||
case EV_RESET:
|
ESP_LOGI(TAG, "EV_%s", buff);
|
||||||
ESP_LOGI(TAG, "EV_RESET");
|
u8x8.clearLine(7);
|
||||||
u8x8.clearLine(7);
|
u8x8.drawString(0, 7, buff);
|
||||||
u8x8.drawString(0, 7, "RESET");
|
}
|
||||||
break;
|
|
||||||
case EV_RXCOMPLETE:
|
|
||||||
// data received in ping slot
|
|
||||||
ESP_LOGI(TAG, "EV_RXCOMPLETE");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "RX COMPLETE");
|
|
||||||
break;
|
|
||||||
case EV_LINK_DEAD:
|
|
||||||
ESP_LOGI(TAG, "EV_LINK_DEAD");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "LINK DEAD");
|
|
||||||
break;
|
|
||||||
case EV_LINK_ALIVE:
|
|
||||||
ESP_LOGI(TAG, "EV_LINK_ALIVE");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.drawString(0, 7, "LINK ALIVE");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ESP_LOGI(TAG, "Unknown event");
|
|
||||||
u8x8.clearLine(7);
|
|
||||||
u8x8.setCursor(0, 7);
|
|
||||||
u8x8.printf("UNKNOWN EVENT %d", ev);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user