1 /* 2 * Copyright (c) 2025 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 SERVICES_MECHBODY_CONTROLLER_LOG_H_ 17 #define SERVICES_MECHBODY_CONTROLLER_LOG_H_ 18 19 #include "errors.h" 20 #include "hilog/log.h" 21 #include <cinttypes> 22 #include <cstdint> 23 24 namespace OHOS { 25 namespace MechBodyController { 26 #undef LOG_DOMAIN 27 #define LOG_DOMAIN 0xD004170 28 29 #undef LOG_TAG 30 #define LOG_TAG "MechBodyController" 31 32 #ifdef HILOGD 33 #undef HILOGD 34 #endif 35 36 #ifdef HILOGF 37 #undef HILOGF 38 #endif 39 40 #ifdef HILOGE 41 #undef HILOGE 42 #endif 43 44 #ifdef HILOGW 45 #undef HILOGW 46 #endif 47 48 #ifdef HILOGI 49 #undef HILOGI 50 #endif 51 52 #define HILOGF(fmt, ...) HILOG_FATAL(LOG_CORE, "%{public}s::%{public}s " fmt, TAG.c_str(), __FUNCTION__, ##__VA_ARGS__) 53 #define HILOGE(fmt, ...) HILOG_ERROR(LOG_CORE, "%{public}s::%{public}s " fmt, TAG.c_str(), __FUNCTION__, ##__VA_ARGS__) 54 #define HILOGW(fmt, ...) HILOG_WARN(LOG_CORE, "%{public}s::%{public}s " fmt, TAG.c_str(), __FUNCTION__, ##__VA_ARGS__) 55 #define HILOGI(fmt, ...) HILOG_INFO(LOG_CORE, "%{public}s::%{public}s " fmt, TAG.c_str(), __FUNCTION__, ##__VA_ARGS__) 56 #define HILOGD(fmt, ...) HILOG_DEBUG(LOG_CORE, "%{public}s::%{public}s " fmt, TAG.c_str(), __FUNCTION__, ##__VA_ARGS__) 57 58 59 #define CHECK_POINTER_RETURN(object, log) \ 60 do { \ 61 if ((object) == nullptr) { \ 62 HILOGE("%{public}s nullptr", (log)); \ 63 return; \ 64 } \ 65 } while (0) 66 67 #define CHECK_POINTER_RETURN_VALUE(object, value, log) \ 68 do { \ 69 if ((object) == nullptr) { \ 70 HILOGE("%{public}s nullptr", (log)); \ 71 return (value); \ 72 } \ 73 } while (0) 74 75 #define CHECK_ERR_RETURN_VALUE(errNo, value, log) \ 76 do { \ 77 auto result = (errNo); \ 78 if (result != ERR_OK) { \ 79 HILOGE("%{public}s err, code %{public}d", (log), result); \ 80 return (value); \ 81 } \ 82 } while (0) 83 84 #define CHECK_ERR_RETURN(errNo, log) \ 85 do { \ 86 auto result = (errNo); \ 87 if (result != ERR_OK) { \ 88 HILOGE("%{public}s err, code %{public}d", (log), result); \ 89 return; \ 90 } \ 91 } while (0) 92 93 94 enum { 95 /** 96 * Module type: Mechbody service core 97 */ 98 MC_MODULE_TYPE_SERVICE = 0, 99 }; 100 101 // offset of EB error, only be used in this file. 102 constexpr ErrCode MC_SERVICE_ERR_OFFSET = ErrCodeOffset(SUBSYS_DISTRIBUTEDHARDWARE, MC_MODULE_TYPE_SERVICE); 103 104 enum { 105 /** 106 * Result(96468992) for invalid parameters. 107 */ 108 INVALID_PARAMETERS_ERR = MC_SERVICE_ERR_OFFSET, 109 110 /** 111 * Result(96468993) for get sa manager failed. 112 */ 113 MECH_GET_SAMGR_EXCEPTION, 114 115 /** 116 * Result(96468994) for start mechbody service failed. 117 */ 118 START_MECH_BODY_SERVICE_FAILED, 119 120 /** 121 * Result(96468995) for napi send data to service by ipc failed. 122 */ 123 NAPI_SEND_DATA_FAIL, 124 125 /** 126 * Result(96468996) for napi receive data to service by ipc failed. 127 */ 128 NAPI_RECV_DATA_FAIL, 129 130 /** 131 * Result(96468997) for The IPC token does not match. 132 */ 133 IPC_TOKEN_DOES_NOT_MATCH, 134 135 /** 136 * Result(96468998) for The No matching service implementation is found. 137 */ 138 NO_MATCHING_SERVICE_IMPL, 139 140 /** 141 * Result(96468999) for invalid pid. 142 */ 143 INVALID_PID, 144 145 /** 146 * Result(96469000) for invalid mech id. 147 */ 148 INVALID_MECH_ID, 149 150 /** 151 * Result(96469001) for invalid remote object. 152 */ 153 INVALID_REMOTE_OBJECT, 154 155 /** 156 * Result(96469002) for invalid tracking layout. 157 */ 158 INVALID_TRACKING_LAYOUT, 159 160 /** 161 * Result(96469003) for invalid rotate parameters. 162 */ 163 INVALID_ROTATE_PARAM, 164 165 /** 166 * Result(96469004) for register callback failed. 167 */ 168 REGISTER_CALLBACK_FAILED, 169 170 /** 171 * Result(96469005) for unregister callback failed. 172 */ 173 UNREGISTER_CALLBACK_FAILED, 174 175 /** 176 * Result(96469006) for send callback info failed. 177 */ 178 SEND_CALLBACK_INFO_FAILED, 179 180 /** 181 * Result(96469007) for query device list failed. 182 */ 183 QUERY_DEVICE_LIST_FAILED, 184 185 /** 186 * Result(96469008) for unRegist failed. 187 */ 188 UNREGISTER_FAILED_ERR, 189 190 /** 191 * Result(96469009) for notify failed. 192 */ 193 NOTIFICATION_FAILED_ERR, 194 195 /** 196 * Result(96469010) for device not placed on mech. 197 */ 198 DEVICE_NOT_PLACED_ON_MECH, 199 200 /** 201 * Result(96469011) for device not placed on mech. 202 */ 203 DETECTED_OBJECTS_EMPTY, 204 205 /** 206 * Result(96469012) for camera info is empty. 207 */ 208 CAMERA_INFO_IS_EMPTY, 209 210 /** 211 * Result(96469013) for detected object is empty. 212 */ 213 DETECTED_OBJECT_IS_EMPTY, 214 215 /** 216 * Result(96469012) for can not found mach info. 217 */ 218 MECH_INFO_NOT_FOUND, 219 220 /** 221 * Result(96469013) for device has connected. 222 */ 223 MECH_HAS_CONNECTED, 224 225 /** 226 * Result(96469014) for device connect failed. 227 */ 228 MECH_CONNECT_FAILED, 229 230 /** 231 * Result(96469015) for device disconnect failed. 232 */ 233 MECH_DISCONNECT_FAILED, 234 }; 235 236 enum MechNapiErrorCode { 237 /** 238 * Result(202) for permission denied. 239 */ 240 PERMISSION_DENIED = 202, 241 242 /** 243 * Result(401) for parameter check failed. 244 */ 245 PARAMETER_CHECK_FAILED = 401, 246 247 /** 248 * Result(33300001) for the system ability work abnormally. 249 */ 250 SYSTEM_WORK_ABNORMALLY = 33300001, 251 252 /** 253 * Result(33300002) for device not connected. 254 */ 255 DEVICE_NOT_CONNECTED = 33300002, 256 257 /** 258 * Result(33300003) for device not supported. 259 */ 260 DEVICE_NOT_SUPPORTED = 33300003, 261 }; 262 } // namespace MechBodyController 263 } // namespace OHOS 264 #endif // SERVICES_MECHBODY_CONTROLLER_LOG_H_ 265