mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2025-02-23 08:20:13 -05:00
Fix TX display functionality on multiple interfaces
This commit is contained in:
parent
9871a65d50
commit
337af957e1
22
Display.h
22
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;
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user