这篇教程C++ timevalToNano函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中timevalToNano函数的典型用法代码示例。如果您正苦于以下问题:C++ timevalToNano函数的具体用法?C++ timevalToNano怎么用?C++ timevalToNano使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了timevalToNano函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: whileint BladeLight::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_LIGHT) { LOGD_IF(DEBUG,"Light value=%i",event->value); mPendingEvents.light = event->value; } } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvents; mPendingEvents.timestamp=time; count--; numEventReceived++; } } else { LOGE("BladeLight: unknown event (type=%d, code=%d)",type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:asm19,项目名称:android_device_zte_blade,代码行数:33,
示例2: whileint SensorKXTF9::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { processEvent(event->code, event->value); } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); *data++ = mPendingEvent; count--; numEventReceived++; } else { LOGE("SensorKXTF9: unknown event (type=%d, code=%d, value=%d)", type, event->code, event->value); } mInputReader.next(); } return numEventReceived;}
开发者ID:binodnepal,项目名称:android_device_motorola_umts_jordan,代码行数:35,
示例3: whileint TaosProximity::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_PROXIMITY) { LOGD_IF(DEBUG,"Prox value=%i",event->value); mPendingEvents.distance = indexToValue(event->value); } } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); if (mEnabled){ *data++ = mPendingEvents; mPendingEvents.timestamp=time; count--; numEventReceived++; } } else { LOGE("TaosSensor: unknown event (type=%d, code=%d)",type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:AlexStephen,项目名称:ics4blade,代码行数:34,
示例4: getTimestampint AccelSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event;#if FETCH_FULL_EVENT_BEFORE_RETURNagain:#endif while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { float value = event->value; if (event->code == EVENT_TYPE_ACCEL_Y) { mPendingEvent.data[0] = value * CONVERT_A_Y; } else if (event->code == EVENT_TYPE_ACCEL_X) { mPendingEvent.data[1] = value * CONVERT_A_X; } else if (event->code == EVENT_TYPE_ACCEL_Z) { mPendingEvent.data[2] = value * CONVERT_A_Z; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("AccelSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); }#if FETCH_FULL_EVENT_BEFORE_RETURN /* if we didn't read a complete event, see if we can fill and try again instead of returning with nothing and redoing poll. */ if (numEventReceived == 0 && mEnabled == 1) { n = mInputReader.fill(data_fd); if (n) goto again; }#endif return numEventReceived;}
开发者ID:qqedfr,项目名称:kitkat-2,代码行数:59,
示例5: getTimestampint ProximitySensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_PROXIMITY) { if (event->value != -1) { // FIXME: not sure why we're getting -1 sometimes mPendingEvent.distance = indexToValue(event->value); } } } else if (type == EV_SYN) { switch ( event->code ) { case SYN_TIME_SEC: mUseAbsTimeStamp = true; report_time = event->value * 1000000000LL; break; case SYN_TIME_NSEC: mUseAbsTimeStamp = true; mPendingEvent.timestamp = report_time + event->value; break; case SYN_REPORT: if(mUseAbsTimeStamp != true) { mPendingEvent.timestamp = timevalToNano(event->time); } if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } break; } } else { ALOGE("ProximitySensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:AndroidXX,项目名称:android_device_huawei_g760-caf,代码行数:58,
示例6: getTimestampint AccelerationSensor::readEvents(sensors_event_t* data, int count){ //ALOGD("AccelerationSensor::~readEvents() %d", count); if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { if(event == NULL) { ALOGE("llw AccelerationSensor::readEvents() null pointer!!!" ); } else { int type = event->type; if (type == EV_ABS) { float value = event->value; if (event->code == EVENT_TYPE_ACCEL_X) { mPendingEvent.acceleration.x = value * mResolution; } else if (event->code == EVENT_TYPE_ACCEL_Y) { mPendingEvent.acceleration.y = value * mResolution; } else if (event->code == EVENT_TYPE_ACCEL_Z) { mPendingEvent.acceleration.z = value * mResolution; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("AccelerationSensor: unknown event (type=%d, code=%d)", type, event->code); } } mInputReader.next(); } //ALOGD("AccelerationSensor::~readEvents() numEventReceived = %d", numEventReceived); return numEventReceived; }
开发者ID:LeMaker,项目名称:android-actions,代码行数:57,
示例7: whileint GyroscopeSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mPendingEventsFlushCount > 0) { sensors_meta_data_event_t flushEvent; flushEvent.version = META_DATA_VERSION; flushEvent.type = SENSOR_TYPE_META_DATA; flushEvent.meta_data.what = META_DATA_FLUSH_COMPLETE; flushEvent.meta_data.sensor = mPendingEvents.sensor; flushEvent.reserved0 = 0; flushEvent.timestamp = getTimestamp(); *data++ = flushEvent; mPendingEventsFlushCount--; count--; numEventReceived++; } while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_REL) { float value = event->value; if (event->code == EVENT_TYPE_GYRO_X) { mPendingEvents.gyro.x = value * CONVERT_G_X; } else if (event->code == EVENT_TYPE_GYRO_Y) { mPendingEvents.gyro.y = value * CONVERT_G_Y; } else if (event->code == EVENT_TYPE_GYRO_Z) { mPendingEvents.gyro.z = value * CONVERT_G_Z; } else { ALOGE("Gyroscope: unknown event (type=%d, code=%d)", type, event->code); } } else if (type == EV_SYN) { mPendingEvents.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvents; count--; numEventReceived++; } } else { ALOGE("Gyroscope: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:Biktorgj,项目名称:android_device_samsung_pontesolo,代码行数:56,
示例8: whileint AccSensor::readEvents(sensors_event_t * data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if ((type == EV_ABS) || (type == EV_REL) || (type == EV_KEY)) { switch (event->code) { case ACC_EVENT_X : mPendingMask = 1; mPendingEvent.acceleration.x = ACC_UNIT_CONVERSION(event->value); break; case ACC_EVENT_Y : mPendingMask = 1; mPendingEvent.acceleration.y = ACC_UNIT_CONVERSION(event->value); break; case ACC_EVENT_Z : mPendingMask = 1; mPendingEvent.acceleration.z = ACC_UNIT_CONVERSION(event->value); break; } mInputReader.next(); } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); if (mPendingMask) { mPendingMask = 0; mPendingEvent.timestamp = time; if (mEnabled) { mSensorCoordinate.coordinate_data_convert( mPendingEvent.acceleration.v, INSTALL_DIR); *data++ = mPendingEvent; count--; numEventReceived++; } } if (!mPendingMask) { mInputReader.next(); } } else { ALOGE("FslAccSensor: unknown event (type=%d, code=%d)", type, event->code); mInputReader.next(); } } return numEventReceived;}
开发者ID:sky8336,项目名称:mn201307,代码行数:55,
示例9: getTimestamp/** Reading sensor events generated by input event subsystem in kernel driver.*/int ProximitySensor::readEvents (sensors_event_t* data, int count) { if (count < 1) { return -EINVAL; } if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } // data_fd technically set in super class constructor but value got overwritten // so data_fd is set new data_fd = openInput("SRF02 input event module"); ssize_t n = mInputReader.fill(data_fd); if (n < 0) { return n; } int numEventRecieved = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { // evaluating event type set in kernel driver int type = event->type; // ALOGD("sensor in ProximitySensor readEvents() - event->type is: %d", type); if (type == EV_ABS) { if (event->code == ABS_DISTANCE) { // ALOGD("sensor in ProximitySensor readEvents() in if event->code == ABS_DISTANCE -> input event kernel"); mPendingEvent.sensor = ID_PX; mPendingEvent.type = SENSOR_TYPE_PROXIMITY; mPendingEvent.distance = (float) event->value; // ALOGD("sensor srf02 - value is : %d /n ", event->value); } } else if (type == EV_SYN) { // ALOGD("sensor in ProximitySensor readEvents() in if type == EV_SYN"); mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventRecieved++; } } else { ALOGE ("ProximitySensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); mHasPendingEvent=true; } return numEventRecieved;}
开发者ID:Allegra42,项目名称:android-srf02,代码行数:57,
示例10: whileint TSL2771Sensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_LED) { if (event->code == EVENT_TYPE_LIGHT) { mPendingEvents[light].light = event->value; mPendingMask |= 1 << light; mInputReader.next();#ifdef DEBUG_TSL2771 ALOGD("TSL2771Sensor: Received LUX value=%d", event->value);#endif } } else if (type == EV_ABS) { if (event->code == EVENT_TYPE_PROXIMITY) { mPendingEvents[proximity].distance = indexToValue(event->value); mPendingMask |= 1 << proximity; mInputReader.next();#ifdef DEBUG_TSL2771 ALOGD("TSL2771Sensor: Received Proximity value=%d", event->value);#endif } } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); for (int j=0 ; count && mPendingMask && j<numSensors ; j++) { if (mPendingMask & (1 << j)) { mPendingMask &= ~(1 << j); mPendingEvents[j].timestamp = time; *data++ = mPendingEvents[j]; count--; numEventReceived++; } } if (!mPendingMask) { mInputReader.next(); } } else { ALOGE("TSL2771Sensor: unknown event (type=%d, code=%d)", type, event->code); } } return numEventReceived;}
开发者ID:richardxu,项目名称:panda-a4,代码行数:54,
示例11: getTimestampint OrientationSensor::readEvents(sensors_event_t* data, int count){ //LOGD("OrientationSensor::~readEvents() %d", count); if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; /*LOGE("OrientationSensor: unknown event (type=%d, code=%d, value=%d)", type, event->code,event->value);*/ if (type == EV_ABS) { float value = event->value; if (event->code == EVENT_TYPE_YAW) { mPendingEvent.orientation.azimuth = value * CONVERT_O_A; } else if (event->code == EVENT_TYPE_PITCH) { mPendingEvent.orientation.pitch = value * CONVERT_O_P; } else if (event->code == EVENT_TYPE_ROLL) { mPendingEvent.orientation.roll = value * CONVERT_O_R; }else { LOGE("OrientationSensor: unknown event (type=%d, code=%d)", type, event->code);} } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { LOGE("OrientationSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } //LOGD("OrientationSensor::~readEvents() numEventReceived = %d", numEventReceived); return numEventReceived++; }
开发者ID:cas-xp,项目名称:android_device_lepan_griffin,代码行数:53,
示例12: pthread_mutex_lockint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; pthread_mutex_lock(&mLock); if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } // ssize_t n = mInputReader.fill(data_fd);// if (n < 0)// return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(data_fd,&event)) { int type = event->type; if (type == EV_REL) { if (event->code == REL_X) { // Convert adc value to lux assuming: // I = 10 * log(Ev) uA // R = 47kOhm // Max adc value 4095 = 3.3V // 1/4 of light reaches sensor// mPendingEvent.light = powf(10, event->value * (330.0f / 4095.0f / 47.0f)) * 4; mPendingEvent.light = event->value; } } else if (type == EV_SYN) {// ALOGE("LightSensor: lux = %f ++++++++++++++++++++++",mPendingEvent.light); mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } //LOGD("GyroscopeSensor::~readEvents() numEventReceived = %d", numEventReceived); pthread_mutex_unlock(&mLock); return numEventReceived++; }
开发者ID:Frontier314,项目名称:android_device_mixtile_garage,代码行数:52,
示例13: whileint GyroSensor::readEvents(sensors_event_t* data, int count){ static int64_t prev_time; int64_t time; if (count < 1) return -EINVAL; if(data_fd < 0) return 0; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { processEvent(event->code, event->value); mInputReader.next(); }else if (type == EV_SYN) { time = timevalToNano(event->time); if (mPendingMask) { mPendingMask = 0; mPendingEvent.timestamp = time; if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } if (!mPendingMask) { mInputReader.next(); } } else { ALOGE("AccelSensor: unknown event (type=%d, code=%d)", type, event->code); mInputReader.next(); } } return numEventReceived;}
开发者ID:JosephAtGMEMS,项目名称:AllWinner_A33,代码行数:52,
示例14: getTimestampint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0){ LOGE("LightSensor::readEvents mInputReader.fill failed!!"); return n; } int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == ABS_X) { mPendingEvent.light = event->value ; // indexToValue(event->value); if (mEventsSinceEnable < FIRST_GOOD_EVENT) mEventsSinceEnable++; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled && (mPendingEvent.light != mPreviousLight) && mEventsSinceEnable >= FIRST_GOOD_EVENT) { *data++ = mPendingEvent; count--; numEventReceived++; mPreviousLight = mPendingEvent.light; #ifdef DBG_LIGHT LOGE("light_sensor:data->sensor =%d,data->type=%d,mPendingEvent.light=%f", data->sensor ,data->type ,mPendingEvent.light); #endif } } else { LOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:bayger,项目名称:android_devices_amlogic,代码行数:51,
示例15: getTimestampint AccelSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_ACCEL_X) mPendingEvent.acceleration.x = event->value * CONVERT_A; else if (event->code == EVENT_TYPE_ACCEL_Y) mPendingEvent.acceleration.y = event->value * CONVERT_A; else if (event->code == EVENT_TYPE_ACCEL_Z) mPendingEvent.acceleration.z = event->value * CONVERT_A; } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("AccelSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:darkankka,项目名称:device_huawei_u8800,代码行数:50,
示例16: readint InputEventSensor::getData(std::queue<sensors_event_t> &eventQue) { struct input_event inputEvent[32]; int count, ret; ret = read(pollfd, inputEvent, 32 * sizeof(struct input_event)); if (ret < 0 || ret % sizeof(struct input_event)) { log_message(CRITICAL,"Read input event error! ret: %d", ret); return -1; } count = ret / sizeof(struct input_event); for (int i = 0; i < count; i++) { if ((inputEvent[i].type == EV_REL || inputEvent[i].type == EV_ABS) && !inputDataOverrun) { log_message(CRITICAL,"in EV_REL/n"); float value = SensorHubHelper::ConvertToFloat(inputEvent[i].value, device.getType()); if ((inputEvent[i].type == EV_REL && inputEvent[i].code == REL_X) || (inputEvent[i].type == EV_ABS && inputEvent[i].code == ABS_X)) event.data[device.getMapper(AXIS_X)] = value * device.getScale(AXIS_X); else if ((inputEvent[i].type == EV_REL && inputEvent[i].code == REL_Y) || (inputEvent[i].type == EV_ABS && inputEvent[i].code == ABS_Y)) event.data[device.getMapper(AXIS_Y)] = value * device.getScale(AXIS_Y); else if ((inputEvent[i].type == EV_REL && inputEvent[i].code == REL_Z) || (inputEvent[i].type == EV_ABS && inputEvent[i].code == ABS_Z)) event.data[device.getMapper(AXIS_Z)] = value * device.getScale(AXIS_Z); } else if (inputEvent[i].type == EV_SYN) { log_message(CRITICAL,"in EV_SYN/n"); if (inputEvent[i].code == SYN_DROPPED) { log_message(CRITICAL,"input event overrun"); inputDataOverrun = true; } else if (inputDataOverrun) { inputDataOverrun = false; } else { event.timestamp = timevalToNano(inputEvent[i].time); if (Calibration != NULL) Calibration(&event, CALIBRATION_DATA, data.calibrationFile.c_str()); else if (device.getEventProperty() == VECTOR) event.acceleration.status = SENSOR_STATUS_ACCURACY_MEDIUM; eventQue.push(event); } } } return 0;}
开发者ID:yutokt,项目名称:android_vendor_intel,代码行数:50,
示例17: whileint AccelerationSensor::readEvents(sensors_event_t* data, int count){ //ALOGE("fwq read Event 1/r/n"); if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; //ALOGE("fwq1..../r/n"); if (type == EV_ABS) { processEvent(event->code, event->value); //ALOGE("fwq2..../r/n"); } else if (type == EV_SYN) { //ALOGE("fwq3..../r/n"); int64_t time = timevalToNano(event->time); mPendingEvent.timestamp = time; if (mEnabled) { //ALOGE("fwq4..../r/n"); if (mPendingEvent.timestamp >= mEnabledTime) { //ALOGE("fwq5..../r/n"); *data++ = mPendingEvent; numEventReceived++; } count--; } } else if (type != EV_ABS) { ALOGE("AccelerationSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } //ALOGE("fwq read Event 2/r/n"); return numEventReceived;}
开发者ID:PixNDom,项目名称:android_hardware_mediatek,代码行数:49,
示例18: getTimestampint CompassSensor::readEvents(sensors_event_t* data, int count){ //LOGD("CompassSensor::readEvents() %d", count); if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { float value = event->value; if (event->code == EVENT_TYPE_MAGV_X) { mPendingEvent.magnetic.x = value * CONVERT_M_X; } else if (event->code == EVENT_TYPE_MAGV_Y) { mPendingEvent.magnetic.y = value * CONVERT_M_Y; } else if (event->code == EVENT_TYPE_MAGV_Z) { mPendingEvent.magnetic.z = value * CONVERT_M_Z; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { LOGE("CompassSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } //LOGD("CompassSensor::~readEvents() numEventReceived = %d", numEventReceived); return numEventReceived++; }
开发者ID:V6ser,项目名称:device_samsung_galaxy5,代码行数:49,
示例19: getTimestampint AccSensor::readEvents(sensors_event_t * data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const *event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { float value = event->value; if (event->code == EVENT_TYPE_ACCEL_X) { mPendingEvent.acceleration.x = ACC_UNIT_CONVERSION(value); } else if (event->code == EVENT_TYPE_ACCEL_Y) { mPendingEvent.acceleration.y = ACC_UNIT_CONVERSION(value); } else if (event->code == EVENT_TYPE_ACCEL_Z) { mPendingEvent.acceleration.z = ACC_UNIT_CONVERSION(value); } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { mSensorCoordinate.coordinate_data_convert( mPendingEvent.acceleration.v, INSTALL_DIR); *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("AccSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:sky8336,项目名称:mn201307,代码行数:48,
示例20: LOGDint ProximitySensor::readEvents(sensors_event_t* data, int count){ LOGD("LightSensor::readEvents count = %d", count); if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { // processEvent(event->code, event->value); // mInputReader.next(); if (event->code == EVENT_TYPE_PROXIMITY) { // In distance mode, SenseTek driver will report 0(near) or 1 (far) // convert to float directly mPendingEvent.distance = ((float)event->value)*10.0f; LOGE("ProximitySensor readevents distance%f",mPendingEvent.distance); } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { LOGE("STKProximitySensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:gp-b2g,项目名称:hardware_libhardware,代码行数:47,
示例21: LOGDint LightSensor::readEvents(sensors_event_t* data, int count){ LOGD("LightSensor::readEvents count = %d", count); if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { processEvent(event->code, event->value); mInputReader.next(); } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); for (int j=0 ; count && mPendingMask && j<numSensors ; j++) { if (mPendingMask & (1<<j)) { mPendingMask &= ~(1<<j); mPendingEvents[j].timestamp = time; //LOGD("data=%8.5f,%8.5f,%8.5f", //mPendingEvents[j].data[0], //mPendingEvents[j].data[1], //mPendingEvents[j].data[2]); if (mEnabled[j]) { *data++ = mPendingEvents[j]; count--; numEventReceived++; } } } if (!mPendingMask) { mInputReader.next(); } } else { LOGE("AkmSensor: unknown event (type=%d, code=%d)", type, event->code); mInputReader.next(); } } return numEventReceived;}
开发者ID:gp-b2g,项目名称:hardware_libhardware,代码行数:47,
示例22: getTimestampint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_LIGHT) { // Convert adc value to lux assuming: // I = 10 * log(Ev) uA // R = 47kOhm // Max adc value 4095 = 3.3V // 1/4 of light reaches sensor mPendingEvent.light = powf(10, event->value * (330.0f / 4095.0f / 47.0f)) * 4; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:CarbonDev,项目名称:android_device_samsung_crespo,代码行数:46,
示例23: Dint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; D("LightSensor::%s", __func__); while (count && mInputReader.readEvent(&event)) { int type = event->type; D("LightSensor:%s, type = %d, code = %d, count = %d", __func__, type, event->code, count); if (type == EV_ABS && !inputDataOverrun) { float value = event->value; if (event->code == ABS_MISC) mPendingEvent.light = value * mGlassFactor; } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (event->code == SYN_DROPPED) { LOGE("LightSensor: input event overrun, dropped event:drop"); inputDataOverrun = 1; } else if (inputDataOverrun) { LOGE("LightSensor: input event overrun, dropped event:sync"); inputDataOverrun = 0; } else { D("LightSensor::%s, in type = EV_SYN, mEnabled = %d", __func__, mEnabled); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } } else { LOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } D("LightSensor::%s, return numEventReceived= %d", __func__, numEventReceived); return numEventReceived;}
开发者ID:yutokt,项目名称:android_vendor_intel,代码行数:46,
示例24: getTimestampint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_LIGHT) { if (event->value != -1) { LOGV("LightSensor: event (value=%d)", event->value); // FIXME: not sure why we're getting -1 sometimes mPendingEvent.light = event->value; } } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { LOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:AndroidTransformers,项目名称:android_device_samsung_epic4gtouch,代码行数:45,
示例25: getTimestampint LightSensor29023::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_LIGHT) { mPendingEvent.light = indexToValue(event->value); #if SENSOR_DEBUG ALOGD_IF(SENSOR_DEBUG,"LightSensor29023::readEvents light =%f/n",mPendingEvent.light); #endif } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("LightSensor29023: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:apc-io,项目名称:Vixen-device_via_common,代码行数:44,
示例26: getTimestampint LightSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_LED) { if (event->code == EVENT_TYPE_LIGHT) { mPendingEvent.light = event->value; ALOGD("LightSensor: Received LUX value=%d", event->value); } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mPendingEvent.light != mPreviousLight) { *data++ = mPendingEvent; count--; numEventReceived++; mPreviousLight = mPendingEvent.light; } } else { ALOGE("LightSensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:richardxu,项目名称:panda-a4,代码行数:44,
示例27: while// TODO readEventsint AccelerometerSensor::readEvents(sensors_event_t* data, int count) { if(count < 1) { return -EINVAL; } ssize_t n = mInputReader.fill(data_fd); if(n < 0) { return n; } int numEventReceived = 0; input_event const* event; while(count && mInputReader.readEvent(&event)) { int type = event->type; if(type == EV_ABS) { processEvent(event->code, event->value); mInputReader.next(); } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); for (int j = 0; count && mPendingMask && j < numSensors; j++) { if(mPendingMask & (1<<j)) { mPendingMask &= ~(1<<j); mPendingEvents[j].timestamp = time; if(mEnabled & (1<<j)) { *data++ = mPendingEvents[j]; count--; numEventReceived++; } } } if(!mPendingMask) { mInputReader.next(); } } else { LOGE("Accelerometer: unknown event(type=%d, code=%d)", type, event->code); mInputReader.next(); } } return numEventReceived;}
开发者ID:suzp1984,项目名称:donkey,代码行数:44,
示例28: getTimestampint PressureSensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_REL) { if (event->code == EVENT_TYPE_PRESSURE) { mPendingEvent.pressure = event->value * PRESSURE_HECTO; } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { ALOGE("%s: unknown event (type=%d, code=%d)", LOGTAG, type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:AOSB,项目名称:android_device_samsung_t0lte,代码行数:41,
示例29: getTimestampint ProximitySensor::readEvents(sensors_event_t* data, int count){ if (count < 1) return -EINVAL; if (mHasPendingEvent) { mHasPendingEvent = false; mPendingEvent.timestamp = getTimestamp(); *data = mPendingEvent; return mEnabled ? 1 : 0; } ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if (type == EV_ABS) { if (event->code == EVENT_TYPE_PROXIMITY) { mPendingEvent.distance = indexToValue(event->value); } } else if (type == EV_SYN) { mPendingEvent.timestamp = timevalToNano(event->time); if (mEnabled) { *data++ = mPendingEvent; count--; numEventReceived++; } } else { LOGE("ProximitySensor: unknown event (type=%d, code=%d)", type, event->code); } mInputReader.next(); } return numEventReceived;}
开发者ID:nippongo,项目名称:FreeXperia,代码行数:41,
示例30: whileint PressSensor::readEvents(sensors_event_t* data, int count){ int i; if (count < 1) return -EINVAL; ssize_t n = mInputReader.fill(data_fd); if (n < 0) return n; int numEventReceived = 0; input_event const* event; while (count && mInputReader.readEvent(&event)) { int type = event->type; if ((type == EV_ABS) || (type == EV_REL) || (type == EV_KEY)) { processEvent(event->code, event->value); mInputReader.next(); } else if (type == EV_SYN) { int64_t time = timevalToNano(event->time); for(i = 0 ; i< sensors && mPendingMask && count ;i++){ if(mPendingMask & (1 << i)){ mPendingMask &= ~(1 << i); mPendingEvent[i].timestamp = time; if (mEnabled[i]) { *data++ = mPendingEvent[i]; count--; numEventReceived++; } } } if (!mPendingMask) { mInputReader.next(); } } else { mInputReader.next(); } } return numEventReceived;}
开发者ID:PDi-Communication-Systems-Inc,项目名称:lollipop_hardware_imx,代码行数:41,
注:本文中的timevalToNano函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ timeval_current函数代码示例 C++ timestr函数代码示例 |