int mag_data_report(MAG_TYPE type,int x, int y, int z, int status) { //MAG_LOG("update!valus: %d, %d, %d, %d\n" , x, y, z, status); struct mag_context *cxt = NULL; check_repeat_data(x,y,z); check_abnormal_data(x,y,z,status); //int err =0; cxt = mag_context_obj; if(MAGNETIC==type) { input_report_abs(cxt->idev, EVENT_TYPE_MAGEL_STATUS, status); input_report_abs(cxt->idev, EVENT_TYPE_MAGEL_X, x); input_report_abs(cxt->idev, EVENT_TYPE_MAGEL_Y, y); input_report_abs(cxt->idev, EVENT_TYPE_MAGEL_Z, z); input_report_rel(cxt->idev, EVENT_TYPE_MAGEL_UPDATE, 1); input_sync(cxt->idev); } if(ORIENTATION==type) { input_report_abs(cxt->idev, EVENT_TYPE_O_STATUS, status); input_report_abs(cxt->idev, EVENT_TYPE_O_X, x); input_report_abs(cxt->idev, EVENT_TYPE_O_Y, y); input_report_abs(cxt->idev, EVENT_TYPE_O_Z, z); input_report_rel(cxt->idev, EVENT_TYPE_O_UPDATE, 1); input_sync(cxt->idev); } return 0; }
int gyro_data_report(int x, int y, int z,int status) { //GYRO_LOG("+gyro_data_report! %d, %d, %d, %d\n",x,y,z,status); struct gyro_context *cxt = NULL; int err =0; check_repeat_data(x,y,z); cxt = gyro_context_obj; input_report_abs(cxt->idev, EVENT_TYPE_GYRO_X, x); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_Y, y); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_Z, z); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_STATUS, status); input_sync(cxt->idev); return err; }
int gyro_data_report(int x, int y, int z, int status, int64_t nt) { struct gyro_context *cxt = NULL; int err = 0; check_repeat_data(x, y, z); cxt = gyro_context_obj; input_report_abs(cxt->idev, EVENT_TYPE_GYRO_X, x); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_Y, y); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_Z, z); input_report_abs(cxt->idev, EVENT_TYPE_GYRO_STATUS, status); input_report_rel(cxt->idev, EVENT_TYPE_GYRO_UPDATE, 1); input_report_rel(cxt->idev, EVENT_TYPE_GYRO_TIMESTAMP_HI, nt >> 32); input_report_rel(cxt->idev, EVENT_TYPE_GYRO_TIMESTAMP_LO, nt & 0xFFFFFFFFLL); input_sync(cxt->idev); return err; }