diff --git a/libraries/AP_HAL_SITL/SITL_State.cpp b/libraries/AP_HAL_SITL/SITL_State.cpp index 3b9c6be32f..602e548ac5 100644 --- a/libraries/AP_HAL_SITL/SITL_State.cpp +++ b/libraries/AP_HAL_SITL/SITL_State.cpp @@ -524,7 +524,7 @@ void SITL_State::init(int argc, char * const argv[]) pwm_input[4] = pwm_input[7] = 1800; pwm_input[2] = pwm_input[5] = pwm_input[6] = 1000; - _scheduler = (SITLScheduler *)hal.scheduler; + _scheduler = SITLScheduler::from(hal.scheduler); _parse_command_line(argc, argv); } diff --git a/libraries/AP_HAL_SITL/Scheduler.h b/libraries/AP_HAL_SITL/Scheduler.h index cc0936e571..0c50e6e624 100644 --- a/libraries/AP_HAL_SITL/Scheduler.h +++ b/libraries/AP_HAL_SITL/Scheduler.h @@ -13,6 +13,10 @@ class HALSITL::SITLScheduler : public AP_HAL::Scheduler { public: SITLScheduler(SITL_State *sitlState); + static SITLScheduler *from(AP_HAL::Scheduler *scheduler) { + return static_cast(scheduler); + } + /* AP_HAL::Scheduler methods */ void init(void *unused);