]> git.tnoah.ca Git - lora-radio.git/commitdiff
Fix TX display functionality on multiple interfaces
authorjacob.eva <x00010@disroot.org>
Mon, 10 Feb 2025 14:06:41 +0000 (14:06 +0000)
committerjacob.eva <x00010@disroot.org>
Mon, 10 Feb 2025 14:06:41 +0000 (14:06 +0000)
Display.h
RNode_Firmware_CE.ino

index 84c9417a5797f15f084f72559a11c13404f1a93c..a1062d772956e7b5c942f9191386d5b360199a1d 100644 (file)
--- a/Display.h
+++ b/Display.h
@@ -182,7 +182,7 @@ uint32_t last_unblank_event = 0;
 uint32_t display_blanking_timeout = DISPLAY_BLANKING_TIMEOUT;
 uint8_t display_unblank_intensity = display_intensity;
 bool display_blanked = false;
-bool display_tx = false;
+bool display_tx[INTERFACE_COUNT] = {false};
 bool recondition_display = false;
 int disp_update_interval = 1000/disp_target_fps;
 int epd_update_interval = 1000/disp_target_fps;
@@ -204,11 +204,7 @@ uint8_t online_interface_list[INTERFACE_COUNT] = {0};
 
 uint8_t online_interfaces = 0;
 
-#if DISP_H == 64
 #define WATERFALL_SIZE 46
-#else
-#define WATERFALL_SIZE int(DISP_H * 0.75) // default to 75% of the display height
-#endif
 
 int waterfall[INTERFACE_COUNT][WATERFALL_SIZE] = {0};
 int waterfall_head[INTERFACE_COUNT] = {0};
@@ -753,30 +749,22 @@ void draw_signal_bars(int px, int py) {
   }
 }
 
-//#if MODEM == SX1280
-//  #define WF_TX_SIZE 5
-//#else
-  #define WF_TX_SIZE 5
-//#endif
+#define WF_TX_SIZE 5
 #define WF_RSSI_MAX -60
 #define WF_RSSI_MIN -135
 #define WF_RSSI_SPAN (WF_RSSI_MAX - WF_RSSI_MIN)
-#if disp_mode == DISP_MODE_LANDSCAPE
-#define WF_PIXEL_WIDTH (DISP_H / WF_RSSI_SPAN)
-#else
-#define WF_PIXEL_WIDTH (DISP_W / WF_RSSI_SPAN)
-#endif
+#define WF_PIXEL_WIDTH 10
 void draw_waterfall(int px, int py) {
   int rssi_val = interface_obj[interface_page]->currentRssi();
   if (rssi_val < WF_RSSI_MIN) rssi_val = WF_RSSI_MIN;
   if (rssi_val > WF_RSSI_MAX) rssi_val = WF_RSSI_MAX;
   int rssi_normalised = ((rssi_val - WF_RSSI_MIN)*(1.0/WF_RSSI_SPAN))*WF_PIXEL_WIDTH;
-  if (display_tx) {
+  if (display_tx[interface_page]) {
     for (uint8_t i; i < WF_TX_SIZE; i++) {
       waterfall[interface_page][waterfall_head[interface_page]++] = -1;
       if (waterfall_head[interface_page] >= WATERFALL_SIZE) waterfall_head[interface_page] = 0;
     }
-    display_tx = false;
+    display_tx[interface_page] = false;
   } else {
     waterfall[interface_page][waterfall_head[interface_page]++] = rssi_normalised;
     if (waterfall_head[interface_page] >= WATERFALL_SIZE) waterfall_head[interface_page] = 0;
index b6f9e068251b7b2d7d7f696ab680a6d28536dde7..d49bbe6e72d88b84ec5a49606c985cf58764edf5 100644 (file)
@@ -660,6 +660,10 @@ void flush_queue(RadioInterface* radio) {
   queued_bytes[index] = 0;
   selected_radio->updateAirtime();
   queue_flushing = false;
+
+  #if HAS_DISPLAY
+    display_tx[radio->getIndex()] = true;
+  #endif
 }
 
 void pop_queue(RadioInterface* radio) {
@@ -696,7 +700,7 @@ void pop_queue(RadioInterface* radio) {
   queue_flushing = false;
 
   #if HAS_DISPLAY
-    display_tx = true;
+    display_tx[radio->getIndex()] = true;
   #endif
 }