1bae4d13cSopenharmony_ci/* 2bae4d13cSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 3bae4d13cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4bae4d13cSopenharmony_ci * you may not use this file except in compliance with the License. 5bae4d13cSopenharmony_ci * You may obtain a copy of the License at 6bae4d13cSopenharmony_ci * 7bae4d13cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8bae4d13cSopenharmony_ci * 9bae4d13cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10bae4d13cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11bae4d13cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12bae4d13cSopenharmony_ci * See the License for the specific language governing permissions and 13bae4d13cSopenharmony_ci * limitations under the License. 14bae4d13cSopenharmony_ci */ 15bae4d13cSopenharmony_ci 16bae4d13cSopenharmony_ci#ifndef SENSOR_DUMP_H 17bae4d13cSopenharmony_ci#define SENSOR_DUMP_H 18bae4d13cSopenharmony_ci 19bae4d13cSopenharmony_ci#include <vector> 20bae4d13cSopenharmony_ci 21bae4d13cSopenharmony_ci#include "singleton.h" 22bae4d13cSopenharmony_ci 23bae4d13cSopenharmony_ci#include "nocopyable.h" 24bae4d13cSopenharmony_ci 25bae4d13cSopenharmony_ci#include "client_info.h" 26bae4d13cSopenharmony_ci#include "sensor.h" 27bae4d13cSopenharmony_ci#include "sensor_agent_type.h" 28bae4d13cSopenharmony_ci 29bae4d13cSopenharmony_cinamespace OHOS { 30bae4d13cSopenharmony_cinamespace Sensors { 31bae4d13cSopenharmony_ciclass SensorDump : public Singleton<SensorDump> { 32bae4d13cSopenharmony_cipublic: 33bae4d13cSopenharmony_ci SensorDump() = default; 34bae4d13cSopenharmony_ci virtual ~SensorDump() = default; 35bae4d13cSopenharmony_ci void ParseCommand(int32_t fd, const std::vector<std::string> &args, const std::vector<Sensor> &sensors, 36bae4d13cSopenharmony_ci ClientInfo &clientInfo); 37bae4d13cSopenharmony_ci void DumpHelp(int32_t fd); 38bae4d13cSopenharmony_ci bool DumpSensorList(int32_t fd, const std::vector<Sensor> &sensors); 39bae4d13cSopenharmony_ci bool DumpSensorChannel(int32_t fd, ClientInfo &clientInfo); 40bae4d13cSopenharmony_ci bool DumpOpeningSensor(int32_t fd, const std::vector<Sensor> &sensors, ClientInfo &clientInfo); 41bae4d13cSopenharmony_ci bool DumpSensorData(int32_t fd, ClientInfo &clientInfo); 42bae4d13cSopenharmony_ci 43bae4d13cSopenharmony_ciprivate: 44bae4d13cSopenharmony_ci DISALLOW_COPY_AND_MOVE(SensorDump); 45bae4d13cSopenharmony_ci void DumpCurrentTime(int32_t fd); 46bae4d13cSopenharmony_ci int32_t GetDataDimension(int32_t sensorId); 47bae4d13cSopenharmony_ci std::string GetDataBySensorId(int32_t sensorId, SensorData &sensorData); 48bae4d13cSopenharmony_ci static std::unordered_map<int32_t, std::string> sensorMap_; 49bae4d13cSopenharmony_ci void RunSensorDump(int32_t fd, int32_t optionIndex, const std::vector<std::string> &args, char **argv); 50bae4d13cSopenharmony_ci std::vector<Sensor> sensors_; 51bae4d13cSopenharmony_ci ClientInfo &clientInfo_ = ClientInfo::GetInstance(); 52bae4d13cSopenharmony_ci}; 53bae4d13cSopenharmony_ci} // namespace Sensors 54bae4d13cSopenharmony_ci} // namespace OHOS 55bae4d13cSopenharmony_ci#endif // SENSOR_DUMP_H 56