Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 1 | // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #include <base/logging.h> |
| 6 | #include <base/macros.h> |
Qijiang Fan | 886c469 | 2021-02-19 11:54:10 +0900 | [diff] [blame] | 7 | #include <base/notreached.h> |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 8 | |
| 9 | #include "mems_setup/sensor_kind.h" |
| 10 | |
| 11 | namespace mems_setup { |
| 12 | |
| 13 | namespace { |
| 14 | constexpr char kAccelName[] = "accel"; |
| 15 | constexpr char kGyroName[] = "anglvel"; |
| 16 | constexpr char kLightName[] = "illuminance"; |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 17 | constexpr char kSyncName[] = "count"; |
| 18 | constexpr char kMagnName[] = "magn"; |
Harvey Yang | c40210b | 2020-12-11 19:58:10 +0800 | [diff] [blame] | 19 | constexpr char kLidAngleName[] = "angl"; |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 20 | constexpr char kBaroName[] = "baro"; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 21 | constexpr char kOthersName[] = ""; |
| 22 | |
| 23 | constexpr char kAccelDeviceName[] = "cros-ec-accel"; |
| 24 | constexpr char kGyroDeviceName[] = "cros-ec-gyro"; |
| 25 | constexpr char kLightDeviceName[] = "cros-ec-light"; |
| 26 | constexpr char kAlsDeviceName[] = "acpi-als"; |
| 27 | constexpr char kSyncDeviceName[] = "cros-ec-sync"; |
| 28 | constexpr char kMagnDeviceName[] = "cros-ec-mag"; |
| 29 | constexpr char kLidAngleDeviceName[] = "cros-ec-lid-angle"; |
| 30 | constexpr char kBaroDeviceName[] = "cros-ec-baro"; |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 31 | } // namespace |
| 32 | |
| 33 | std::string SensorKindToString(SensorKind kind) { |
| 34 | switch (kind) { |
| 35 | case SensorKind::ACCELEROMETER: |
| 36 | return kAccelName; |
| 37 | case SensorKind::GYROSCOPE: |
| 38 | return kGyroName; |
| 39 | case SensorKind::LIGHT: |
| 40 | return kLightName; |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 41 | case SensorKind::SYNC: |
| 42 | return kSyncName; |
| 43 | case SensorKind::MAGNETOMETER: |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 44 | return kMagnName; |
Harvey Yang | c40210b | 2020-12-11 19:58:10 +0800 | [diff] [blame] | 45 | case SensorKind::LID_ANGLE: |
| 46 | return kLidAngleName; |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 47 | case SensorKind::BAROMETER: |
| 48 | return kBaroName; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 49 | case SensorKind::OTHERS: // Shouldn't be used |
| 50 | return kOthersName; |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 51 | } |
| 52 | |
| 53 | NOTREACHED(); |
| 54 | } |
| 55 | |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 56 | SensorKind SensorKindFromString(const std::string& name) { |
| 57 | if (name == kAccelDeviceName) |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 58 | return SensorKind::ACCELEROMETER; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 59 | if (name == kGyroDeviceName) |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 60 | return SensorKind::GYROSCOPE; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 61 | if (name == kLightDeviceName || name == kAlsDeviceName) |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 62 | return SensorKind::LIGHT; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 63 | if (name == kSyncDeviceName) |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 64 | return SensorKind::SYNC; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 65 | if (name == kMagnDeviceName) |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 66 | return SensorKind::MAGNETOMETER; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 67 | if (name == kLidAngleDeviceName) |
Harvey Yang | c40210b | 2020-12-11 19:58:10 +0800 | [diff] [blame] | 68 | return SensorKind::LID_ANGLE; |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 69 | if (name == kBaroDeviceName) |
Harvey Yang | f474de3 | 2020-09-11 16:11:30 +0800 | [diff] [blame] | 70 | return SensorKind::BAROMETER; |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 71 | |
Harvey Yang | 7339462 | 2020-02-12 10:57:57 +0800 | [diff] [blame] | 72 | return SensorKind::OTHERS; |
Enrico Granata | 60a818d | 2019-05-09 09:56:09 -0700 | [diff] [blame] | 73 | } |
| 74 | |
| 75 | } // namespace mems_setup |