blob: 4f07506bc0bc21219143b85d475e6ae3587dd7cb [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>
7
8#include "mems_setup/sensor_kind.h"
9
10namespace mems_setup {
11
12namespace {
13constexpr char kAccelName[] = "accel";
14constexpr char kGyroName[] = "anglvel";
15constexpr char kLightName[] = "illuminance";
Harvey Yangf474de32020-09-11 16:11:30 +080016constexpr char kSyncName[] = "count";
17constexpr char kMagnName[] = "magn";
Harvey Yangc40210b2020-12-11 19:58:10 +080018constexpr char kLidAngleName[] = "angl";
Harvey Yangf474de32020-09-11 16:11:30 +080019constexpr char kBaroName[] = "baro";
Enrico Granata60a818d2019-05-09 09:56:09 -070020} // namespace
21
22std::string SensorKindToString(SensorKind kind) {
23 switch (kind) {
24 case SensorKind::ACCELEROMETER:
25 return kAccelName;
26 case SensorKind::GYROSCOPE:
27 return kGyroName;
28 case SensorKind::LIGHT:
29 return kLightName;
Harvey Yangf474de32020-09-11 16:11:30 +080030 case SensorKind::SYNC:
31 return kSyncName;
32 case SensorKind::MAGNETOMETER:
33 return kAccelName;
Harvey Yangc40210b2020-12-11 19:58:10 +080034 case SensorKind::LID_ANGLE:
35 return kLidAngleName;
Harvey Yangf474de32020-09-11 16:11:30 +080036 case SensorKind::BAROMETER:
37 return kBaroName;
Enrico Granata60a818d2019-05-09 09:56:09 -070038 }
39
40 NOTREACHED();
41}
42
43base::Optional<SensorKind> SensorKindFromString(const std::string& name) {
44 if (name == kAccelName)
45 return SensorKind::ACCELEROMETER;
46 if (name == kGyroName)
47 return SensorKind::GYROSCOPE;
48 if (name == kLightName)
49 return SensorKind::LIGHT;
Harvey Yangf474de32020-09-11 16:11:30 +080050 if (name == kSyncName)
51 return SensorKind::SYNC;
52 if (name == kMagnName)
53 return SensorKind::MAGNETOMETER;
Harvey Yangc40210b2020-12-11 19:58:10 +080054 if (name == kLidAngleName)
55 return SensorKind::LID_ANGLE;
Harvey Yangf474de32020-09-11 16:11:30 +080056 if (name == kBaroName)
57 return SensorKind::BAROMETER;
Enrico Granata60a818d2019-05-09 09:56:09 -070058
59 return base::nullopt;
60}
61
62} // namespace mems_setup