/* Motor Test (250-3-x) Test mode 7.8 */
void *testmode_motor_test(uint32_t sub1_cmd, uint32_t sub2_cmd)
{
	struct testmode_relay_result *relay_result;
	//int cnt =0;
	relay_result = (struct testmode_relay_result *)kzalloc(sizeof(struct testmode_relay_result), GFP_KERNEL);

	relay_result->ret_value = TESTMODE_SUCCESS;

	if(check_lcd_status() <= 0)
		need_to_wait_for_motor = true;

	printk(KERN_INFO "[LGE] testmode_motor_test starts ..\n");

	testmode_input_report_evt(TESTMODE_INPUT_KEY_INIT);
	if(need_to_wait_for_motor==true)
		msleep(10);
	testmode_input_report_evt(TESTMODE_INPUT_KEY_UNLOCK);

	if(need_to_wait_for_motor==true)
		msleep(20);
	
	//for(cnt=0;cnt<6;cnt++)
		//testmode_input_report_evt(TESTMODE_INPUT_KEY_BACK);

	switch (sub2_cmd) 
	{
		case MOTOR_TURN_ON:
			testmode_input_report_evt(TESTMODE_Motor_ON);
			break;
			
		case MOTOR_TURN_OFF:
		 	testmode_input_report_evt(TESTMODE_Moter_OFF);
			break;

		default:
			return testmode_reponse_not_supported();
	}

	need_to_wait_for_motor=false;
	return relay_result;
}
Ejemplo n.º 2
0
void* testmode_accelator(uint32_t sub1_cmd, uint32_t sub2_cmd)
{
	int value;
	char pitch, roll;

	struct testmode_relay_result *relay_result;

	relay_result = (struct testmode_relay_result *)kzalloc(sizeof(struct testmode_relay_result), GFP_KERNEL);
	relay_result->ret_value = TESTMODE_FAIL;

	testmode_input_report_evt(TESTMODE_INPUT_KEY_INIT);
	testmode_input_report_evt(TESTMODE_INPUT_KEY_HOME);

	switch( sub2_cmd )
	{
		case 0: 
			if(ami304_test_mode_get_value( 0, &value ))
				relay_result->ret_value = TESTMODE_SUCCESS;
			else
				break;

			value = (int)(value/10);
			if( value < 0 )
			{
				value = (-1)*value;	
				relay_result->ret_string[0] = 0x01;
			}
			else
			{
				relay_result->ret_string[0] = 0x02;	
			}
			if(value > 180 ) value =180;
			pitch = (char)(value > 90 ? 180-value : value);
			relay_result->ret_string[1] = pitch;
			printk("****testmode_accelator****: sign = %d, pitch = %d \n", relay_result->ret_string[0], relay_result->ret_string[1] );
			break;

		case 1: 
			if(	ami304_test_mode_get_value( 1, &value ))
				relay_result->ret_value = TESTMODE_SUCCESS;
			else
				break;

			value = (int)(value/10);
			if( value < 0 )
			{
				value = (-1)*value;					
				relay_result->ret_string[0] = 0x01;
			}
			else
			{
				relay_result->ret_string[0] = 0x02;
			}
			if(value > 180 ) value =180;
			roll = (char)(value > 90 ? (180-value) : value);
			relay_result->ret_string[1] = roll;
			printk("****testmode_accelator****: sign = %d, roll = %d \n", relay_result->ret_string[0], relay_result->ret_string[1] );
			break;

		default:
			relay_result->ret_value = TESTMODE_FAIL;
			break;
	}

	

	return relay_result;
		
}