?? kpd_test_misc0.c
字號:
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_return_path.addr_id = kpd_test_path.addr_id + KPD_TEST_MBOX_1;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id1,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id1, ¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
notified_keys.nb_notified_keys = 3;
notified_keys.notified_keys[0] = KPD_KEY_5;
notified_keys.notified_keys[1] = KPD_KEY_UP;
notified_keys.notified_keys[2] = KPD_KEY_DIESE;
kpd_own_keypad(subscriber_id1, TRUE, ¬ified_keys);
/* loop to process messages */
while (!(exit1 && exit2))
{
/* 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 == KPD_KEY_DISCONNECT)
{
kpd_unsubscribe(&subscriber_id0);
exit1 = TRUE;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
if (msg_p->dest_addr_id == (kpd_test_path.addr_id + KPD_TEST_MBOX_1))
{
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, 3);
if (msg_key_event_p->key_info.virtual_key_id == KPD_KEY_DISCONNECT)
{
kpd_unsubscribe(&subscriber_id1);
exit2 = TRUE;
}
if (msg_key_event_p->key_info.virtual_key_id == KPD_KEY_STAR)
{
if (msg_key_event_p->key_info.state == KPD_KEY_RELEASED)
kpd_own_keypad(subscriber_id1, FALSE, ¬ified_keys);
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 1");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_15 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 11/05/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_15(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit1 = FALSE;
BOOL exit2 = FALSE;
T_KPD_SUBSCRIBER subscriber_id0;
T_KPD_SUBSCRIBER subscriber_id1;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC15: Two subscribers");
kpd_test_trace("*** KPD TEST MISC15: First subscriber:");
kpd_test_trace("*** KPD TEST MISC15: - notified for all keys");
kpd_test_trace("*** KPD TEST MISC15: Second subscriber:");
kpd_test_trace("*** KPD TEST MISC15: - notified for all keys");
kpd_test_trace("*** KPD TEST MISC15: - Own the keypad for Keys 5, Up, #");
kpd_test_trace("*** KPD TEST MISC15: Press * to unsubscribe the second subscriber");
/* 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_return_path.addr_id = kpd_test_path.addr_id + KPD_TEST_MBOX_1;
kpd_return_path.callback_func = 0;
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_subscribe (&subscriber_id1,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id1, ¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
notified_keys.nb_notified_keys = 3;
notified_keys.notified_keys[0] = KPD_KEY_5;
notified_keys.notified_keys[1] = KPD_KEY_UP;
notified_keys.notified_keys[2] = KPD_KEY_DIESE;
kpd_own_keypad(subscriber_id1, TRUE, ¬ified_keys);
/* loop to process messages */
while (!(exit1 && exit2))
{
/* 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 == KPD_KEY_DISCONNECT)
{
kpd_unsubscribe(&subscriber_id0);
exit1 = TRUE;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
if (msg_p->dest_addr_id == (kpd_test_path.addr_id + KPD_TEST_MBOX_1))
{
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, 3);
if (msg_key_event_p->key_info.virtual_key_id == KPD_KEY_STAR)
{
if (msg_key_event_p->key_info.state == KPD_KEY_RELEASED)
{
kpd_unsubscribe(&subscriber_id1);
exit2 = TRUE;
}
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 1");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* 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_misc0(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)
{
case TI_TEST1:
test_verdict = kpd_test_misc_1();
break;
case TI_TEST2:
test_verdict = kpd_test_misc_2();
break;
case TI_TEST3:
test_verdict = kpd_test_misc_3();
break;
case TI_TEST4:
test_verdict = kpd_test_misc_4();
break;
case TI_TEST5:
test_verdict = kpd_test_misc_5();
break;
case TI_TEST6:
test_verdict = kpd_test_misc_6();
break;
case TI_TEST7:
test_verdict = kpd_test_misc_7();
break;
case TI_TEST8:
test_verdict = kpd_test_misc_8();
break;
case TI_TEST9:
test_verdict = kpd_test_misc_9();
break;
case TI_TEST10:
test_verdict = kpd_test_misc_10();
break;
case TI_TEST11:
test_verdict = kpd_test_misc_11();
break;
case TI_TEST12:
test_verdict = kpd_test_misc_12();
break;
case TI_TEST13:
test_verdict = kpd_test_misc_13();
break;
case TI_TEST14:
test_verdict = kpd_test_misc_14();
break;
case TI_TEST15:
test_verdict = kpd_test_misc_15();
break;
default:
kpd_test_trace("Test not available");
}
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 + -