138bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol/* 238bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Copyright (C) 2016 The Android Open Source Project 338bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * 438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Licensed under the Apache License, Version 2.0 (the "License"); 538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * you may not use this file except in compliance with the License. 638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * You may obtain a copy of the License at 738bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * 838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * http://www.apache.org/licenses/LICENSE-2.0 938bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * 1038bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Unless required by applicable law or agreed to in writing, software 1138bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * distributed under the License is distributed on an "AS IS" BASIS, 1238bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1338bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * See the License for the specific language governing permissions and 1438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * limitations under the License. 1538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol */ 1638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol 170d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignol#include "chre/platform/platform_sensor.h" 1838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol 1938bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignolnamespace chre { 2038bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol 2167de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan ChungPlatformSensor::~PlatformSensor() {} 2267de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung 230d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolvoid PlatformSensor::init() { 2438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol // TODO: Implement this. Probably we would open some files provided to mock 2538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol // sensor data. Perhaps from command-line arguemnts. 2638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol} 2738bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol 280d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolvoid PlatformSensor::deinit() { 29b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol // TODO: Implement this. Probably we would close the files opened previously 30b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol // by init. 31b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol} 32b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol 330d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolbool PlatformSensor::getSensors(DynamicVector<PlatformSensor> *sensors) { 34cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol CHRE_ASSERT(sensors); 35cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol 36cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol // TODO: Implement this. Perhaps look at all sensor trace files provided and 37cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol // return the list of sensor data available. 38cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol return false; 39cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol} 40cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol 41cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignolbool PlatformSensor::setRequest(const SensorRequest& request) { 42f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol // TODO: Implement this. Perhaps consider the request and start to pass in 43f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol // sensor samples from mock sensor data once the sensor has transitioned to 44f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol // being enabled. Maybe consider resampling input data if the provided mock 45f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol // data rate is higher than requested. 46f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol return false; 47f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol} 48f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol 49cb8312e5ce53430576e2343e4863af84676c93adAndrew RossignolSensorType PlatformSensor::getSensorType() const { 50cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol // TODO: Implement this. 51cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol return SensorType::Unknown; 52cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol} 53cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol 549cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chunguint64_t PlatformSensor::getMinInterval() const { 559cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung // TODO: Implement this. 569cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung return 0; 579cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung} 589cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung 599cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chungconst char *PlatformSensor::getSensorName() const { 609cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung // TODO: Implement this. 619cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung return ""; 629cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung} 639cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung 649cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan ChungPlatformSensor& PlatformSensor::operator=(PlatformSensor&& other) { 659cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung // TODO: Implement this. 669cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung return *this; 679cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung} 689cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung 6967de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan ChungChreSensorData *PlatformSensor::getLastEvent() const { 7067de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung // TODO: Implement this. 7167de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung return nullptr; 7267de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung} 7367de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung 7467de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chungvoid PlatformSensor::setLastEvent(const ChreSensorData *event) { 7567de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung // TODO: Implement this. 7667de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung} 7767de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung 7838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol} // namespace chre 79