diff options
Diffstat (limited to 'peripheral/sensors/mraa/Sensor.cpp')
-rw-r--r-- | peripheral/sensors/mraa/Sensor.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/peripheral/sensors/mraa/Sensor.cpp b/peripheral/sensors/mraa/Sensor.cpp deleted file mode 100644 index 849f380..0000000 --- a/peripheral/sensors/mraa/Sensor.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2015 Intel Corporation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <cutils/log.h> -#include <hardware/sensors.h> -#include <errno.h> -#include "Sensor.hpp" - -/* maximum delay: 1000ms */ -const int64_t kMaxDelay = 1000000000; -/* Gravitational acceleration constant in m/s^2 */ -const float Sensor::kGravitationalAcceleration = 9.81f; - -Sensor::Sensor() : acquisitionThread(nullptr), handle(-1), type(-1), delay(kMaxDelay) {} - -Sensor::~Sensor() { - if (acquisitionThread != nullptr) { - delete acquisitionThread; - acquisitionThread = nullptr; - } -} - -int Sensor::activate(int handle, int enabled) { return 0; } - -bool Sensor::readOneEvent(sensors_event_t *event) { - int bytes_read = 0, bytes_to_read = sizeof(sensors_event_t); - int fd = -1; - char *ptr = (char *)event; - - if (acquisitionThread == nullptr) { - ALOGE("%s: sensor %d doesn't have an acquisition thread", __func__, handle); - return false; - } - - /* read one event from the pipe read endpoint */ - fd = acquisitionThread->getReadPipeFd(); - do { - bytes_read = read(fd, ptr, bytes_to_read); - if (bytes_read <= 0) { - break; - } - bytes_to_read -= bytes_read; - ptr += bytes_read; - } while (bytes_to_read > 0); - - if (bytes_to_read != 0) { - return false; - } - - return true; -} - -int Sensor::activateAcquisitionThread(int pollFd, int handle, int enabled) { - if (enabled) { - /* create/init acquisition thread if necessary */ - if (acquisitionThread == nullptr) { - acquisitionThread = new AcquisitionThread(pollFd, this); - if (!acquisitionThread->init()) { - ALOGE("%s: Cannot initialize acquisition thread for sensor %d", - __func__, handle); - delete acquisitionThread; - acquisitionThread = nullptr; - return -1; - } - } else { - ALOGE("%s: Sensor %d is already enabled", __func__, handle); - } - } else { - /* free acquisition thread resources */ - if (acquisitionThread != nullptr) { - delete acquisitionThread; - acquisitionThread = nullptr; - } else { - ALOGE("%s: Sensor %d is already disabled", __func__, handle); - } - } - return 0; -} - -int Sensor::setDelay(int handle, int64_t requestedDelay) { - if (requestedDelay < 0) { - return -EINVAL; - } - - if (requestedDelay > kMaxDelay) { - requestedDelay = kMaxDelay; - } - - this->delay = requestedDelay; - /* wake up thread to immediately change the delay */ - if (acquisitionThread != nullptr) { - return acquisitionThread->wakeup(); - } - - return 0; -} - -int Sensor::batch(int handle, int flags, - int64_t period_ns, int64_t timeout) { - /* batching mode is not supported; call setDelay */ - return setDelay(handle, period_ns); -} - -int Sensor::flush(int handle) { - if (acquisitionThread == nullptr) { - return -EINVAL; - } - - /* batching mode is not supported; generate META_DATA_FLUSH_COMPLETE */ - if (acquisitionThread->generateFlushCompleteEvent()) { - return 0; - } - - return -1; -} |