• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2023 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 STATIONARY_DATA_H
17 #define STATIONARY_DATA_H
18 
19 #include <string>
20 
21 namespace OHOS {
22 namespace Msdp {
23 namespace DeviceStatus {
24 constexpr double MOVEMENT_THRESHOLD { 0.001 };
25 enum Type {
26     TYPE_INVALID = -1,
27     TYPE_ABSOLUTE_STILL,
28     TYPE_HORIZONTAL_POSITION,
29     TYPE_VERTICAL_POSITION,
30     TYPE_STILL,
31     TYPE_RELATIVE_STILL,
32     TYPE_CAR_BLUETOOTH,
33     TYPE_LID_OPEN,
34     TYPE_STAND,
35     TYPE_MAX
36 };
37 
38 enum TypeValue : bool {
39     INVALID = false,
40     VALID = true
41 };
42 
43 enum OnChangedValue {
44     VALUE_INVALID = -1,
45     VALUE_ENTER = 1,
46     VALUE_EXIT = 2
47 };
48 
49 enum ActivityEvent {
50     EVENT_INVALID = 0,
51     ENTER = 1,
52     EXIT = 2,
53     ENTER_EXIT = 3
54 };
55 
56 enum ReportLatencyNs {
57     Latency_INVALID = -1,
58     SHORT = 1,
59     MIDDLE = 2,
60     LONG = 3
61 };
62 enum Status {
63     STATUS_INVALID = -1,
64     STATUS_CANCEL,
65     STATUS_START,
66     STATUS_PROCESS,
67     STATUS_FINISH
68 };
69 
70 enum Action {
71     ACTION_INVALID = -1,
72     ACTION_ENLARGE,
73     ACTION_REDUCE,
74     ACTION_UP,
75     ACTION_LEFT,
76     ACTION_DOWN,
77     ACTION_RIGHT
78 };
79 
80 struct Data {
81     Type type { TYPE_INVALID };
82     OnChangedValue value { VALUE_INVALID };
83     Status status { STATUS_INVALID };
84     Action action { ACTION_INVALID };
85     double movement { 0.0 };
86 
87     bool operator !=(const Data &r) const
88     {
89         if (type == r.type && value == r.value &&
90             status - r.status && action == r.action && (movement - r.movement) < MOVEMENT_THRESHOLD) {
91             return false;
92         }
93         return true;
94     }
95 };
96 
97 struct DevicePostureData {
98     float rollRad = 0.0F;
99     float pitchRad = 0.0F;
100     float yawRad = 0.0F;
101 };
102 
103 typedef struct DeviceStatusJsonData {
104     int32_t type { -1 };
105     std::string json;
106 }DeviceStatusJsonD;
107 
108 static DeviceStatusJsonD DeviceStatusJson[] = {
109     { Type::TYPE_ABSOLUTE_STILL, "absoluteStill" },
110     { Type::TYPE_HORIZONTAL_POSITION, "horizontalPosition" },
111     { Type::TYPE_VERTICAL_POSITION, "verticalPosition" },
112     { Type::TYPE_STILL, "still" },
113     { Type::TYPE_RELATIVE_STILL, "relativeStill" },
114     { Type::TYPE_CAR_BLUETOOTH, "carBluetooth" },
115     { Type::TYPE_LID_OPEN, "LID_OPEN" },
116     { Type::TYPE_MAX, "MAX" }
117 };
118 } // namespace DeviceStatus
119 } // namespace Msdp
120 } // namespace OHOS
121 #endif // STATIONARY_DATA_H
122