📄 kpd_test_misc1.c
字号:
}
/* no key has been pressed */
if((Key2Pressed == FALSE) && (Key89Pressed == FALSE) && (Key4Pressed == FALSE))
{
/* timeout type */
kpd_id_obtained[0] = (UINT32)msg_changed_event_p->timeout_type;
strcpy (format->var_name, KPD_104_VAR_NO_KEY_MSG1);
KpdResult &= gen_display_table_result(&kpd_id_waited[0], &kpd_id_obtained[0], sizeof(kpd_id_waited[0]), format);
/* registration for keypad timeout one key still pressed for the 2 subscribers */
kpd_ret_obtained[1] = kpd_register_for_keypad_timeout(subscriber_id0, KPD_TIMEOUT_KEY_JAM, 2000);
kpd2_ret_obtained[1] = kpd_register_for_keypad_timeout(subscriber_id1, KPD_TIMEOUT_KEY_JAM, 2000);
LCD_Clear();
LCD_WriteString (1, 0, "\n\n\nPress key 2 during 3 seconds ", NORMAL);
Key2Pressed = TRUE;
}
/* key 4 has been pressed */
if(Key4Pressed == TRUE && KeydiesePressed == TRUE)
{
/* timeout type */
kpd_id_obtained[3] = (UINT32)msg_changed_event_p->timeout_type;
}
break;
}
case KPD_MSG_1: /* call back message */
{
T_TEST_PARAM* kpd_callback_msg = (T_TEST_PARAM*) msg_p;
/* no key has been pressed */
if((Key2Pressed == FALSE) && (Key89Pressed == FALSE) && (Key4Pressed == FALSE) && 0)
{
/* timeout type */
kpd2_id_obtained[0] = kpd_callback_msg->MessageReceived;
strcpy (format->var_name, KPD_104_VAR_NO_KEY_MSG2);
KpdResult &= gen_display_table_result(&kpd2_id_waited[0], &kpd2_id_obtained[0], sizeof(kpd2_id_waited[0]), format);
}
/* key 2 has been pressed */
if(Key2Pressed == TRUE && 0)
{
/* timeout type */
kpd2_id_obtained[1] = kpd_callback_msg->MessageReceived;
strcpy (format->var_name, KPD_104_VAR_ONE_KEY_MSG2);
KpdResult &= gen_display_table_result(&kpd2_id_waited[1], &kpd2_id_obtained[1], sizeof(kpd2_id_waited[1]), format);
}
/* key 8 or 9 have been pressed */
if(Key89Pressed == TRUE && 0)
{
/* timeout type */
kpd2_id_obtained[2] = kpd_callback_msg->MessageReceived;
strcpy (format->var_name, KPD_104_VAR_MORE_KEYS_MSG2);
KpdResult &= gen_display_table_result(&kpd2_id_waited[2], &kpd2_id_obtained[2], sizeof(kpd2_id_waited[2]), format);
}
/* key 4 has been pressed */
if(Key4Pressed == TRUE && KeydiesePressed == TRUE)
{
/* timeout type */
kpd2_id_obtained[3] = kpd_callback_msg->MessageReceived;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
/* subscribtion KEYJAM timeout on 1 key */
strcpy (format->var_name, KPD_104_VAR_ONE_KEY1);
KpdResult &= gen_display_table_result(&kpd_ret_waited[1], &kpd_ret_obtained[1], sizeof(kpd_ret_waited[1]), format);
strcpy (format->var_name, KPD_104_VAR_ONE_KEY2);
KpdResult &= gen_display_table_result(&kpd2_ret_waited[1], &kpd2_ret_obtained[1], sizeof(kpd2_ret_waited[1]), format);
/* subscribtion KEYJAM timeout on more keys */
strcpy (format->var_name, KPD_104_VAR_MORE_KEYS1);
KpdResult &= gen_display_table_result(&kpd_ret_waited[2], &kpd_ret_obtained[2], sizeof(kpd_ret_waited[2]), format);
strcpy (format->var_name, KPD_104_VAR_MORE_KEYS2);
KpdResult &= gen_display_table_result(&kpd2_ret_waited[2], &kpd2_ret_obtained[2], sizeof(kpd2_ret_waited[2]), format);
/* subscribtion for NONE timeout */
strcpy (format->var_name, KPD_104_VAR_1);
KpdResult &= gen_display_table_result(&kpd_ret_waited[3], &kpd_ret_obtained[3], sizeof(kpd_ret_waited[3]), format);
strcpy (format->var_name, KPD_104_VAR_2);
KpdResult &= gen_display_table_result(&kpd2_ret_waited[3], &kpd2_ret_obtained[3], sizeof(kpd2_ret_waited[3]), format);
/* message of NONE timeout */
strcpy (format->var_name, KPD_104_VAR_NONE_MSG1);
KpdResult &= gen_display_table_result(&kpd_id_waited[3], &kpd_id_obtained[3], sizeof(kpd_id_waited[3]), format);
strcpy (format->var_name, KPD_104_VAR_NONE_MSG2);
KpdResult &= gen_display_table_result(&kpd2_id_waited[3], &kpd2_id_obtained[3], sizeof(kpd2_id_waited[3]), format);
/* return test_verdict */
gen_display_report (KpdResult);
if (KpdResult)
{
rtest_send_result(TEST_PASSED);
}
else
{
rtest_send_result(TEST_FAILED);
}
/* Free structure allocation in RTEST */
rvf_free_buf (format);
}
/************************************************************************/
/**
* kpd_test_misc105
*
* Check parameter boundary for kpd_register_for_keypad_timeout
*
* @param : NA
*
* @return : void
*/
void kpd_test_misc105(void)
{
T_KPD_SUBSCRIBER subscriber_id;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
T_RV_RET kpd_id_waited[] = {RV_INVALID_PARAMETER, RV_INVALID_PARAMETER};
T_RV_RET kpd_id_obtained[2];
BOOL KpdResult = TRUE;
/* Structure allocation in RTEST */
T_result_info *format;
if (rvf_get_buf(rtest_get_mb_id(), sizeof(T_result_info), (T_RVF_BUFFER**) &format) == RVF_RED)
{
rtest_send_result(TEST_FAILED);
RV_TEST_TRACE_ERROR("Memory allocation error - test not started");
return;
}
strcpy (format->test_ref, KPD_105_REF);
strcpy (format->test_name, KPD_105_NAME);
strcpy (format->test_comment, KPD_105_COMMENT);
format->display_format = DIS_LONG;
format->display_base = DIS_DEC;
gen_display_header (format);
/* Keypad registration */
kpd_return_path.addr_id = rtest_get_addr_id() + 0;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
/* API called with subscriber initialized with NULL parameter */
kpd_id_obtained[0] = kpd_register_for_keypad_timeout(NULL, KPD_TIMEOUT_NO_KEY, 20);
strcpy (format->var_name, KPD_105_VAR_ER1);
KpdResult &= gen_display_table_result(&kpd_id_waited[0], &kpd_id_obtained[0], sizeof(kpd_id_waited[0]), format);
/* API called with timeout_type initialized with INSIGNIFICANT_VALUE parameter */
kpd_id_obtained[1] = kpd_register_for_keypad_timeout(subscriber_id, 0xff, 20);
strcpy (format->var_name, KPD_105_VAR_ER2);
KpdResult &= gen_display_table_result(&kpd_id_waited[1], &kpd_id_obtained[1], sizeof(kpd_id_waited[1]), format);
/* Keypad unregistration */
kpd_unsubscribe (&subscriber_id);
/* return test_verdict */
gen_display_report (KpdResult);
if (KpdResult)
{
rtest_send_result(TEST_PASSED);
}
else
{
rtest_send_result(TEST_FAILED);
}
/* Free structure allocation in RTEST */
rvf_free_buf (format);
}
/************************************************************************/
/**
* kpd_test_misc106
*
* Check parameter boudary forkpd_register_for_miss_event
*
* @param : NA
*
* @return : void
*/
void kpd_test_misc106(void)
{
T_KPD_SUBSCRIBER subscriber_id;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
T_RV_RET kpd_id_waited[] = {RV_INVALID_PARAMETER, RV_INVALID_PARAMETER};
T_RV_RET kpd_id_obtained[2];
BOOL KpdResult = TRUE;
/* Structure allocation in RTEST */
T_result_info *format;
if (rvf_get_buf(rtest_get_mb_id(), sizeof(T_result_info), (T_RVF_BUFFER**) &format) == RVF_RED)
{
rtest_send_result(TEST_FAILED);
RV_TEST_TRACE_ERROR("Memory allocation error - test not started");
return;
}
strcpy (format->test_ref, KPD_106_REF);
strcpy (format->test_name, KPD_106_NAME);
strcpy (format->test_comment, KPD_106_COMMENT);
format->display_format = DIS_LONG;
format->display_base = DIS_DEC;
gen_display_header (format);
/* Keypad registration */
kpd_return_path.addr_id = rtest_get_addr_id() + 0;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
/* API called with subscriber initialized with NULL parameter */
kpd_id_obtained[0] = kpd_register_for_miss_event(NULL, KPD_MISS_EVENT_ON);
strcpy (format->var_name, KPD_106_VAR_ER1);
KpdResult &= gen_display_table_result(&kpd_id_waited[0], &kpd_id_obtained[0], sizeof(kpd_id_waited[0]), format);
/* API called with timer_type initialized with INSIGNIFICANT_VALUE parameter */
kpd_id_obtained[1] = kpd_register_for_miss_event(subscriber_id, 0xff);
strcpy (format->var_name, KPD_106_VAR_ER2);
KpdResult &= gen_display_table_result(&kpd_id_waited[1], &kpd_id_obtained[1], sizeof(kpd_id_waited[1]), format);
/* Keypad unregistration */
kpd_unsubscribe (&subscriber_id);
/* return test_verdict */
gen_display_report (KpdResult);
if (KpdResult)
{
rtest_send_result(TEST_PASSED);
}
else
{
rtest_send_result(TEST_FAILED);
}
/* Free structure allocation in RTEST */
rvf_free_buf (format);
}
#endif /* #ifndef _WINDOWS */
#endif /* #ifdef (CHIPSET == 12) */
/**
* Main function multiplexing the different demos to process.
*
* This function returns the result of the test.
*
* @param test_number Number of the test to process
* @return Result of the test.
*/
T_RV_MISC_RET kpd_test_misc1(T_RV_MISC_TEST_NBR test_number)
{
T_RV_MISC_RET test_verdict = TEST_IRRECOVERABLY_FAILED;
LCD_Clear ();
rvf_dump_mem();
rvf_dump_tasks();
switch (test_number)
{
/* tests 100 to 106 are available only on target */
#if ((CHIPSET == 12) || (CHIPSET == 15))
/* tests 100 to 106 are available only in HARDWARE decoding mode */
#if(KPD_DECODING_MODE == HARDWARE_DECODING)
case SILICOMP_TEST0:
RV_TEST_TRACE_HIGH("*** KPD MISC 100 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc100);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST1:
RV_TEST_TRACE_HIGH("*** KPD MISC 101 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc101);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST2:
RV_TEST_TRACE_HIGH("*** KPD MISC 102 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc102);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST3:
RV_TEST_TRACE_HIGH("*** KPD MISC 103 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc103);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST4:
RV_TEST_TRACE_HIGH("*** KPD MISC 104 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc104);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST5:
RV_TEST_TRACE_HIGH("*** KPD MISC 105 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc105);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
case SILICOMP_TEST6:
RV_TEST_TRACE_HIGH("*** KPD MISC 106 BEGINS");
test_verdict = rtest_start_test(kpd_test_misc106);
rtest_trace_test_verdict(test_verdict);
return test_verdict;
#endif /* #if KPD_DECODING_MODE == HARDWARE_DECODING */
#endif /* #if (CHIPSET == 12) */
default:
RV_TEST_TRACE_WARNING("KPD Test: Wrong test number");
return test_verdict;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -