■ ardupilot/libraries/AP_Compass/AP_Compass.h
1. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
/**
maximum number of compass instances available on this platform. If more
than 1 then redundant sensors may be available
*/
//#define COMPASS_MAX_INSTANCES 3
//#define COMPASS_MAX_BACKEND 3
#define COMPASS_MAX_INSTANCES 1 // hasu0707
#define COMPASS_MAX_INSTANCES_FAKE 3 // hasu0707
#define COMPASS_MAX_BACKEND 1 // hasu0707
#define COMPASS_MAX_BACKEND_FAKE 3 // hasu0707
2. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
//keep track of which calibrators have been saved
//bool _cal_saved[COMPASS_MAX_INSTANCES];
bool _cal_saved[COMPASS_MAX_INSTANCES_FAKE]; // by hasu0707
3. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
// backend objects
//AP_Compass_Backend *_backends[COMPASS_MAX_BACKEND];
AP_Compass_Backend *_backends[COMPASS_MAX_BACKEND_FAKE]; // by hasu0707
4. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
// } _state[COMPASS_MAX_INSTANCES];
} _state[COMPASS_MAX_INSTANCES_FAKE]; // by hasu0707
5. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
// CompassCalibrator _calibrator[COMPASS_MAX_INSTANCES];
CompassCalibrator _calibrator[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
■ ardupilot/libraries/AP_Compass/AP_Compass_PX4.h
1. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
// uint8_t _instance[COMPASS_MAX_INSTANCES];
// int _mag_fd[COMPASS_MAX_INSTANCES];
// Vector3f _sum[COMPASS_MAX_INSTANCES];
// uint32_t _count[COMPASS_MAX_INSTANCES];
// uint64_t _last_timestamp[COMPASS_MAX_INSTANCES];
uint8_t _instance[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
int _mag_fd[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
Vector3f _sum[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
uint32_t _count[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
uint64_t _last_timestamp[COMPASS_MAX_INSTANCES_FAKE]; // hasu0707
};
■ ardupilot/libraries/AP_Compass/AP_Compass_HIL.cpp
1. // 주석은 이전 코드, //hasu0707이 있는 코드로 수정한다.
void AP_Compass_HIL::read()
{
//for (uint8_t i=0; i < ARRAY_SIZE(_compass_instance); i++) {
for (uint8_t i=0; i < 1; i++) { // hasu0707