[wip] func gen layout finished
This commit is contained in:
@@ -100,13 +100,24 @@ static uint8_t _calcMarkePos(uint32_t value, uint32_t max)
|
||||
return ((62 * value) + (max / 2)) / max;
|
||||
}
|
||||
|
||||
static uint8_t _sizeOfCharArray(char *array)
|
||||
{
|
||||
uint8_t size = 0;
|
||||
while (*array++)
|
||||
{
|
||||
size++;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
static void _drawMeterHelper(GFX_display_t *disp, char *min, char *max, uint8_t pos)
|
||||
{
|
||||
uint8_t max_size = _sizeOfCharArray(max);
|
||||
DISP_drawPixel(disp, 64, 40, GFX_WHITE);
|
||||
DISP_drawPixel(disp, 125, 40, GFX_WHITE);
|
||||
DISP_drawHorizontalLine(disp, 64, 41, 62, GFX_WHITE);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)min, 62, 43, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)max, 117, 43, BM_NORMAL);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)max, 127 - (6 * max_size), 43, BM_NORMAL);
|
||||
// marker 0% - 62, 100% - 123
|
||||
DISP_drawBitmap(disp, &marker, 62 + pos, 35, BM_NORMAL);
|
||||
}
|
||||
@@ -127,6 +138,22 @@ static void _drawAmplValueHelper(GFX_display_t *disp, uint32_t ampl, uint8_t foc
|
||||
DISP_drawBitmap(disp, &marker, marker_ampl_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawOffsValueHelper(GFX_display_t *disp, uint32_t offs, uint8_t focus_digit)
|
||||
{
|
||||
DISP_clearRegion(disp, 64, 13, 66, 40);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"O:", 64, 20, BM_NORMAL);
|
||||
_drawAmplValue(disp, offs, 20);
|
||||
DISP_drawBitmap(disp, &marker, marker_ampl_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawPhaseValueHelper(GFX_display_t *disp, uint32_t phase, uint8_t focus_digit)
|
||||
{
|
||||
DISP_clearRegion(disp, 64, 13, 66, 40);
|
||||
DISP_writeString(disp, &font5x7Info, (uint8_t *)"P:", 64, 20, BM_NORMAL);
|
||||
_drawAmplValue(disp, phase, 20);
|
||||
DISP_drawBitmap(disp, &marker, marker_ampl_pos_x[(AMPL_MAX_DIGIT - 1) - focus_digit], 15, BM_NORMAL);
|
||||
}
|
||||
|
||||
static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
{
|
||||
GEN_fg_t *fun_gen = (GEN_fg_t *)app_data->generator;
|
||||
@@ -141,8 +168,12 @@ static void _drawFuncGenValues(GFX_display_t *disp, APP_data_t *app_data)
|
||||
_drawMeterHelper(disp, "0V", "5V", _calcMarkePos(100, 500));
|
||||
break;
|
||||
case LAY_OFFS:
|
||||
_drawOffsValueHelper(disp, fun_gen->offset, app_data->offs_focus_digit);
|
||||
_drawMeterHelper(disp, "-5V", "+5V", _calcMarkePos(100, 500));
|
||||
break;
|
||||
case LAY_PHAS:
|
||||
_drawPhaseValueHelper(disp, fun_gen->phase, app_data->phas_focus_digit);
|
||||
_drawMeterHelper(disp, "0", "360", _calcMarkePos(100, 500));
|
||||
break;
|
||||
case LAY_MAIN:
|
||||
DISP_clearRegion(disp, 62, 13, 66, 40);
|
||||
|
||||
Reference in New Issue
Block a user