?? kpd_test_misc2.c
字號:
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_203 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_203(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit = FALSE;
T_KPD_SUBSCRIBER subscriber_id0;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC203: Register for key timeout");
kpd_test_trace("*** KPD TEST MISC203: Press NO keys for more than 60 sec to generate interrupt");
/* Keypad registration */
kpd_return_path.addr_id = kpd_test_path.addr_id + KPD_TEST_MBOX_0;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id0,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id0, ¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
kpd_register_for_keypad_timeout(subscriber_id0, KPD_TIMEOUT_NO_KEY, 60000);
/* loop to process messages */
while (!exit)
{
/* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */
received_event = rvf_wait(RVF_TASK_MBOX_0_EVT_MASK,0);
if (received_event & RVF_TASK_MBOX_0_EVT_MASK)
{
/* Read the message */
msg_p = (T_RV_HDR *) rvf_read_mbox(0);
if (msg_p->dest_addr_id == (kpd_test_path.addr_id + KPD_TEST_MBOX_0))
{
switch (msg_p->msg_id)
{
case KPD_KEY_EVENT_MSG:
{
T_KPD_KEY_EVENT_MSG* msg_key_event_p = (T_KPD_KEY_EVENT_MSG*) msg_p;
display_message(msg_key_event_p, 2);
if (msg_key_event_p->key_info.virtual_key_id == EXIT_KEY)
{
kpd_unsubscribe(&subscriber_id0);
exit = TRUE;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
case KPD_KEYPAD_TIMEOUT_MSG:
kpd_test_trace("Received Time out Message");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_204 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* */
/********************************************************************************/
void callback_test204(void *k)
{
UINT8 i;
i++;
}
T_RV_MISC_RET kpd_test_misc_204(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit = FALSE;
T_KPD_SUBSCRIBER subscriber_id0;
T_KPD_SUBSCRIBER subscriber_id1;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
T_RV_RETURN kpd_return_path_1;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC204: Register for timerchanged");
kpd_test_trace("*** KPD TEST MISC204: Press * to register second client");
kpd_test_trace("*** KPD TEST MISC204: First client will receive a timer");
kpd_test_trace("*** KPD TEST MISC204: changed message");
/* Keypad registration */
kpd_return_path.addr_id = kpd_test_path.addr_id + KPD_TEST_MBOX_0;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id0,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id0, ¬ified_keys, KPD_RELEASE_NOTIF|KPD_LONG_PRESS_NOTIF, 1500, 0);
kpd_register_for_timerchanges(subscriber_id0, KPD_TIMER_LONG_PRESS);
/* loop to process messages */
while (!exit)
{
/* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */
received_event = rvf_wait(RVF_TASK_MBOX_0_EVT_MASK,0);
if (received_event & RVF_TASK_MBOX_0_EVT_MASK)
{
/* Read the message */
msg_p = (T_RV_HDR *) rvf_read_mbox(0);
if (msg_p->dest_addr_id == (kpd_test_path.addr_id + KPD_TEST_MBOX_0))
{
switch (msg_p->msg_id)
{
case KPD_KEY_EVENT_MSG:
{
T_KPD_KEY_EVENT_MSG* msg_key_event_p = (T_KPD_KEY_EVENT_MSG*) msg_p;
display_message(msg_key_event_p, 2);
if (msg_key_event_p->key_info.virtual_key_id == EXIT_KEY)
{
kpd_unsubscribe(&subscriber_id0);
exit = TRUE;
}
if (msg_key_event_p->key_info.virtual_key_id == KPD_KEY_STAR)
{
kpd_return_path_1.addr_id = 0;
kpd_return_path_1.callback_func = callback_test204;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id1,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path_1);
kpd_define_key_notification(subscriber_id1, ¬ified_keys, KPD_RELEASE_NOTIF|KPD_LONG_PRESS_NOTIF, 2000, 0);
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
case KPD_TIMER_CHANGED_MSG:
kpd_test_trace("Received Timer changed Message - Client 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
#endif
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 10/29/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc2 (T_RV_MISC_TEST_NBR test_number)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
LCD_Clear ();
rvf_dump_mem();
rvf_dump_tasks();
switch (test_number)
{
#if ((CHIPSET == 12) || (CHIPSET == 15))
case ICT_TEST1:
test_verdict = kpd_test_misc_201();
break;
case ICT_TEST2:
test_verdict = kpd_test_misc_202();
break;
case ICT_TEST3:
test_verdict = kpd_test_misc_203();
break;
case ICT_TEST4:
test_verdict = kpd_test_misc_204();
break;
#endif
default:
kpd_test_trace("Test not available");
test_verdict = TEST_IRRECOVERABLY_FAILED;
}
if (test_verdict != TEST_IRRECOVERABLY_FAILED)
{
rvf_dump_mem();
rvf_dump_tasks();
}
return (test_verdict);
}
/************************ Stop kpd_test_misc function ***********************/
#endif /* #if (KPD_MISC == SW_COMPILED) */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -