⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kpd_test_misc1.c

📁 MMI层OBJ不能完全编译
💻 C
📖 第 1 页 / 共 4 页
字号:
				  }

				  /* 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,
                  &notified_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,
                  &notified_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 + -