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