Browse Source

Serial USB auf Serial1 verlagert

master
Ralf Behrens 4 years ago
parent
commit
b4d39c40bf
  1. 116
      src/main.cpp

116
src/main.cpp

@ -123,15 +123,15 @@ const lmic_pinmap lmic_pins = {
void printHex2(unsigned v) { void printHex2(unsigned v) {
v &= 0xff; v &= 0xff;
if (v < 16) if (v < 16)
Serial.print('0'); Serial1.print('0');
Serial.print(v, HEX); Serial1.print(v, HEX);
} }
void do_send(__attribute__((unused)) osjob_t *j) { void do_send(__attribute__((unused)) osjob_t *j) {
// Check if there is not a current TX/RX job running // Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) { if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending")); Serial1.println(F("OP_TXRXPEND, not sending"));
} else { } else {
// Prepare upstream data transmission at the next possible time. // Prepare upstream data transmission at the next possible time.
MessenSensoren(); MessenSensoren();
@ -140,56 +140,56 @@ void do_send(__attribute__((unused)) osjob_t *j) {
LMIC_setDrTxpow(DR_SF7, 10); LMIC_setDrTxpow(DR_SF7, 10);
LMIC_setTxData2(1, buffer, size, 0); LMIC_setTxData2(1, buffer, size, 0);
Serial.println(F("Packet queued")); Serial1.println(F("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) {
Serial.print(os_getTime()); Serial1.print(os_getTime());
Serial.print(": "); Serial1.print(": ");
switch (ev) { switch (ev) {
case EV_SCAN_TIMEOUT: case EV_SCAN_TIMEOUT:
Serial.println(F("EV_SCAN_TIMEOUT")); Serial1.println(F("EV_SCAN_TIMEOUT"));
break; break;
case EV_BEACON_FOUND: case EV_BEACON_FOUND:
Serial.println(F("EV_BEACON_FOUND")); Serial1.println(F("EV_BEACON_FOUND"));
break; break;
case EV_BEACON_MISSED: case EV_BEACON_MISSED:
Serial.println(F("EV_BEACON_MISSED")); Serial1.println(F("EV_BEACON_MISSED"));
break; break;
case EV_BEACON_TRACKED: case EV_BEACON_TRACKED:
Serial.println(F("EV_BEACON_TRACKED")); Serial1.println(F("EV_BEACON_TRACKED"));
break; break;
case EV_JOINING: case EV_JOINING:
Serial.println(F("EV_JOINING")); Serial1.println(F("EV_JOINING"));
break; break;
case EV_JOINED: case EV_JOINED:
Serial.println(F("EV_JOINED")); Serial1.println(F("EV_JOINED"));
{ {
u4_t netid = 0; u4_t netid = 0;
devaddr_t devaddr = 0; devaddr_t devaddr = 0;
u1_t nwkKey[16]; u1_t nwkKey[16];
u1_t artKey[16]; u1_t artKey[16];
LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey); LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey);
Serial.print("netid: "); Serial1.print("netid: ");
Serial.println(netid, DEC); Serial1.println(netid, DEC);
Serial.print("devaddr: "); Serial1.print("devaddr: ");
Serial.println(devaddr, HEX); Serial1.println(devaddr, HEX);
Serial.print("AppSKey: "); Serial1.print("AppSKey: ");
for (size_t i = 0; i < sizeof(artKey); ++i) { for (size_t i = 0; i < sizeof(artKey); ++i) {
if (i != 0) if (i != 0)
Serial.print("-"); Serial1.print("-");
printHex2(artKey[i]); printHex2(artKey[i]);
} }
Serial.println(""); Serial1.println("");
Serial.print("NwkSKey: "); Serial1.print("NwkSKey: ");
for (size_t i = 0; i < sizeof(nwkKey); ++i) { for (size_t i = 0; i < sizeof(nwkKey); ++i) {
if (i != 0) if (i != 0)
Serial.print("-"); Serial1.print("-");
printHex2(nwkKey[i]); printHex2(nwkKey[i]);
} }
Serial.println(); Serial1.println();
} }
// Disable link check validation (automatically enabled // Disable link check validation (automatically enabled
// during join, but because slow data rates change max TX // during join, but because slow data rates change max TX
@ -201,95 +201,99 @@ void onEvent(ev_t ev) {
|| point in wasting codespace on it. || point in wasting codespace on it.
|| ||
|| case EV_RFU1: || case EV_RFU1:
|| Serial.println(F("EV_RFU1")); || Serial1.println(F("EV_RFU1"));
|| break; || break;
*/ */
case EV_JOIN_FAILED: case EV_JOIN_FAILED:
Serial.println(F("EV_JOIN_FAILED")); Serial1.println(F("EV_JOIN_FAILED"));
break; break;
case EV_REJOIN_FAILED: case EV_REJOIN_FAILED:
Serial.println(F("EV_REJOIN_FAILED")); Serial1.println(F("EV_REJOIN_FAILED"));
break; break;
case EV_TXCOMPLETE: case EV_TXCOMPLETE:
Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)")); Serial1.println(F("EV_TXCOMPLETE (includes waiting for RX windows)"));
if (LMIC.txrxFlags & TXRX_ACK) if (LMIC.txrxFlags & TXRX_ACK)
Serial.println(F("Received ack")); Serial1.println(F("Received ack"));
if (LMIC.dataLen) { if (LMIC.dataLen) {
Serial.print(F("Received ")); Serial1.print(F("Received "));
Serial.print(LMIC.dataLen); Serial1.print(LMIC.dataLen);
Serial.print(F(" bytes of payload: ")); Serial1.print(F(" bytes of payload: "));
for (int i = 0; i < LMIC.dataLen; i++) { for (int i = 0; i < LMIC.dataLen; i++) {
if (LMIC.frame[LMIC.dataBeg + i] < 0x10) { Serial.print(F("0")); } if (LMIC.frame[LMIC.dataBeg + i] < 0x10) { Serial1.print(F("0")); }
Serial.print(LMIC.frame[LMIC.dataBeg + i], HEX); Serial1.print(LMIC.frame[LMIC.dataBeg + i], HEX);
Serial.print(F(" ")); Serial1.print(F(" "));
} }
Serial.println(F("")); Serial1.println(F(""));
} }
// Schedule next transmission // Schedule next transmission
os_setTimedCallback(&sendjob, os_getTime() + sec2osticks(TX_INTERVAL), do_send); os_setTimedCallback(&sendjob, os_getTime() + sec2osticks(TX_INTERVAL), do_send);
/*
Serial.println(F("vor sleep")); Serial1.println(F("vor sleep"));
Serial.flush(); Serial1.flush();
LowPower.sleep(1000); LowPower.sleep(1000);
Serial.println(F("wieder aufgewacht")); // => er wacht nicht wieder auf Serial1.println(F("wieder aufgewacht")); // => er wacht nicht wieder auf
*/
break; break;
case EV_LOST_TSYNC: case EV_LOST_TSYNC:
Serial.println(F("EV_LOST_TSYNC")); Serial1.println(F("EV_LOST_TSYNC"));
break; break;
case EV_RESET: case EV_RESET:
Serial.println(F("EV_RESET")); Serial1.println(F("EV_RESET"));
break; break;
case EV_RXCOMPLETE: case EV_RXCOMPLETE:
// data received in ping slot // data received in ping slot
Serial.println(F("EV_RXCOMPLETE")); Serial1.println(F("EV_RXCOMPLETE"));
break; break;
case EV_LINK_DEAD: case EV_LINK_DEAD:
Serial.println(F("EV_LINK_DEAD")); Serial1.println(F("EV_LINK_DEAD"));
break; break;
case EV_LINK_ALIVE: case EV_LINK_ALIVE:
Serial.println(F("EV_LINK_ALIVE")); Serial1.println(F("EV_LINK_ALIVE"));
break; break;
/* /*
|| This event is defined but not used in the code. No || This event is defined but not used in the code. No
|| point in wasting codespace on it. || point in wasting codespace on it.
|| ||
|| case EV_SCAN_FOUND: || case EV_SCAN_FOUND:
|| Serial.println(F("EV_SCAN_FOUND")); || Serial1.println(F("EV_SCAN_FOUND"));
|| break; || break;
*/ */
case EV_TXSTART: case EV_TXSTART:
Serial.println(F("EV_TXSTART")); Serial1.println(F("EV_TXSTART"));
break; break;
case EV_TXCANCELED: case EV_TXCANCELED:
Serial.println(F("EV_TXCANCELED")); Serial1.println(F("EV_TXCANCELED"));
break; break;
case EV_RXSTART: case EV_RXSTART:
/* do not print anything -- it wrecks timing */ /* do not print anything -- it wrecks timing */
break; break;
case EV_JOIN_TXCOMPLETE: case EV_JOIN_TXCOMPLETE:
Serial.println(F("EV_JOIN_TXCOMPLETE: no JoinAccept")); Serial1.println(F("EV_JOIN_TXCOMPLETE: no JoinAccept"));
break; break;
default: default:
Serial.print(F("Unknown event: ")); Serial1.print(F("Unknown event: "));
Serial.println((unsigned) ev); Serial1.println((unsigned) ev);
break; break;
} }
} }
void setup() { void setup() {
delay(5000); //delay(5000);
//while (!Serial); //while (!Serial);
Serial.begin(19200);
Serial.println(F("Starting 1.04")); // usb auschalten
USBDevice.detach();
Serial1.begin(19200);
Serial1.println(F("Starting 1.04"));
#ifdef __SAMD21G18A__ #ifdef __SAMD21G18A__
Serial.println(F("SAMD21G18A ARM Cortex-M0+ detected")); Serial1.println(F("SAMD21G18A ARM Cortex-M0+ detected"));
#endif #endif
#ifdef ARDUINO_SAMD_FEATHER_M0 #ifdef ARDUINO_SAMD_FEATHER_M0
Serial.println(F("defined for Feather M0 Board")); Serial1.println(F("defined for Feather M0 Board"));
#endif #endif
init_Messen(); init_Messen();
@ -298,7 +302,7 @@ void setup() {
#ifdef CFG_eu868 #ifdef CFG_eu868
Serial.println(F("Using EU868")); Serial1.println(F("Using EU868"));
#endif #endif

Loading…
Cancel
Save