blob: c77931637e171914beff56e736cafb8ee0fb4840 [file] [log] [blame]
Enrico Granata60a818d2019-05-09 09:56:09 -07001// 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 Fan886c4692021-02-19 11:54:10 +09007#include <base/notreached.h>
Enrico Granata60a818d2019-05-09 09:56:09 -07008
9#include "mems_setup/sensor_kind.h"
10
11namespace mems_setup {
12
13namespace {
14constexpr char kAccelName[] = "accel";
15constexpr char kGyroName[] = "anglvel";
16constexpr char kLightName[] = "illuminance";
Harvey Yangf474de32020-09-11 16:11:30 +080017constexpr char kSyncName[] = "count";
18constexpr char kMagnName[] = "magn";
Harvey Yangc40210b2020-12-11 19:58:10 +080019constexpr char kLidAngleName[] = "angl";
Harvey Yangf474de32020-09-11 16:11:30 +080020constexpr char kBaroName[] = "baro";
Harvey Yang73394622020-02-12 10:57:57 +080021constexpr char kOthersName[] = "";
22
23constexpr char kAccelDeviceName[] = "cros-ec-accel";
24constexpr char kGyroDeviceName[] = "cros-ec-gyro";
25constexpr char kLightDeviceName[] = "cros-ec-light";
26constexpr char kAlsDeviceName[] = "acpi-als";
27constexpr char kSyncDeviceName[] = "cros-ec-sync";
28constexpr char kMagnDeviceName[] = "cros-ec-mag";
29constexpr char kLidAngleDeviceName[] = "cros-ec-lid-angle";
30constexpr char kBaroDeviceName[] = "cros-ec-baro";
Enrico Granata60a818d2019-05-09 09:56:09 -070031} // namespace
32
33std::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 Yangf474de32020-09-11 16:11:30 +080041 case SensorKind::SYNC:
42 return kSyncName;
43 case SensorKind::MAGNETOMETER:
Harvey Yang73394622020-02-12 10:57:57 +080044 return kMagnName;
Harvey Yangc40210b2020-12-11 19:58:10 +080045 case SensorKind::LID_ANGLE:
46 return kLidAngleName;
Harvey Yangf474de32020-09-11 16:11:30 +080047 case SensorKind::BAROMETER:
48 return kBaroName;
Harvey Yang73394622020-02-12 10:57:57 +080049 case SensorKind::OTHERS: // Shouldn't be used
50 return kOthersName;
Enrico Granata60a818d2019-05-09 09:56:09 -070051 }
52
53 NOTREACHED();
54}
55
Harvey Yang73394622020-02-12 10:57:57 +080056SensorKind SensorKindFromString(const std::string& name) {
57 if (name == kAccelDeviceName)
Enrico Granata60a818d2019-05-09 09:56:09 -070058 return SensorKind::ACCELEROMETER;
Harvey Yang73394622020-02-12 10:57:57 +080059 if (name == kGyroDeviceName)
Enrico Granata60a818d2019-05-09 09:56:09 -070060 return SensorKind::GYROSCOPE;
Harvey Yang73394622020-02-12 10:57:57 +080061 if (name == kLightDeviceName || name == kAlsDeviceName)
Enrico Granata60a818d2019-05-09 09:56:09 -070062 return SensorKind::LIGHT;
Harvey Yang73394622020-02-12 10:57:57 +080063 if (name == kSyncDeviceName)
Harvey Yangf474de32020-09-11 16:11:30 +080064 return SensorKind::SYNC;
Harvey Yang73394622020-02-12 10:57:57 +080065 if (name == kMagnDeviceName)
Harvey Yangf474de32020-09-11 16:11:30 +080066 return SensorKind::MAGNETOMETER;
Harvey Yang73394622020-02-12 10:57:57 +080067 if (name == kLidAngleDeviceName)
Harvey Yangc40210b2020-12-11 19:58:10 +080068 return SensorKind::LID_ANGLE;
Harvey Yang73394622020-02-12 10:57:57 +080069 if (name == kBaroDeviceName)
Harvey Yangf474de32020-09-11 16:11:30 +080070 return SensorKind::BAROMETER;
Enrico Granata60a818d2019-05-09 09:56:09 -070071
Harvey Yang73394622020-02-12 10:57:57 +080072 return SensorKind::OTHERS;
Enrico Granata60a818d2019-05-09 09:56:09 -070073}
74
75} // namespace mems_setup