int PressSensor::setEnable(int32_t handle, int en)
{
	int err = 0;
	int what = press;
    switch(handle){
		case ID_P : what = press; break;
		case ID_T : what = temperature; break;
    }

    if(en)
		mEnabled[what]++;
	else
		mEnabled[what]--;
	if(mEnabled[what] < 0)
		mEnabled[what] = 0;
	if(mEnabled[press] > 0 || mEnabled[temperature] > 0)
		err = enable_sensor();
	else
		err = disable_sensor();
	if (!err) {
            update_delay(what);
    }
	ALOGD("PressSensor mEnabled %d, Temperature mEnabled %d\n",mEnabled[press],mEnabled[temperature]);
    return err;
}
Esempio n. 2
0
/*----------------------------------------------------
	Disable_sensor_after_IDcert()
-----------------------------------------------------*/
void Disable_sensor_after_IDcert(void)
	{
	if(IDkey_speech_flash == 1)
		{
		IDkey_speech_flash = 0;

		disable_sensor();
		}	
	}
Esempio n. 3
0
/*----------------------------------------------------------------------
		slave_nearby_operation()
		operation for slave is nearby
----------------------------------------------------------------------*/
void slave_nearby_operation(void)
	{	
	// turn on the magnet
	magnet_CW();

	// speech for slave nearby
	slave_nearby_speech();
	// handle with battery status 
	verifybattery(ADC_check_result);					
	// rotate on speech
	key_rotate_on_speech();
	nearby_away_interval = 0;
	
	// turn on ADC timer
	ADC_timecount_EN = 1;
	
	disable_sensor();
	}
Esempio n. 4
0
/*---------------------------------------------------
	Detect_open_action()
---------------------------------------------------*/
void Detect_open_action(void)
	{
//	if((key_rotate == 1)&&(Open_action_flag == 0)&&(ID_certificated_flag == 1)&&(never_alarm == 0))		
	if((key_rotate == 1)&&(Open_action_flag == 0)&&(ID_certificated_flag == 1))		
		{
		disable_sensor();
		Open_action_flag = 1;
		ID_speeched_flag = 0;
		
		After_IDcert_timecount = 0;
		ID_certificated_flag = 0;
		ID_certificated_numbers = 0;
		slave_nearby_actioned_flag = 1;
		ElecMotor_CW();
		slave_nearby_operation();

		Just_power_up = 0;
				
		Autolock_G = 0;
		timer0_count2 = 0;
		} 			
	}
int AccelSensor::setEnable(int32_t handle, int en) {
	int err = 0;
        
	//ALOGD("enable:  handle:  %ld, en: %d", handle, en);
	if(handle != ID_A && handle != ID_O && handle != ID_M)
		return -1;
		
	if(en)
		mUser++;
	else{
		mUser--;
		if(mUser < 0)
			mUser = 0;
	}

	if(mUser > 0)
		err = enable_sensor();
	else
		err = disable_sensor();
		
	if(handle == ID_A ) {
		if(en)
         	        mEnabled++;
		else
			mEnabled--;
		if(mEnabled < 0)
			mEnabled = 0;
        }
        
	//update_delay();
#ifdef DEBUG_SENSOR
	ALOGD("AccelSensor enable %d ,usercount %d, handle %d ,mEnabled %d, err %d", 
	        en, mUser, handle, mEnabled, err);
#endif

        return 0;
}
uint8_t disable_external_temperature_sensor_B() {
	return disable_sensor(external_temperature_sensor_B);
}
// DISABLE TEMPERATURE
uint8_t disable_internal_temperature_sensor() {
	return disable_sensor(internal_temperature_sensor);
}
Esempio n. 8
0
uint8_t disable_light_sensor_B() {
	return disable_sensor(light_sensor_B);
}
Esempio n. 9
0
void stop_r3d2(void)
{
	stop_motor();
	disable_sensor();
}