TEST update
This commit is contained in:
parent
6334c93b38
commit
ce145d8751
@ -47,6 +47,9 @@ void ttn_register(void (*callback)(uint8_t message));
|
|||||||
#define PAYLOAD_USE_FULL
|
#define PAYLOAD_USE_FULL
|
||||||
// #define PAYLOAD_USE_CAYENNE
|
// #define PAYLOAD_USE_CAYENNE
|
||||||
|
|
||||||
|
// If using a single-channel gateway, uncomment this next option and set to your gateway's channel
|
||||||
|
//#define SINGLE_CHANNEL_GATEWAY 0
|
||||||
|
|
||||||
#define DEBUG_PORT Serial // Serial debug port
|
#define DEBUG_PORT Serial // Serial debug port
|
||||||
#define SERIAL_BAUD 115200 // Serial debug baud rate
|
#define SERIAL_BAUD 115200 // Serial debug baud rate
|
||||||
#define SLEEP_BETWEEN_MESSAGES 0 // Do sleep between messages
|
#define SLEEP_BETWEEN_MESSAGES 0 // Do sleep between messages
|
||||||
|
64
main/ttn.ino
64
main/ttn.ino
@ -69,18 +69,43 @@ void _ttn_callback(uint8_t message) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void forceTxSingleChannelDr() {
|
||||||
|
// Disables all channels, except for the one defined by SINGLE_CHANNEL_GATEWAY
|
||||||
|
// This only affects uplinks; for downlinks the default
|
||||||
|
// channels or the configuration from the OTAA Join Accept are used.
|
||||||
|
for(int i=0; i<9; i++) { // For EU; for US use i<71
|
||||||
|
if(i != SINGLE_CHANNEL_GATEWAY) {
|
||||||
|
LMIC_disableChannel(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set data rate (SF) and transmit power for uplink
|
||||||
|
LMIC_setDrTxpow(LORAWAN_SF, 14);
|
||||||
|
}
|
||||||
|
|
||||||
// LMIC library will call this method when an event is fired
|
// LMIC library will call this method when an event is fired
|
||||||
void onEvent(ev_t event) {
|
void onEvent(ev_t event) {
|
||||||
if (EV_TXCOMPLETE == event) {
|
switch(event) {
|
||||||
|
case EV_JOINED:
|
||||||
|
#ifdef SINGLE_CHANNEL_GATEWAY
|
||||||
|
forceTxSingleChannelDr();
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
case EV_TXCOMPLETE:
|
||||||
|
Serial.println(F("EV_TXCOMPLETE (inc. RX win. wait)"));
|
||||||
if (LMIC.txrxFlags & TXRX_ACK) {
|
if (LMIC.txrxFlags & TXRX_ACK) {
|
||||||
|
Serial.println(F("Received ack"));
|
||||||
_ttn_callback(EV_ACK);
|
_ttn_callback(EV_ACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LMIC.dataLen) {
|
if (LMIC.dataLen) {
|
||||||
|
Serial.print(F("Data Received: "));
|
||||||
|
Serial.write(LMIC.frame+LMIC.dataBeg, LMIC.dataLen);
|
||||||
|
Serial.println();
|
||||||
_ttn_callback(EV_RESPONSE);
|
_ttn_callback(EV_RESPONSE);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send message callbacks
|
// Send message callbacks
|
||||||
@ -118,7 +143,7 @@ void ttn_join() {
|
|||||||
LMIC_reset();
|
LMIC_reset();
|
||||||
LMIC_setClockError(MAX_CLOCK_ERROR * 5 / 100);
|
LMIC_setClockError(MAX_CLOCK_ERROR * 5 / 100);
|
||||||
|
|
||||||
#ifdef USE_ABP
|
#if defined(USE_ABP)
|
||||||
|
|
||||||
// Set static session parameters. Instead of dynamically establishing a session
|
// Set static session parameters. Instead of dynamically establishing a session
|
||||||
// by joining the network, precomputed session parameters are be provided.
|
// by joining the network, precomputed session parameters are be provided.
|
||||||
@ -156,14 +181,6 @@ void ttn_join() {
|
|||||||
// https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
|
// https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
|
||||||
LMIC_selectSubBand(1);
|
LMIC_selectSubBand(1);
|
||||||
|
|
||||||
#elif defined(CFG_au915)
|
|
||||||
Serial.println("AU_915");
|
|
||||||
// NA-US channels 0-71 are configured automatically
|
|
||||||
// but only one group of 8 should (a subband) should be active
|
|
||||||
// TTN recommends the second sub band, 1 in a zero based count.
|
|
||||||
// https://github.com/TheThingsNetwork/gateway-conf/blob/master/US-global_conf.json
|
|
||||||
LMIC_selectSubBand(1);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// If using a mono-channel gateway disable all channels
|
// If using a mono-channel gateway disable all channels
|
||||||
@ -189,13 +206,32 @@ void ttn_join() {
|
|||||||
// TTN uses SF9 for its RX2 window.
|
// TTN uses SF9 for its RX2 window.
|
||||||
LMIC.dn2Dr = DR_SF9;
|
LMIC.dn2Dr = DR_SF9;
|
||||||
|
|
||||||
|
#ifdef SINGLE_CHANNEL_GATEWAY
|
||||||
|
forceTxSingleChannelDr();
|
||||||
|
#else
|
||||||
// Set default rate and transmit power for uplink (note: txpow seems to be ignored by the library)
|
// Set default rate and transmit power for uplink (note: txpow seems to be ignored by the library)
|
||||||
LMIC_setDrTxpow(DR_SF7, 14);
|
LMIC_setDrTxpow(DR_SF7, 14);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Trigger a false joined
|
// Trigger a false joined
|
||||||
_ttn_callback(EV_JOINED);
|
_ttn_callback(EV_JOINED);
|
||||||
|
|
||||||
#endif // USE_ABP
|
#elif defined(USE_OTAA)
|
||||||
|
|
||||||
|
#ifdef SINGLE_CHANNEL_GATEWAY
|
||||||
|
// Make LMiC initialize the default channels, choose a channel, and
|
||||||
|
// schedule the OTAA join
|
||||||
|
LMIC_startJoining();
|
||||||
|
|
||||||
|
// LMiC will already have decided to send on one of the 3 default
|
||||||
|
// channels; ensure it uses the one we want
|
||||||
|
LMIC.txChnl = SINGLE_CHANNEL_GATEWAY;
|
||||||
|
|
||||||
|
// ...and make sure we see the EV_JOINING event being logged
|
||||||
|
os_runloop_once();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void ttn_sf(unsigned char sf) {
|
void ttn_sf(unsigned char sf) {
|
||||||
|
Loading…
Reference in New Issue
Block a user