make controlable marker with lever switch, test menu display

This commit is contained in:
TT 2016-11-03 21:56:56 +09:00
parent 23f2b7f695
commit 5498d63751
5 changed files with 106 additions and 30 deletions

1
dsp.c
View file

@ -134,6 +134,7 @@ void calclate_gamma(float *gamma)
acc_ref += (float)rr*rr + (float)ri*ri;
}
rn = sqrtf(acc_ref / len) * 2e3 * len;
//rn = acc_ref;
gamma[0] = -acc_r / rn;
gamma[1] = -acc_i / rn;
}

View file

@ -62,7 +62,7 @@
* @brief Enables the EXT subsystem.
*/
#if !defined(HAL_USE_EXT) || defined(__DOXYGEN__)
#define HAL_USE_EXT FALSE
#define HAL_USE_EXT TRUE
#endif
/**

27
main.c
View file

@ -45,8 +45,7 @@ void scan_lcd(void);
static MUTEX_DECL(mutex);
static THD_WORKING_AREA(waThread1, 384);
static THD_WORKING_AREA(waThread1, 400);
static THD_FUNCTION(Thread1, arg)
{
(void)arg;
@ -67,7 +66,7 @@ static THD_FUNCTION(Thread1, arg)
chMtxLock(&mutex);
scan_lcd();
chMtxUnlock(&mutex);
ui_process();
//ui_process();
#endif
}
}
@ -401,6 +400,7 @@ void scan_lcd(void)
;
palClearPad(GPIOC, GPIOC_LED);
__disable_irq();
/* calculate reflection coeficient */
calclate_gamma(measured[0][i]);
__enable_irq();
@ -409,29 +409,20 @@ void scan_lcd(void)
while (wait_count)
;
__disable_irq();
/* calculate transmission coeficient */
calclate_gamma(measured[1][i]);
__enable_irq();
delay = set_frequency(frequencies[(i+1)%sweep_points]);
#if 0
sweep_plot(frequencies[i], first, measured[0][i], measured[1][i]);
first = FALSE;
#endif
palSetPad(GPIOC, GPIOC_LED);
ui_process();
}
#if 0
for (i = 0; i < sweep_points; i++) {
sweep_plot(frequencies[i], first, measured[0][i], measured[1][i]);
first = FALSE;
}
#endif
#if 0
sweep_tail();
polar_plot(measured);
#endif
if (cal_status & CALSTAT_APPLY)
apply_error_term();
plot_into_index(measured);
draw_cell_all();
}
@ -1096,6 +1087,8 @@ int main(void)
i2sStart(&I2SD2, &i2sconfig);
i2sStartExchange(&I2SD2);
ui_init();
/*
* Shell manager initialization.
*/

View file

@ -70,10 +70,21 @@ void ili9341_drawstring_5x7(char *str, int x, int y, uint16_t fg, uint16_t bg);
/*
* plot.c
*/
#define OFFSETX 15
#define OFFSETY 0
#define WIDTH 291
#define HEIGHT 233
extern int area_width;
extern int area_height;
void plot_init(void);
void set_sweep(int32_t start, int stop);
void redraw(void);
void force_draw_cells(void);
void redraw_marker(int marker);
#define TRACES_MAX 4
@ -174,3 +185,7 @@ extern config_t current_config;
#define PULSE do { palClearPad(GPIOC, GPIOC_LED); palSetPad(GPIOC, GPIOC_LED);} while(0)
void ui_init(void);
void ui_show(void);
void ui_hide(void);

91
plot.c
View file

@ -11,11 +11,7 @@ void cell_draw_marker_info(int m, int n, int w, int h);
void draw_frequencies(void);
static inline void force_set_markmap(void);
void frequency_string(char *buf, size_t len, uint32_t freq);
#define OFFSETX 15
#define OFFSETY 0
#define WIDTH 291
#define HEIGHT 233
void markmap_all_markers(void);
//#define GRID_COLOR 0x0863
uint16_t grid_color = 0x1084;
@ -500,9 +496,9 @@ void plot_into_index(float measured[2][101][2])
#endif
mark_cells_from_index();
markmap_all_markers();
}
void
cell_drawline(int w, int h, int x0, int y0, int x1, int y1, int c)
{
@ -665,6 +661,50 @@ cell_draw_markers(int m, int n, int w, int h)
}
}
void
markmap_marker(int marker)
{
int t;
if (!markers[marker].enabled)
return;
for (t = 0; t < TRACES_MAX; t++) {
if (!trace[t].enabled)
continue;
uint32_t index = trace_index[t][markers[marker].index];
int x = CELL_X(index);
int y = CELL_Y(index);
int m = x>>5;
int n = y>>5;
mark_map(m, n);
if ((x&31) < 6)
mark_map(m-1, n);
if ((x&31) > 32-6)
mark_map(m+1, n);
if ((y&31) < 12) {
mark_map(m, n-1);
if ((x&31) < 6)
mark_map(m-1, n-1);
if ((x&31) > 32-6)
mark_map(m+1, n-1);
}
}
}
void
markmap_all_markers(void)
{
int i;
for (i = 0; i < 4; i++) {
if (!markers[i].enabled)
continue;
markmap_marker(i);
}
}
int area_width = WIDTH;
int area_height = HEIGHT;
void
draw_cell(int m, int n)
{
@ -676,10 +716,10 @@ draw_cell(int m, int n)
int i0, i1;
int i;
int t;
if (x0 + w > WIDTH)
w = WIDTH - x0;
if (y0 + h > HEIGHT)
h = HEIGHT - y0;
if (x0 + w > area_width)
w = area_width - x0;
if (y0 + h > area_height)
h = area_height - y0;
PULSE;
/* draw grid */
@ -777,14 +817,41 @@ void
draw_cell_all(void)
{
int m, n;
for (m = 0; m < (WIDTH+CELLWIDTH-1) / CELLWIDTH; m++)
for (n = 0; n < (HEIGHT+CELLHEIGHT-1) / CELLHEIGHT; n++)
for (m = 0; m < (area_width+CELLWIDTH-1) / CELLWIDTH; m++)
for (n = 0; n < (area_height+CELLHEIGHT-1) / CELLHEIGHT; n++) {
if (is_mapmarked(m, n))
draw_cell(m, n);
//ui_process();
}
// keep current map for update
swap_markmap();
// clear map for next plotting
clear_markmap();
}
void
redraw_marker(int marker)
{
// mark map on new position of marker
markmap_marker(marker);
// mark cells on marker info
markmap[current_mappage][0] = 0xffff;
draw_cell_all();
}
void
force_draw_cells(void)
{
int n, m;
for (m = 7; m <= 9; m++)
for (n = 0; n < (area_height+CELLHEIGHT-1) / CELLHEIGHT; n++)
draw_cell(m, n);
}
void
cell_drawchar_5x7(int w, int h, uint8_t ch, int x, int y, uint16_t fg)
{