diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp index 0976f68a53..ae620f8bd8 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp +++ b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.cpp @@ -62,6 +62,16 @@ AP_RangeFinder_PX4::AP_RangeFinder_PX4(RangeFinder &_ranger, uint8_t instance, R state.healthy = true; } +/* + close the file descriptor +*/ +AP_RangeFinder_PX4::~AP_RangeFinder_PX4() +{ + if (_fd != -1) { + close(_fd); + } +} + /* open the PX4 driver, returning the file descriptor */ diff --git a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.h b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.h index 4e953b4935..f096429c92 100644 --- a/libraries/AP_RangeFinder/AP_RangeFinder_PX4.h +++ b/libraries/AP_RangeFinder/AP_RangeFinder_PX4.h @@ -26,6 +26,9 @@ public: // constructor AP_RangeFinder_PX4(RangeFinder &ranger, uint8_t instance, RangeFinder::RangeFinder_State &_state); + // destructor + ~AP_RangeFinder_PX4(void); + // static detection function static bool detect(RangeFinder &ranger, uint8_t instance);