summaryrefslogtreecommitdiff
path: root/Layout/LayoutJoin.cpp
diff options
context:
space:
mode:
authorMike Fiore <mfiore@multitech.com>2015-11-17 13:04:00 -0600
committerMike Fiore <mfiore@multitech.com>2015-11-17 13:04:00 -0600
commit11ac166f3476116b08eeaffc25d80b163573089b (patch)
tree0675e50c2377dbffc37ce3906967b17478f225c0 /Layout/LayoutJoin.cpp
parentb86c62d46385ff454a939f23277761b8ee6b8a0d (diff)
downloadmtdot-box-evb-factory-firmware-11ac166f3476116b08eeaffc25d80b163573089b.tar.gz
mtdot-box-evb-factory-firmware-11ac166f3476116b08eeaffc25d80b163573089b.tar.bz2
mtdot-box-evb-factory-firmware-11ac166f3476116b08eeaffc25d80b163573089b.zip
join works, but only once - added object for running LoRa operations in a thread, lots of misc updates
Diffstat (limited to 'Layout/LayoutJoin.cpp')
-rw-r--r--Layout/LayoutJoin.cpp93
1 files changed, 93 insertions, 0 deletions
diff --git a/Layout/LayoutJoin.cpp b/Layout/LayoutJoin.cpp
new file mode 100644
index 0000000..1b0fb20
--- /dev/null
+++ b/Layout/LayoutJoin.cpp
@@ -0,0 +1,93 @@
+#include "LayoutJoin.h"
+
+LayoutJoin::LayoutJoin(DOGS102* lcd, uint8_t band)
+ : Layout(lcd),
+ _lId(0, 1, "NI="),
+ _lKey(0, 2, "NK="),
+ _lFsb(0, 3, "FSB="),
+ _lRate(0, 5, "DR="),
+ _lPower(6, 5, "P="),
+ _fStatus(0, 0, 17),
+ _fId(3, 1, 14),
+ _fKey(3, 2, 14),
+ _fFsb(4, 3, 2),
+ _fRate(3, 5, 2),
+ _fPower(8, 5, 2),
+ _fCountdown(0, 7, 9),
+ _fCountdownLabel(0, 6, 17),
+ _fCancel(11, 7, 6),
+ _band(band)
+{}
+
+LayoutJoin::~LayoutJoin() {}
+
+void LayoutJoin::display() {
+ clear();
+ startUpdate();
+
+ writeLabel(_lId);
+ writeLabel(_lKey);
+ if (_band == mDot::FB_915) {
+ writeLabel(_lFsb);
+ }
+ writeLabel(_lRate);
+ writeLabel(_lPower);
+
+ displayCancel();
+
+ endUpdate();
+}
+
+void LayoutJoin::updateId(std::string id) {
+ writeField(_fId, id, true);
+}
+
+void LayoutJoin::updateKey(std::string key) {
+ writeField(_fKey, key, true);
+}
+
+void LayoutJoin::updateFsb(uint8_t band) {
+ char buf[8];
+ size_t size;
+
+ size = snprintf(buf, sizeof(buf), "%u", band);
+ writeField(_fFsb, buf, size, true);
+}
+
+void LayoutJoin::updateRate(std::string rate) {
+ writeField(_fRate, rate);
+}
+
+void LayoutJoin::updatePower(uint32_t power) {
+ char buf[16];
+ size_t size;
+
+ size = snprintf(buf, sizeof(buf), "%lu", power);
+ writeField(_fPower, buf, size, true);
+}
+
+void LayoutJoin::updateStatus(std::string status) {
+ writeField(_fStatus, status, true);
+}
+
+void LayoutJoin::updateCountdown(uint32_t seconds) {
+ char buf[16];
+ size_t size;
+
+ writeField(_fCountdownLabel, "No Free Channel");
+ size = snprintf(buf, sizeof(buf), "%lu", seconds);
+ writeField(_fPower, buf, size, true);
+}
+
+void LayoutJoin::removeCountdown() {
+ removeField(_fCountdownLabel);
+ removeField(_fCountdown);
+}
+
+void LayoutJoin::displayCancel(bool display) {
+ if (display)
+ writeField(_fCancel, "Cancel", true);
+ else
+ removeField(_fCancel);
+}
+