?? kpd_test_misc0.c
字號:
{
kpd_unsubscribe(&subscriber_id0);
kpd_unsubscribe(&subscriber_id1);
exit = TRUE;
}
break;
}
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_4 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 11/05/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_4(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit = FALSE;
T_KPD_SUBSCRIBER subscriber_id;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC4: Keys 1,2,3,* and DISC are notified (pressed and released)");
kpd_test_trace("*** KPD TEST MISC4: Keys 1,2,3 are also long press defined (2 sec.)");
kpd_test_trace("*** KPD TEST MISC4: Press DISC to exit");
/* 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 = 5;
notified_keys.notified_keys[0] = KPD_KEY_1;
notified_keys.notified_keys[1] = KPD_KEY_2;
notified_keys.notified_keys[2] = KPD_KEY_3;
notified_keys.notified_keys[3] = KPD_KEY_STAR;
notified_keys.notified_keys[4] = KPD_KEY_DISCONNECT;
kpd_subscribe (&subscriber_id,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
notified_keys.nb_notified_keys = 3;
notified_keys.notified_keys[0] = KPD_KEY_1;
notified_keys.notified_keys[1] = KPD_KEY_2;
notified_keys.notified_keys[2] = KPD_KEY_3;
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF|KPD_LONG_PRESS_NOTIF, 20, 10);
/* 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 == KPD_KEY_DISCONNECT) && (msg_key_event_p->key_info.state == KPD_KEY_RELEASED))
{
kpd_unsubscribe(&subscriber_id);
exit = TRUE;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_5 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 11/05/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_5(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit = FALSE;
T_KPD_SUBSCRIBER subscriber_id;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC5: Keys 1,2,3,* and DISC are notified (pressed and released)");
kpd_test_trace("*** KPD TEST MISC5: Keys 1,2,3 are repeat press defined (2/1 sec.)");
kpd_test_trace("*** KPD TEST MISC5: Key * is long press defined (2 sec.)");
kpd_test_trace("*** KPD TEST MISC5: Press DISC to exit");
/* 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 = 5;
notified_keys.notified_keys[0] = KPD_KEY_1;
notified_keys.notified_keys[1] = KPD_KEY_2;
notified_keys.notified_keys[2] = KPD_KEY_3;
notified_keys.notified_keys[3] = KPD_KEY_STAR;
notified_keys.notified_keys[4] = KPD_KEY_DISCONNECT;
kpd_subscribe (&subscriber_id,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
notified_keys.nb_notified_keys = 3;
notified_keys.notified_keys[0] = KPD_KEY_1;
notified_keys.notified_keys[1] = KPD_KEY_2;
notified_keys.notified_keys[2] = KPD_KEY_3;
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF|KPD_INFINITE_REPEAT_NOTIF, 20, 10);
notified_keys.nb_notified_keys = 1;
notified_keys.notified_keys[0] = KPD_KEY_STAR;
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF|KPD_LONG_PRESS_NOTIF, 20, 10);
/* 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 == KPD_KEY_DISCONNECT) && (msg_key_event_p->key_info.state == KPD_KEY_RELEASED))
{
kpd_unsubscribe(&subscriber_id);
exit = TRUE;
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_6 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 11/05/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_6(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
UINT16 received_event;
T_RV_HDR* msg_p;
BOOL exit = FALSE;
T_KPD_SUBSCRIBER subscriber_id;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
T_RV_RETURN kpd_return_path;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC6: Keys 1,2,3,* and DISC are notified (pressed and released)");
kpd_test_trace("*** KPD TEST MISC6: Key * is repeat press defined (2/1 sec.)");
kpd_test_trace("*** KPD TEST MISC6: Press # to change mode (alphanumeric mode), all keys notified");
kpd_test_trace("*** KPD TEST MISC6: Verify that all the keys are now notified for released event");
kpd_test_trace("*** KPD TEST MISC6: Press DISC to exit");
/* 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 = 6;
notified_keys.notified_keys[0] = KPD_KEY_1;
notified_keys.notified_keys[1] = KPD_KEY_2;
notified_keys.notified_keys[2] = KPD_KEY_3;
notified_keys.notified_keys[3] = KPD_KEY_STAR;
notified_keys.notified_keys[4] = KPD_KEY_DIESE;
notified_keys.notified_keys[5] = KPD_KEY_DISCONNECT;
kpd_subscribe (&subscriber_id,
KPD_DEFAULT_MODE,
¬ified_keys,
kpd_return_path);
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF, 0, 0);
notified_keys.nb_notified_keys = 1;
notified_keys.notified_keys[0] = KPD_KEY_STAR;
kpd_define_key_notification(subscriber_id,¬ified_keys, KPD_FIRST_PRESS_NOTIF|KPD_RELEASE_NOTIF|KPD_INFINITE_REPEAT_NOTIF, 20, 10);
/* 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 == KPD_KEY_DISCONNECT) && (msg_key_event_p->key_info.state == KPD_KEY_RELEASED))
{
kpd_unsubscribe(&subscriber_id);
exit = TRUE;
}
if ((msg_key_event_p->key_info.virtual_key_id == KPD_KEY_DIESE) && (msg_key_event_p->key_info.state == KPD_KEY_RELEASED))
{
notified_keys.nb_notified_keys = KPD_NB_PHYSICAL_KEYS;
kpd_change_mode(subscriber_id, ¬ified_keys, KPD_ALPHANUMERIC_MODE);
}
break;
}
case KPD_STATUS_MSG:
kpd_test_trace("Received status message in mailbox 0");
break;
default :
break;
}
rvf_free_buf(msg_p);
}
}
}
return test_verdict;
}
/********************************************************************************/
/* */
/* Function Name: kpd_test_misc_7 */
/* */
/* Notes: This function executes KPD misc tests. */
/* */
/* Revision History: */
/* 11/05/01 Laurent Sollier Create. */
/* */
/********************************************************************************/
T_RV_MISC_RET kpd_test_misc_7(void)
{
T_RV_MISC_RET test_verdict = TEST_PASSED;
char texte[100];
UINT8 i;
T_KPD_VIRTUAL_KEY_TABLE notified_keys;
/* Test definition */
kpd_test_trace("*** KPD TEST MISC7: Return available keys in default mode");
kpd_get_available_keys(¬ified_keys);
sprintf(texte, "*** KPD TEST MISC7: Result Number of available keys: %d\n", notified_keys.nb_notified_keys);
kpd_test_trace(texte);
for (i = 0; i < notified_keys.nb_notified_keys; i++)
{
sprintf(texte, "*** KPD TEST MISC7: Result Key %d: %d\n", i, notified_keys.notified_keys[i]);
kpd_test_trace(texte);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -