553 lines
14 KiB
C
553 lines
14 KiB
C
#include "ut_display.h"
|
|
#include "..\..\src\logic\display.h"
|
|
|
|
static const uint8_t BACKLIGHT_DIMM = DSP_BACKLIGHT_DIMM_PERCENT;
|
|
static const uint8_t BACKLIGHT_BRIGTH = DSP_BACKLIGHT_BRIGTH_PERCENT;
|
|
|
|
static int ut_dsp_init_ctrl(dsp_ctrl_t* ctrl, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
|
|
dsp_init_ctrl(ctrl);
|
|
|
|
printf(" Output: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: lock:%d act-image:%x \n", exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_init_ctrl_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("void dsp_init_ctrl(dsp_ctrl_t* ctrl) \n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
dsp_ctrl_t ctrl;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0;
|
|
exp_ctrl.img_lock = 0;
|
|
exp_ctrl.act_img = 0x00;
|
|
test_res = ut_dsp_init_ctrl(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0xAA;
|
|
exp_ctrl.img_lock = 0;
|
|
exp_ctrl.act_img = 0x00;
|
|
test_res = ut_dsp_init_ctrl(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_set_lock(dsp_ctrl_t* ctrl, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
|
|
dsp_set_lock(ctrl);
|
|
|
|
printf(" Output: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: lock:%d act-image:%x \n", exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_set_lock_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("void dsp_set_lock(dsp_ctrl_t* ctrl)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
dsp_ctrl_t ctrl;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x18;
|
|
exp_ctrl.img_lock = 1;
|
|
exp_ctrl.act_img = 0x18;
|
|
test_res = ut_dsp_set_lock(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x3F;
|
|
exp_ctrl.img_lock = 1;
|
|
exp_ctrl.act_img = 0x3F;
|
|
test_res = ut_dsp_set_lock(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_reset_lock(dsp_ctrl_t* ctrl, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
|
|
dsp_reset_lock(ctrl);
|
|
|
|
printf(" Output: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: lock:%d act-image:%x \n", exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_reset_lock_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("void dsp_reset_lock(dsp_ctrl_t* ctrl)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
dsp_ctrl_t ctrl;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x18;
|
|
exp_ctrl.img_lock = 0;
|
|
exp_ctrl.act_img = 0x18;
|
|
test_res = ut_dsp_reset_lock(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x18;
|
|
exp_ctrl.img_lock = 0;
|
|
exp_ctrl.act_img = 0x18;
|
|
test_res = ut_dsp_reset_lock(&ctrl, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_img_percent(uint8_t value, dsp_style_t style, dsp_ctrl_t* ctrl, uint8_t exp_out, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: Percent:%d Style:%d lock:%d act-image:%x \n", value, style, ctrl->img_lock, ctrl->act_img);
|
|
|
|
uint8_t out = dsp_img_percent(value, style, ctrl);
|
|
|
|
printf(" Output: image:%x lock:%d act-image:%x \n", out, ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: image:%x lock:%d act-image:%x \n", exp_out, exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((out==exp_out)&&(ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_img_percent_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("uint8_t dsp_img_percent(uint8_t value, dsp_style_t style, dsp_ctrl_t* ctrl)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
uint8_t value;
|
|
dsp_style_t style;
|
|
dsp_ctrl_t ctrl;
|
|
uint8_t exp_out;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
// Test lock
|
|
value = 50;
|
|
style = LED_DSP_BAR;
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = 0x2A;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test styles
|
|
value = 50;
|
|
style = LED_DSP_BAR;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x07;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test styles
|
|
value = 50;
|
|
style = LED_DSP_DOT20;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x04;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test styles
|
|
value = 50;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x0C;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 0;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x01;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 10;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x03;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 20;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x02;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 30;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x06;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 40;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x04;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 50;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x0C;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 60;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x08;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 80;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x10;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 90;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x30;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test values
|
|
value = 110;
|
|
style = LED_DSP_DOT10;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x20;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_percent(value, style, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_img_raw(uint8_t image, dsp_ctrl_t* ctrl, uint8_t exp_out, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: Image:%x lock:%d act-image:%x \n", image, ctrl->img_lock, ctrl->act_img);
|
|
|
|
uint8_t out = dsp_img_raw(image, ctrl);
|
|
|
|
printf(" Output: image:%x lock:%d act-image:%x \n", out, ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: image:%x lock:%d act-image:%x \n", exp_out, exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((out==exp_out)&&(ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_img_raw_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("uint8_t dsp_img_raw(int8_t image, dsp_ctrl_t* ctrl)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
uint8_t image;
|
|
dsp_ctrl_t ctrl;
|
|
uint8_t exp_out;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
// Test lock
|
|
image = 0x17;
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = 0x2A;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_raw(image, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test normal
|
|
image = 0x17;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x17;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_raw(image, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test limit
|
|
image = 0xAA;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x2A;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_raw(image, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test limit
|
|
image = 0xCC;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x00;
|
|
exp_out = 0x0C;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_img_raw(image, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_get_act_img(dsp_ctrl_t* ctrl, uint8_t exp_out, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: lock:%d act-image:%x \n", ctrl->img_lock, ctrl->act_img);
|
|
|
|
uint8_t out = dsp_get_act_img(ctrl);
|
|
|
|
printf(" Output: image:%x lock:%d act-image:%x \n", out, ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: image:%x lock:%d act-image:%x \n", exp_out, exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((out==exp_out)&&(ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_get_act_img_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("uint8_t dsp_get_act_img(void)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
dsp_ctrl_t ctrl;
|
|
uint8_t exp_out;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
// Test
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = 0x2A;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_get_act_img(&ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x3F;
|
|
exp_out = 0x3F;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = exp_out;
|
|
test_res = ut_dsp_get_act_img(&ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|
|
|
|
static int ut_dsp_backlight(uint8_t dimm_act, dsp_ctrl_t* ctrl, uint8_t exp_out, dsp_ctrl_t* exp_ctrl)
|
|
{
|
|
printf(" Input: dimm-act:%d lock:%d act-image:%x \n", dimm_act, ctrl->img_lock, ctrl->act_img);
|
|
|
|
uint8_t out = dsp_backlight(dimm_act);
|
|
|
|
printf(" Output: percent:%x lock:%d act-image:%x \n", out, ctrl->img_lock, ctrl->act_img);
|
|
printf("Expected: percent:%x lock:%d act-image:%x \n", exp_out, exp_ctrl->img_lock, exp_ctrl->act_img);
|
|
|
|
if((out==exp_out)&&(ctrl->img_lock==exp_ctrl->img_lock)&&(ctrl->act_img==exp_ctrl->act_img))
|
|
{
|
|
printf("PASS\n\n");
|
|
return 1;
|
|
}
|
|
else
|
|
{
|
|
printf("FAIL\n\n");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
int ut_dsp_backlight_test(void)
|
|
{
|
|
printf("******************************************************\n");
|
|
printf("uint8_t dsp_backlight(uint8_t dimm_act)\n");
|
|
|
|
int test_res;
|
|
int pass = 1;
|
|
|
|
uint8_t dimm_act;
|
|
dsp_ctrl_t ctrl;
|
|
uint8_t exp_out;
|
|
dsp_ctrl_t exp_ctrl;
|
|
|
|
// Test
|
|
dimm_act = 0;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = DSP_BACKLIGHT_BRIGTH_PERCENT;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = ctrl.act_img;
|
|
test_res = ut_dsp_backlight(dimm_act, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test
|
|
dimm_act = 1;
|
|
ctrl.img_lock = 0;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = DSP_BACKLIGHT_DIMM_PERCENT;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = ctrl.act_img;
|
|
test_res = ut_dsp_backlight(dimm_act, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test lock ignore
|
|
dimm_act = 0;
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = DSP_BACKLIGHT_BRIGTH_PERCENT;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = ctrl.act_img;
|
|
test_res = ut_dsp_backlight(dimm_act, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
// Test lock ignore
|
|
dimm_act = 1;
|
|
ctrl.img_lock = 1;
|
|
ctrl.act_img = 0x2A;
|
|
exp_out = DSP_BACKLIGHT_DIMM_PERCENT;
|
|
exp_ctrl.img_lock = ctrl.img_lock;
|
|
exp_ctrl.act_img = ctrl.act_img;
|
|
test_res = ut_dsp_backlight(dimm_act, &ctrl, exp_out, &exp_ctrl);
|
|
if(!test_res) pass = 0;
|
|
|
|
return pass;
|
|
}
|