Merge pull request #35 from paderijk/PAdR-UX-Improvement-20200114
Generic User Experience improvements
This commit is contained in:
commit
66681b4ce1
@ -1,6 +1,6 @@
|
|||||||
## TTGO T-Beam Tracker for The Things Network
|
## TTGO T-Beam Tracker for The Things Network
|
||||||
|
|
||||||
Current version: 1.2.0
|
Current version: 1.2.1
|
||||||
|
|
||||||
Uploads GPS data from the TTGO T-Beam to [The Things Network](https://www.thethingsnetwork.org) (TTN) and [TTN Mapper](https://ttnmapper.org) for tracking and determining signal strength of LoRaWAN gateways and nodes.
|
Uploads GPS data from the TTGO T-Beam to [The Things Network](https://www.thethingsnetwork.org) (TTN) and [TTN Mapper](https://ttnmapper.org) for tracking and determining signal strength of LoRaWAN gateways and nodes.
|
||||||
|
|
||||||
|
@ -33,15 +33,15 @@ void ttn_register(void (*callback)(uint8_t message));
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
#define APP_NAME "TTN MAP-TRACK"
|
#define APP_NAME "TTN MAP-TRACK"
|
||||||
#define APP_VERSION "1.2.0"
|
#define APP_VERSION "1.2.1"
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// Configuration
|
// Configuration
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
// Select which T-Beam board is being used. Only uncomment one.
|
// Select which T-Beam board is being used. Only uncomment one.
|
||||||
// #define T_BEAM_V07 // AKA Rev0 (first board released)
|
#define T_BEAM_V07 // AKA Rev0 (first board released)
|
||||||
#define T_BEAM_V10 // AKA Rev1 (second board released)
|
// #define T_BEAM_V10 // AKA Rev1 (second board released)
|
||||||
|
|
||||||
// Select the payload format. Change on TTN as well. Only uncomment one.
|
// Select the payload format. Change on TTN as well. Only uncomment one.
|
||||||
#define PAYLOAD_USE_FULL
|
#define PAYLOAD_USE_FULL
|
||||||
@ -50,6 +50,12 @@ void ttn_register(void (*callback)(uint8_t message));
|
|||||||
// If using a single-channel gateway, uncomment this next option and set to your gateway's channel
|
// If using a single-channel gateway, uncomment this next option and set to your gateway's channel
|
||||||
//#define SINGLE_CHANNEL_GATEWAY 0
|
//#define SINGLE_CHANNEL_GATEWAY 0
|
||||||
|
|
||||||
|
//Uncomment if you always want to see the boot logo at boot time
|
||||||
|
#define ALWAYS_SHOW_LOGO
|
||||||
|
|
||||||
|
//Uncomment to enable discarding network settings by long pressing second button
|
||||||
|
//#define PREFS_DISCARD
|
||||||
|
|
||||||
// If you are having difficulty sending messages to TTN after the first successful send,
|
// If you are having difficulty sending messages to TTN after the first successful send,
|
||||||
// uncomment the next option and experiment with values (~ 1 - 5)
|
// uncomment the next option and experiment with values (~ 1 - 5)
|
||||||
//#define CLOCK_ERROR 5
|
//#define CLOCK_ERROR 5
|
||||||
|
@ -24,17 +24,17 @@ Credentials file
|
|||||||
|
|
||||||
#ifdef USE_OTAA
|
#ifdef USE_OTAA
|
||||||
|
|
||||||
// This EUI must be in little-endian format, so least-significant-byte
|
// This EUI must be in little-endian format, so least-significant-byte (lsb)
|
||||||
// first. When copying an EUI from ttnctl output, this means to reverse
|
// first. When copying an EUI from ttnctl output, this means to reverse
|
||||||
// the bytes. For TTN issued EUIs the last bytes should be 0x00, 0x00,
|
// the bytes. For TTN issued EUIs the last bytes should be 0x00, 0x00,
|
||||||
// 0x00.
|
// 0x00.
|
||||||
static const u1_t PROGMEM APPEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
static const u1_t PROGMEM APPEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
|
|
||||||
// This should also be in little endian format, see above.
|
// This should also be in little endian format (lsb), see above.
|
||||||
// Note: You do not need to set this field, if unset it will be generated automatically based on the device macaddr
|
// Note: You do not need to set this field, if unset it will be generated automatically based on the device macaddr
|
||||||
static u1_t DEVEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
static u1_t DEVEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
|
|
||||||
// This key should be in big endian format (or, since it is not really a
|
// This key should be in big endian format (msb) (or, since it is not really a
|
||||||
// number but a block of memory, endianness does not really apply). In
|
// number but a block of memory, endianness does not really apply). In
|
||||||
// practice, a key taken from ttnctl can be copied as-is.
|
// practice, a key taken from ttnctl can be copied as-is.
|
||||||
// The key shown here is the semtech default key.
|
// The key shown here is the semtech default key.
|
||||||
|
@ -74,7 +74,8 @@ bool trySend() {
|
|||||||
buildPacket(txBuffer);
|
buildPacket(txBuffer);
|
||||||
|
|
||||||
#if LORAWAN_CONFIRMED_EVERY > 0
|
#if LORAWAN_CONFIRMED_EVERY > 0
|
||||||
bool confirmed = (count % LORAWAN_CONFIRMED_EVERY == 0);
|
bool confirmed = (ttn_get_count() % LORAWAN_CONFIRMED_EVERY == 0);
|
||||||
|
if (confirmed){ Serial.println("confirmation enabled"); }
|
||||||
#else
|
#else
|
||||||
bool confirmed = false;
|
bool confirmed = false;
|
||||||
#endif
|
#endif
|
||||||
@ -152,9 +153,16 @@ void sleep() {
|
|||||||
|
|
||||||
|
|
||||||
void callback(uint8_t message) {
|
void callback(uint8_t message) {
|
||||||
if (EV_JOINING == message) screen_print("Joining TTN...\n");
|
bool ttn_joined = false;
|
||||||
if (EV_JOINED == message) {
|
if (EV_JOINED == message) {
|
||||||
screen_print("TTN joined!\n");
|
ttn_joined = true;
|
||||||
|
}
|
||||||
|
if (EV_JOINING == message) {
|
||||||
|
if (ttn_joined) {
|
||||||
|
screen_print("TTN joining...\n");
|
||||||
|
} else {
|
||||||
|
screen_print("Joined TTN!\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (EV_JOIN_FAILED == message) screen_print("TTN join failed\n");
|
if (EV_JOIN_FAILED == message) screen_print("TTN join failed\n");
|
||||||
if (EV_REJOIN_FAILED == message) screen_print("TTN rejoin failed\n");
|
if (EV_REJOIN_FAILED == message) screen_print("TTN rejoin failed\n");
|
||||||
@ -334,12 +342,17 @@ void setup() {
|
|||||||
gps_setup();
|
gps_setup();
|
||||||
|
|
||||||
// Show logo on first boot after removing battery
|
// Show logo on first boot after removing battery
|
||||||
|
|
||||||
|
#ifndef ALWAYS_SHOW_LOGO
|
||||||
if (bootCount == 0) {
|
if (bootCount == 0) {
|
||||||
|
#endif
|
||||||
screen_print(APP_NAME " " APP_VERSION, 0, 0);
|
screen_print(APP_NAME " " APP_VERSION, 0, 0);
|
||||||
screen_show_logo();
|
screen_show_logo();
|
||||||
screen_update();
|
screen_update();
|
||||||
delay(LOGO_DELAY);
|
delay(LOGO_DELAY);
|
||||||
|
#ifndef ALWAYS_SHOW_LOGO
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// TTN setup
|
// TTN setup
|
||||||
if (!ttn_setup()) {
|
if (!ttn_setup()) {
|
||||||
@ -382,10 +395,15 @@ void loop() {
|
|||||||
wasPressed = false;
|
wasPressed = false;
|
||||||
if(millis() > minPressMs) {
|
if(millis() > minPressMs) {
|
||||||
// held long enough
|
// held long enough
|
||||||
screen_print("Erasing prefs");
|
#ifndef PREFS_DISCARD
|
||||||
|
screen_print("Discarding prefs disabled\n");
|
||||||
|
#endif
|
||||||
|
#ifdef PREFS_DISCARD
|
||||||
|
screen_print("Discarding prefs!\n");
|
||||||
ttn_erase_prefs();
|
ttn_erase_prefs();
|
||||||
delay(5000); // Give some time to read the screen
|
delay(5000); // Give some time to read the screen
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user