PressSensor::PressSensor()
: SensorBase(NULL, PRESS_DATA_NAME),
  mPendingMask(0),
  mInputReader(4)
{
    memset(&mPendingEvent[0], 0, sensors *sizeof(sensors_event_t));
	memset(mClassPath, '\0', sizeof(mClassPath));

	mEnabled[press] = 0;
	mDelay[press] = 0;
    mPendingEvent[press].version = sizeof(sensors_event_t);
    mPendingEvent[press].sensor  = ID_P;
    mPendingEvent[press].type    = SENSOR_TYPE_PRESSURE;
    mPendingEvent[press].magnetic.status = SENSOR_STATUS_ACCURACY_HIGH;
    mPendingEvent[press].version = sizeof(sensors_event_t);

	mEnabled[temperature] = 0;
	mDelay[temperature] = 0;
    mPendingEvent[temperature].sensor  = ID_T;
    mPendingEvent[temperature].type    = SENSOR_TYPE_TEMPERATURE;
    mPendingEvent[temperature].orientation.status = SENSOR_STATUS_ACCURACY_HIGH;
	mPendingEvent[temperature].version = sizeof(sensors_event_t);
	
	if(sensor_get_class_path(mClassPath))
	{
		ALOGE("Can`t find the press sensor!");
	}
}
GSensor::GSensor() :
    SensorBase(NULL, SENSOR_NAME),
    mEnabled(0)
{
    m_gspos = acc_aml_get_install_dir();
    if(0> sensor_get_class_path(class_path) ){
        ALOGE("failed to sensor_get_class_path!!");
        return ;
    }

    ALOGD("dgt GSensor:m_gspos=%d,class_path is %s \n", m_gspos, class_path);
}
Exemple #3
0
AccSensor::AccSensor() :
	SensorBase(NULL, ACC_DATA_NAME),
		mEnabled(0), mDelay(0), mInputReader(32), mHasPendingEvent(false),
		mSensorCoordinate()
{
    memset(&mPendingEvent, 0, sizeof(mPendingEvent));
	memset(mClassPath, '\0', sizeof(mClassPath));

	mPendingEvent.version = sizeof(sensors_event_t);
	mPendingEvent.sensor = ID_A;
	mPendingEvent.type = SENSOR_TYPE_ACCELEROMETER;
	memset(mPendingEvent.data, 0, sizeof(mPendingEvent.data));

	if(sensor_get_class_path(mClassPath))
	{
		ALOGE("Can`t find the Acc sensor!");
	}
	ALOGD("freescale sensor hal");
}
Exemple #4
0
static int sensor_init(struct sensors_poll_context_t *dev)
{
    int ret = -1;
    
    strcpy(class_path,"\0"); 
    strcpy(sensor_name,"\0");
    if(sensor_get_class_path() < 0) {
             ALOGD("sensor get class path error \n");
             return 0;
    }
    if(!(ret = gsensor_cfg())){
               ALOGD("gsensor config error!\n");
               return 0;
    }
    dev->fd = 0;
    dev->fd = open_input_device();
    if(dev->fd <0)
    {
        ALOGD("%s:open device error!",__func__);
        return 0;
    }
    return 1;
}
Exemple #5
0
int main(int argc, char *argv[])
{
    char dev_path[64];
    int fd;
    int x=0;
    int y=0;
    int z=0;
    struct input_event event;
    char buf[64];
    char class_path[256];
    int ret;
    
    INIT_CMD_PIPE();

	if(sensor_get_class_path(class_path,argv[4]) < 0) {
		db_error("can't get the sensor class path\n");
        goto err;	
	}

	ret=sprintf(buf,"%d",1);
	if(0!=set_sysfs_input_attr(class_path,"enable",buf,ret)){
	  	db_warn("can't set sensor enable!!! (%s)\n", strerror(errno));
	}
	  
    fd=open_input_device(argv[4]);
    if (fd== -1) {
            db_error("can't open %s(%s)\n",argv[4], strerror(errno));
            goto err;
    }
    /*
    strncpy(dev_path, "/dev/input/event2", 64);

        fd= open(dev_path, O_RDONLY);
        if (fd== -1) {
            db_error("can't open %s(%s)\n", dev_path, strerror(errno));
            goto err;
        }
    */    
        while(1){
        	ret = read(fd, &event, sizeof(event));
        	if(ret==-1){
        		db_error("can't read %s(%s)\n", dev_path, strerror(errno));
        		goto err;
        		}
       if (event.type == EV_ABS) {

			  	switch (event.code) {
		 	   	case ABS_X:
				    x =event.value;
             	  //db_msg("senser data is: x=%d\n",x);
                         break;
				case ABS_Y:
					y =event.value;
                  // db_msg("senser date is: y=%d\n",y);
					break;				
				case ABS_Z:
					z =event.value;
                 //   db_msg("senser date is:z=%d\n",z);
					break;		
					}
				sprintf(buf,"(%d,%d,%d)",x,y,z);
			  //db_msg("senser data is:x=%d,y=%d,z=%d\n",x,y,z);
				SEND_CMD_PIPE_OK_EX(buf);
                }
        	
       sleep(1);

    }
     close(fd);
err:
    SEND_CMD_PIPE_FAIL();
    EXIT_CMD_PIPE();
    return 0;
}