Exemplo n.º 1
0
 int GSensor:: enable(int handle, int enabled) {
	char buffer[20];

	int bytes = sprintf(buffer, "%d\n", enabled);

	return set_sysfs_input_attr(class_path,"enable",buffer,bytes);
}
Exemplo n.º 2
0
int GSensor:: setDelay(int handle, int64_t ns) {
	char buffer[20];
	int ms=ns/1000000;
	int bytes = sprintf(buffer, "%d\n", ms);

	return set_sysfs_input_attr(class_path,"delay",buffer,bytes);
}
Exemplo n.º 3
0
int GyroSensor::setDelay(int32_t handle, int64_t delay_ns)
{
        char buf[80];
        
        int bytes = sprintf(buf, "%lld", delay_ns/1000 / 1000);
        int err = set_sysfs_input_attr(gyrSensorInfo.classPath,"pollrate_us",buf,bytes);
        
        return err;
}
int AccelSensor::writeEnable(int isEnable) {

        char buf[2];  
        int err = -1 ;     
        
	if(gsensorInfo.classPath[0] == ICHAR)
		return -1;
	
	int bytes = sprintf(buf, "%d", isEnable);
		
        if(!strcmp(ACC_DATA_NAME, "lsm303d_acc")) {                
                err = set_sysfs_input_attr(gsensorInfo.classPath,"enable_device",buf,bytes);        
        }else {			
	        err = set_sysfs_input_attr(gsensorInfo.classPath,"enable",buf,bytes);
        }
        
	return err;
}
static int poll__activate(struct sensors_poll_device_t *device,
        int handle, int enabled) {

	sensors_poll_context_t *dev = (sensors_poll_context_t *)device;
	char buffer[20];

	int bytes = sprintf(buffer, "%d\n", enabled);

	set_sysfs_input_attr(dev->class_path,"enable",buffer,bytes);

	return 0;
}
static int poll__setDelay(struct sensors_poll_device_t *device,
        int handle, int64_t ns) {

	sensors_poll_context_t *dev = (sensors_poll_context_t *)device;
	char buffer[20];
	int ms=ns/1000000;
	int bytes = sprintf(buffer, "%d\n", ms);

	set_sysfs_input_attr(dev->class_path,"delay",buffer,bytes);

	return 0;

}
int AccelSensor::writeDelay(int64_t ns) {
	if(gsensorInfo.classPath[0] == ICHAR)
		return -1;

	if (ns > 10240000000LL) {
		ns = 10240000000LL; /* maximum delay in nano second. */
	}
	if (ns < 312500LL) {
		ns = 312500LL; /* minimum delay in nano second. */
	}

        char buf[80];
        int bytes = sprintf(buf, "%lld", ns/1000 / 1000);
        
        if(!strcmp(ACC_DATA_NAME, "lsm303d_acc")) {             
                int err = set_sysfs_input_attr(gsensorInfo.classPath,"pollrate_us",buf,bytes);        
        } else {
                int err = set_sysfs_input_attr(gsensorInfo.classPath,"delay",buf,bytes);
        }

        return 0;

}
Exemplo n.º 8
0
int GyroSensor::setEnable(int32_t handle, int en) {
        
        char buf[2];  
        int err = -1 ;     
        
	if(gyrSensorInfo.classPath[0] == '\0')
		return -1;
	
	int bytes = sprintf(buf, "%d", en);

        if (en != mEnabled) {
                err = set_sysfs_input_attr(gyrSensorInfo.classPath,"enable_device",buf,bytes); 
                mEnabled = en;
        }
        return 0;
}
Exemplo n.º 9
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;
}