3.0.1 Defaults // Improve setpoint transition
[betaflight.git] / src / main / config / config_unittest.h
blobf20180839321cd8cb244749ede86e8651a747699
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #pragma once
20 #ifdef SRC_MAIN_SCHEDULER_C_
21 #ifdef UNIT_TEST
23 cfTask_t *unittest_scheduler_selectedTask;
24 uint8_t unittest_scheduler_selectedTaskDynamicPriority;
25 uint16_t unittest_scheduler_waitingTasks;
26 uint32_t unittest_scheduler_timeToNextRealtimeTask;
27 bool unittest_outsideRealtimeGuardInterval;
29 #define GET_SCHEDULER_LOCALS() \
30 { \
31 unittest_scheduler_selectedTask = selectedTask; \
32 unittest_scheduler_selectedTaskDynamicPriority = selectedTaskDynamicPriority; \
33 unittest_scheduler_waitingTasks = waitingTasks; \
34 unittest_scheduler_timeToNextRealtimeTask = timeToNextRealtimeTask; \
35 unittest_outsideRealtimeGuardInterval = outsideRealtimeGuardInterval; \
38 #else
40 #define GET_SCHEDULER_LOCALS() {}
42 #endif
43 #endif
46 #ifdef SRC_MAIN_FLIGHT_PID_C_
47 #ifdef UNIT_TEST
49 float unittest_pidLuxFloat_lastErrorForDelta[3];
50 float unittest_pidLuxFloat_delta1[3];
51 float unittest_pidLuxFloat_delta2[3];
52 float unittest_pidLuxFloat_PTerm[3];
53 float unittest_pidLuxFloat_ITerm[3];
54 float unittest_pidLuxFloat_DTerm[3];
56 #define SET_PID_LUX_FLOAT_LOCALS(axis) \
57 { \
58 lastErrorForDelta[axis] = unittest_pidLuxFloat_lastErrorForDelta[axis]; \
59 delta1[axis] = unittest_pidLuxFloat_delta1[axis]; \
60 delta2[axis] = unittest_pidLuxFloat_delta2[axis]; \
63 #define GET_PID_LUX_FLOAT_LOCALS(axis) \
64 { \
65 unittest_pidLuxFloat_lastErrorForDelta[axis] = lastErrorForDelta[axis]; \
66 unittest_pidLuxFloat_delta1[axis] = delta1[axis]; \
67 unittest_pidLuxFloat_delta2[axis] = delta2[axis]; \
68 unittest_pidLuxFloat_PTerm[axis] = PTerm; \
69 unittest_pidLuxFloat_ITerm[axis] = ITerm; \
70 unittest_pidLuxFloat_DTerm[axis] = DTerm; \
73 int32_t unittest_pidMultiWiiRewrite_lastErrorForDelta[3];
74 int32_t unittest_pidMultiWiiRewrite_PTerm[3];
75 int32_t unittest_pidMultiWiiRewrite_ITerm[3];
76 int32_t unittest_pidMultiWiiRewrite_DTerm[3];
78 #define SET_PID_MULTI_WII_REWRITE_LOCALS(axis) \
79 { \
80 lastErrorForDelta[axis] = unittest_pidMultiWiiRewrite_lastErrorForDelta[axis]; \
83 #define GET_PID_MULTI_WII_REWRITE_LOCALS(axis) \
84 { \
85 unittest_pidMultiWiiRewrite_lastErrorForDelta[axis] = lastErrorForDelta[axis]; \
86 unittest_pidMultiWiiRewrite_PTerm[axis] = PTerm; \
87 unittest_pidMultiWiiRewrite_ITerm[axis] = ITerm; \
88 unittest_pidMultiWiiRewrite_DTerm[axis] = DTerm; \
91 #else
93 #define SET_PID_LUX_FLOAT_LOCALS(axis) {}
94 #define GET_PID_LUX_FLOAT_LOCALS(axis) {}
95 #define SET_PID_MULTI_WII_REWRITE_LOCALS(axis) {}
96 #define GET_PID_MULTI_WII_REWRITE_LOCALS(axis) {}
98 #endif // UNIT_TEST
99 #endif // SRC_MAIN_FLIGHT_PID_C_