mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2025-04-29 03:46:24 -04: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;
|
uint32_t display_blanking_timeout = DISPLAY_BLANKING_TIMEOUT;
|
||||||
uint8_t display_unblank_intensity = display_intensity;
|
uint8_t display_unblank_intensity = display_intensity;
|
||||||
bool display_blanked = false;
|
bool display_blanked = false;
|
||||||
bool display_tx = false;
|
bool display_tx[INTERFACE_COUNT] = {false};
|
||||||
bool recondition_display = false;
|
bool recondition_display = false;
|
||||||
int disp_update_interval = 1000/disp_target_fps;
|
int disp_update_interval = 1000/disp_target_fps;
|
||||||
int epd_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;
|
uint8_t online_interfaces = 0;
|
||||||
|
|
||||||
#if DISP_H == 64
|
|
||||||
#define WATERFALL_SIZE 46
|
#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[INTERFACE_COUNT][WATERFALL_SIZE] = {0};
|
||||||
int waterfall_head[INTERFACE_COUNT] = {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
|
||||||
// #define WF_TX_SIZE 5
|
|
||||||
//#else
|
|
||||||
#define WF_TX_SIZE 5
|
|
||||||
//#endif
|
|
||||||
#define WF_RSSI_MAX -60
|
#define WF_RSSI_MAX -60
|
||||||
#define WF_RSSI_MIN -135
|
#define WF_RSSI_MIN -135
|
||||||
#define WF_RSSI_SPAN (WF_RSSI_MAX - WF_RSSI_MIN)
|
#define WF_RSSI_SPAN (WF_RSSI_MAX - WF_RSSI_MIN)
|
||||||
#if disp_mode == DISP_MODE_LANDSCAPE
|
#define WF_PIXEL_WIDTH 10
|
||||||
#define WF_PIXEL_WIDTH (DISP_H / WF_RSSI_SPAN)
|
|
||||||
#else
|
|
||||||
#define WF_PIXEL_WIDTH (DISP_W / WF_RSSI_SPAN)
|
|
||||||
#endif
|
|
||||||
void draw_waterfall(int px, int py) {
|
void draw_waterfall(int px, int py) {
|
||||||
int rssi_val = interface_obj[interface_page]->currentRssi();
|
int rssi_val = interface_obj[interface_page]->currentRssi();
|
||||||
if (rssi_val < WF_RSSI_MIN) rssi_val = WF_RSSI_MIN;
|
if (rssi_val < WF_RSSI_MIN) rssi_val = WF_RSSI_MIN;
|
||||||
if (rssi_val > WF_RSSI_MAX) rssi_val = WF_RSSI_MAX;
|
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;
|
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++) {
|
for (uint8_t i; i < WF_TX_SIZE; i++) {
|
||||||
waterfall[interface_page][waterfall_head[interface_page]++] = -1;
|
waterfall[interface_page][waterfall_head[interface_page]++] = -1;
|
||||||
if (waterfall_head[interface_page] >= WATERFALL_SIZE) waterfall_head[interface_page] = 0;
|
if (waterfall_head[interface_page] >= WATERFALL_SIZE) waterfall_head[interface_page] = 0;
|
||||||
}
|
}
|
||||||
display_tx = false;
|
display_tx[interface_page] = false;
|
||||||
} else {
|
} else {
|
||||||
waterfall[interface_page][waterfall_head[interface_page]++] = rssi_normalised;
|
waterfall[interface_page][waterfall_head[interface_page]++] = rssi_normalised;
|
||||||
if (waterfall_head[interface_page] >= WATERFALL_SIZE) waterfall_head[interface_page] = 0;
|
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;
|
queued_bytes[index] = 0;
|
||||||
selected_radio->updateAirtime();
|
selected_radio->updateAirtime();
|
||||||
queue_flushing = false;
|
queue_flushing = false;
|
||||||
|
|
||||||
|
#if HAS_DISPLAY
|
||||||
|
display_tx[radio->getIndex()] = true;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void pop_queue(RadioInterface* radio) {
|
void pop_queue(RadioInterface* radio) {
|
||||||
@ -696,7 +700,7 @@ void pop_queue(RadioInterface* radio) {
|
|||||||
queue_flushing = false;
|
queue_flushing = false;
|
||||||
|
|
||||||
#if HAS_DISPLAY
|
#if HAS_DISPLAY
|
||||||
display_tx = true;
|
display_tx[radio->getIndex()] = true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user