diff --git a/src/mavsdk/plugins/action_server/action_server_impl.cpp b/src/mavsdk/plugins/action_server/action_server_impl.cpp index 6eeb9ae85..85919b3a4 100644 --- a/src/mavsdk/plugins/action_server/action_server_impl.cpp +++ b/src/mavsdk/plugins/action_server/action_server_impl.cpp @@ -66,6 +66,8 @@ void ActionServerImpl::init() ActionServer::ArmDisarm armDisarm{ command.params.param1 == 1, command.params.param2 == 21196}; + std::lock_guard lock(_callback_mutex); + // Check arm states - Ugly. auto request_ack = MAV_RESULT_UNSUPPORTED; bool force = armDisarm.force; @@ -98,6 +100,8 @@ void ActionServerImpl::init() _server_component_impl->register_mavlink_command_handler( MAV_CMD_NAV_TAKEOFF, [this](const MavlinkCommandReceiver::CommandLong& command) { + std::lock_guard lock(_callback_mutex); + if (_allow_takeoff) { _takeoff_callbacks.queue( ActionServer::Result::Success, true, [this](const auto& func) { @@ -130,6 +134,8 @@ void ActionServerImpl::init() auto custom_mode = static_cast(command.params.param2); auto sub_custom_mode = static_cast(command.params.param3); + std::lock_guard lock(_callback_mutex); + if (is_custom) { // PX4 uses custom modes px4_custom_mode px4_mode{}; diff --git a/src/mavsdk_server/tools/package_mavsdk_server_framework.bash b/src/mavsdk_server/tools/package_mavsdk_server_framework.bash index 88dd8e5c9..f1b87ab0a 100644 --- a/src/mavsdk_server/tools/package_mavsdk_server_framework.bash +++ b/src/mavsdk_server/tools/package_mavsdk_server_framework.bash @@ -23,6 +23,9 @@ fi echo "Running lipo for simulator" mkdir -p ${IOS_SIM_FAT_BACKEND_DIR} cp -a ${IOS_SIM_X64_BACKEND_DIR}/mavsdk_server.framework ${IOS_SIM_FAT_BACKEND_DIR} +file ${IOS_SIM_X64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server +file ${IOS_SIM_ARM64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server + xcrun lipo -create -output ${IOS_SIM_FAT_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server \ ${IOS_SIM_X64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server \ ${IOS_SIM_ARM64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server @@ -37,6 +40,12 @@ xcrun codesign --verbose --sign - ${IOS_SIM_FAT_BACKEND_DIR}/mavsdk_server.frame echo "Running lipo for macos" mkdir -p ${MACOS_FAT_BACKEND_DIR} cp -a ${MACOS_X64_BACKEND_DIR}/mavsdk_server.framework ${MACOS_FAT_BACKEND_DIR} +# Fix up symlinks that seem to break when github artifacts unzips the archives +ln -s -f ${MACOS_X64_BACKEND_DIR}/mavsdk_server.framework/Versions/Current/mavsdk_server ${MACOS_X64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server +ln -s -f ${MACOS_ARM64_BACKEND_DIR}/mavsdk_server.framework/Versions/Current/mavsdk_server ${MACOS_ARM64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server +file ${MACOS_X64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server +file ${MACOS_ARM64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server + xcrun lipo -create -output ${MACOS_FAT_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server \ ${MACOS_X64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server \ ${MACOS_ARM64_BACKEND_DIR}/mavsdk_server.framework/mavsdk_server