uav_error.h
6.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/******************************************************************
* Author : tyh (tangyinghao@autelrobotics.cn)
* CreateTime : 2024/2/19
* Copyright (c) 2024 Shenzhen Autel Robotics Co., Ltd.
* File Desc :
*******************************************************************/
#ifndef PAYLOADSDK_UAV_ERROR_H
#define PAYLOADSDK_UAV_ERROR_H
/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
#define UAV_ERROR_MODULE_INDEX_OFFSET 32u
#define UAV_ERROR_MODULE_INDEX_MASK 0x000000FF00000000u
#define UAV_ERROR_RAW_CODE_OFFSET 0u
#define UAV_ERROR_RAW_CODE_MASK 0x00000000FFFFFFFFu
#define UAV_ERROR_CODE(moduleIndex, rawErrCode) \
((uint64_t)0 | \
((((uint64_t)(moduleIndex)) << (UAV_ERROR_MODULE_INDEX_OFFSET)) & (UAV_ERROR_MODULE_INDEX_MASK)) | \
((((uint64_t)(rawErrCode)) << (UAV_ERROR_RAW_CODE_OFFSET)) & (UAV_ERROR_RAW_CODE_MASK)))
/* Exported types ------------------------------------------------------------*/
/**
* @brief UAV module enum for defining error code.
*/
typedef enum {
UAV_ERROR_MODULE_SYSTEM = 0,
UAV_ERROR_MODULE_PLATFORM,
UAV_ERROR_MODULE_LOGGER,
UAV_ERROR_MODULE_TIME_SYNC,
UAV_ERROR_MODULE_COMMAND,
UAV_ERROR_MODULE_CAMERA,
UAV_ERROR_MODULE_GIMBAL,
UAV_ERROR_MODULE_XPORT,
UAV_ERROR_MODULE_PAYLOAD_COLLABORATION,
UAV_ERROR_MODULE_WIDGET,
UAV_ERROR_MODULE_CORE,
UAV_ERROR_MODULE_IDENTITY,
UAV_ERROR_MODULE_TRANSMISSION,
UAV_ERROR_MODULE_DATA_CHANNEL,
UAV_ERROR_MODULE_SUBSCRIPTION,
UAV_ERROR_MODULE_MOP_CHANNEL,
UAV_ERROR_MODULE_POSITIONING,
UAV_ERROR_MODULE_POWER_MANAGEMENT,
UAV_ERROR_MODULE_AIRCRAFTINFO,
UAV_ERROR_MODULE_PRODUCTINFO,
UAV_ERROR_MODULE_FLOWCONTROLLER,
UAV_ERROR_MODULE_DOWNLOADER,
UAV_ERROR_MODULE_PARAMETER,
UAV_ERROR_MODULE_UTIL,
UAV_ERROR_MODULE_USER,
UAV_ERROR_MODULE_NEGOTIATE,
UAV_ERROR_MODULE_UPGRADE,
UAV_ERROR_MODULE_FC_BASIC,
UAV_ERROR_MODULE_FC_JOYSTICK,
UAV_ERROR_MODULE_FC_ACTION,
UAV_ERROR_MODULE_FC_ARREST_FLYING,
UAV_ERROR_MODULE_FC_HOME_LOCATION,
UAV_ERROR_MODULE_FC_EMERGENCY_STOP_MOTOR,
UAV_ERROR_MODULE_CAMERA_MANAGER,
UAV_ERROR_MODULE_GIMBAL_MANAGER,
UAV_ERROR_MODULE_WAYPOINT_V2,
UAV_ERROR_MODULE_WAYPOINT_V3,
UAV_ERROR_MODULE_ERROR,
} E_UavErrorModule;
/**
* @brief Raw error code of system module.
*/
typedef enum {
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SUCCESS = 0x000,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_REQUEST_PARAMETER = 0x0D4,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_EXECUTING_HIGHER_PRIORITY_TASK = 0x0D7,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT = 0x0E0,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_TIMEOUT = 0x0E1,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_MEMORY_ALLOC_FAILED = 0x0E2,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_PARAMETER = 0x0E3,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT_IN_CURRENT_STATE = 0x0E4,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SYSTEM_ERROR = 0x0EC,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_HARDWARE_ERR = 0x0FA,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INSUFFICIENT_ELECTRICITY = 0x0FB,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_UNKNOWN = 0x0FF,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NOT_FOUND = 0x100,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_OUT_OF_RANGE = 0x101,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_BUSY = 0x102,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_DUPLICATE = 0x103,
UAV_ERROR_SYSTEM_MODULE_RAW_CODE_ADAPTER_NOT_MATCH = 0x104,
} E_UavErrorSystemModuleRawCode;
/**
* @brief UAV error code complete works. Users can search all error messages here.
* @details Please get error description, error reason and error recovery suggestion of every error code from
* ::UAV_ERROR_OBJECTS macro.
*/
enum UAVErrorCode {
/* system module error code, including some common error code */
UAV_ERROR_SYSTEM_MODULE_CODE_SUCCESS = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SUCCESS),
UAV_ERROR_SYSTEM_MODULE_CODE_INVALID_REQUEST_PARAMETER = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_REQUEST_PARAMETER),
UAV_ERROR_SYSTEM_MODULE_CODE_EXECUTING_HIGHER_PRIORITY_TASK = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_EXECUTING_HIGHER_PRIORITY_TASK),
UAV_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT),
UAV_ERROR_SYSTEM_MODULE_CODE_TIMEOUT = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_TIMEOUT),
UAV_ERROR_SYSTEM_MODULE_CODE_MEMORY_ALLOC_FAILED = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_MEMORY_ALLOC_FAILED),
UAV_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INVALID_PARAMETER),
UAV_ERROR_SYSTEM_MODULE_CODE_NONSUPPORT_IN_CURRENT_STATE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NONSUPPORT_IN_CURRENT_STATE),
UAV_ERROR_SYSTEM_MODULE_CODE_SYSTEM_ERROR = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_SYSTEM_ERROR),
UAV_ERROR_SYSTEM_MODULE_CODE_HARDWARE_ERR = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_HARDWARE_ERR),
UAV_ERROR_SYSTEM_MODULE_CODE_INSUFFICIENT_ELECTRICITY = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_INSUFFICIENT_ELECTRICITY),
UAV_ERROR_SYSTEM_MODULE_CODE_UNKNOWN = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_UNKNOWN),
UAV_ERROR_SYSTEM_MODULE_CODE_NOT_FOUND = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_NOT_FOUND),
UAV_ERROR_SYSTEM_MODULE_CODE_OUT_OF_RANGE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_OUT_OF_RANGE),
UAV_ERROR_SYSTEM_MODULE_CODE_BUSY = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_BUSY),
UAV_ERROR_SYSTEM_MODULE_CODE_DUPLICATE = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_DUPLICATE),
UAV_ERROR_SYSTEM_MODULE_CODE_ADAPTER_NOT_MATCH = UAV_ERROR_CODE(UAV_ERROR_MODULE_SYSTEM, UAV_ERROR_SYSTEM_MODULE_RAW_CODE_ADAPTER_NOT_MATCH),
};
/* Exported functions --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif // PAYLOADSDK_UAV_ERROR_H