remote desktop speed increase

Removed_REF_marker
erikkaashoek 5 years ago
parent 85a0fb9afd
commit 7fe319f141

@ -7,7 +7,7 @@
ifeq ($(TARGET),) ifeq ($(TARGET),)
TARGET = F072 TARGET = F072
else else
TARGET=F303 TARGET = F303
endif endif
# Compiler options here. # Compiler options here.

@ -561,15 +561,13 @@ void ili9341_fill(int x, int y, int w, int h)
dmaStreamSetMemory0(dmatx, &background_color); dmaStreamSetMemory0(dmatx, &background_color);
dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD); dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD | STM32_DMA_CR_MSIZE_HWORD);
dmaStreamFlush(w * h);
#ifdef __REMOTE_DESKTOP__ #ifdef __REMOTE_DESKTOP__
if (auto_capture) { if (auto_capture) {
send_region("fill", x,y,w,h); send_region("fill", x,y,w,h);
spi_buffer[0] = background_color; send_buffer((uint8_t *)&background_color, 2);
send_buffer((uint8_t *)spi_buffer, 2);
osalThreadSleepMilliseconds(2);
} }
#endif #endif
dmaStreamFlush(w * h);
} }
// Copy spi_buffer to region // Copy spi_buffer to region
@ -582,14 +580,13 @@ void ili9341_bulk(int x, int y, int w, int h)
dmaStreamSetMemory0(dmatx, spi_buffer); dmaStreamSetMemory0(dmatx, spi_buffer);
dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD | dmaStreamSetMode(dmatx, txdmamode | STM32_DMA_CR_PSIZE_HWORD |
STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_MINC); STM32_DMA_CR_MSIZE_HWORD | STM32_DMA_CR_MINC);
dmaStreamFlush(w * h);
#ifdef __REMOTE_DESKTOP__ #ifdef __REMOTE_DESKTOP__
if (auto_capture) { if (auto_capture) {
send_region("bulk", x,y,w,h); send_region("bulk", x,y,w,h);
send_buffer((uint8_t *)spi_buffer, w*h*2); send_buffer((uint8_t *)spi_buffer, w*h*2);
osalThreadSleepMilliseconds(2);
} }
#endif #endif
dmaStreamFlush(w * h);
} }
#endif #endif

@ -0,0 +1,2 @@
#! /bin/sh
git merge --squash DiSlord-V4-SI4463

@ -897,24 +897,23 @@ VNA_SHELL_FUNCTION(cmd_capture)
void send_region(const char *t, int x, int y, int w, int h) void send_region(const char *t, int x, int y, int w, int h)
{ {
shell_printf("%s\r\n", t); shell_printf(t);
streamPut(shell_stream, (((uint16_t) x) & 0xff)); struct {
streamPut(shell_stream, (((uint16_t)x>>8) & 0xff)); char new_str[2];
streamPut(shell_stream, (((uint16_t) y) & 0xff)); uint16_t x;
streamPut(shell_stream, (((uint16_t)y>>8) & 0xff)); uint16_t y;
streamPut(shell_stream, (((uint16_t) w) & 0xff)); uint16_t w;
streamPut(shell_stream, (((uint16_t)w>>8) & 0xff)); uint16_t h;
streamPut(shell_stream, (((uint16_t) h) & 0xff)); } region={"\r\n", x,y,w,h};
streamPut(shell_stream, (((uint16_t)h>>8) & 0xff)); streamWrite(shell_stream, (void*)&region, sizeof(region));
} }
void send_buffer(uint8_t * buf, int s) void send_buffer(uint8_t * buf, int s)
{ {
for (int i = 0; i < s; i++) { streamWrite(shell_stream, (void*) buf, s);
streamPut(shell_stream, *buf++); streamWrite(shell_stream, (void*)"ch> \r\n", 6);
}
shell_printf("ch> \r\n");
} }
#if 0 #if 0
VNA_SHELL_FUNCTION(cmd_gamma) VNA_SHELL_FUNCTION(cmd_gamma)
{ {

@ -897,7 +897,7 @@ typedef struct setting
int attack; // KM_ATTACK < 20000 int attack; // KM_ATTACK < 20000
int32_t slider_position; int32_t slider_position;
freq_t slider_span; int64_t slider_span;
uint32_t rbw_x10; uint32_t rbw_x10;
uint32_t vbw_x10; uint32_t vbw_x10;

25
ui.c

@ -1989,15 +1989,16 @@ void set_keypad_value(int v)
void check_frequency_slider(freq_t slider_freq) void check_frequency_slider(freq_t slider_freq)
{ {
if ( (maxFreq - minFreq) < (freq_t)setting.slider_span ) { if ( (maxFreq - minFreq) < setting.slider_span ) {
setting.slider_span = maxFreq - minFreq; // absolute mode with max step size setting.slider_span = maxFreq - minFreq; // absolute mode with max step size
} }
freq_t half_span = setting.slider_span >> 1; freq_t half_span = setting.slider_span >> 1;
if (minFreq + (freq_t)half_span > slider_freq) { int temp = (setting.slider_span / (MENU_FORM_WIDTH-8));
setting.slider_position -= (minFreq + half_span - slider_freq) / (setting.slider_span / (MENU_FORM_WIDTH-8)); // reposition if needed if (minFreq + half_span > slider_freq) {
setting.slider_position -= (minFreq + half_span - slider_freq) / temp; // reposition if needed
} }
if (maxFreq < slider_freq + (freq_t)half_span) { if (maxFreq < slider_freq + half_span) {
setting.slider_position += (slider_freq + half_span - maxFreq) / (setting.slider_span /(MENU_FORM_WIDTH-8)); // reposition if needed setting.slider_position += (slider_freq + half_span - maxFreq) / temp; // reposition if needed
} }
} }
@ -2028,7 +2029,7 @@ menu_select_touch(int i, int pos)
if (touch_x != prev_touch_x /* - 1 || prev_touch_x + 1 < touch_x */ ) { if (touch_x != prev_touch_x /* - 1 || prev_touch_x + 1 < touch_x */ ) {
keypad_mode = keypad; keypad_mode = keypad;
fetch_numeric_target(); fetch_numeric_target();
volatile int new_slider = (int)touch_x - LCD_WIDTH/2; // Can have negative outcome int new_slider = touch_x - LCD_WIDTH/2; // Can have negative outcome
if (new_slider < - (MENU_FORM_WIDTH-8)/2) if (new_slider < - (MENU_FORM_WIDTH-8)/2)
new_slider = -(MENU_FORM_WIDTH-8)/2; new_slider = -(MENU_FORM_WIDTH-8)/2;
if (new_slider > (MENU_FORM_WIDTH-8)/2) if (new_slider > (MENU_FORM_WIDTH-8)/2)
@ -2044,9 +2045,7 @@ menu_select_touch(int i, int pos)
} }
} }
if (mode == SL_MOVE ) { if (mode == SL_MOVE ) {
uistat.value = uistat.value - setting.slider_position * ((int)setting.slider_span/(MENU_FORM_WIDTH-8)) + new_slider * ((int)setting.slider_span/(MENU_FORM_WIDTH-8)); uistat.value+= (int)(setting.slider_span/(MENU_FORM_WIDTH-8))*(new_slider - setting.slider_position);
if (uistat.value < 0)
uistat.value = 0;
if (uistat.value < minFreq) if (uistat.value < minFreq)
uistat.value = minFreq; uistat.value = minFreq;
if (uistat.value > maxFreq) if (uistat.value > maxFreq)
@ -2125,7 +2124,6 @@ menu_select_touch(int i, int pos)
if (dt > BUTTON_DOWN_LONG_TICKS || do_exit) { if (dt > BUTTON_DOWN_LONG_TICKS || do_exit) {
selection = -1; selection = -1;
draw_menu(); draw_menu();
redraw_request = 0; // Remove request to redraw grid
return; return;
} }
if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) { if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_LOWOUTLEVEL) {
@ -2151,10 +2149,12 @@ menu_select_touch(int i, int pos)
} else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) { } else if (menu_is_form(menu) && MT_MASK(menu[i].type) == MT_KEYPAD && keypad == KM_CENTER) {
switch (pos) { switch (pos) {
case 0: case 0:
step = -(int)setting.slider_span; step = setting.slider_span;
step =-step;
break; break;
case 1: case 1:
step = -(int)setting.slider_span/10; step = setting.slider_span/10;
step =-step;
break; break;
case 2: case 2:
goto nogo; goto nogo;
@ -2761,7 +2761,6 @@ ui_process_keypad(void)
ui_mode_menu(); //Reactivate menu after keypad ui_mode_menu(); //Reactivate menu after keypad
selection = -1; selection = -1;
ensure_selection(); ensure_selection();
// redraw_request = 0; // Clear all draw requests
redraw_request = REDRAW_BATTERY; // Only redraw battery redraw_request = REDRAW_BATTERY; // Only redraw battery
} else { } else {
ui_mode_normal(); ui_mode_normal();

@ -668,6 +668,7 @@ static UI_FUNCTION_CALLBACK(menu_config_cb)
show_version(); show_version();
break; break;
} }
ui_mode_normal();
redraw_frame(); redraw_frame();
request_to_redraw_grid(); request_to_redraw_grid();
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.