1  /*
2   * Copyright (c) 2024 Huawei Device Co., Ltd.
3   * Licensed under the Apache License, Version 2.0 (the "License");
4   * you may not use this file except in compliance with the License.
5   * You may obtain a copy of the License at
6   *
7   *     http://www.apache.org/licenses/LICENSE-2.0
8   *
9   * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  
16  #ifndef SENSOR_HDI_DUMP_H
17  #define SENSOR_HDI_DUMP_H
18  #include <vector>
19  #include "hdf_sbuf.h"
20  #include "devhost_dump_reg.h"
21  #include "sensor_type.h"
22  #include "sensor_if_service.h"
23  
24  namespace OHOS {
25  namespace HDI {
26  namespace Sensor {
27  namespace V2_0 {
28  enum {
29      MEM_X = 1,
30      MEM_XY = 3,
31      MEM_XYZ = 4,
32      MEM_UNCALIBRATED = 6,
33      MEM_POSTURE = 8,
34      MEM_SPE_RGB = 14,
35      MEM_MAX_DATA_SIZE = MEM_SPE_RGB
36  };
37  
38  class SensorHdiDump {
39  public:
40      SensorHdiDump();
41      ~SensorHdiDump();
42      static int32_t DevHostSensorHdiDump(struct HdfSBuf *data, struct HdfSBuf *reply);
43  
44  private:
45      static int32_t SensorShowList(struct HdfSBuf *reply);
46      static std::string SensorInfoDataToString(const float *data,
47                                         const int64_t timesTamp,
48                                         const int32_t dataDimension,
49                                         const int32_t sensorId);
50      static int32_t ShowData(const float *data,
51                       const int64_t timesTamp,
52                       const int32_t dataDimension,
53                       const int32_t sensorId,
54                       struct HdfSBuf *reply);
55      static int32_t SensorShowData(struct HdfSBuf *reply);
56      static int32_t SensorShowClient(struct HdfSBuf *reply);
57  };
58  
59  int32_t GetSensorDump(struct HdfSBuf *data, struct HdfSBuf *reply);
60  
61  } // V2_0
62  } // Sensor
63  } // HDI
64  } // OHOS
65  
66  #endif //SENSOR_HDI_DUMP_H