From 333519edc457f0d52458024e0632d6e721b58024 Mon Sep 17 00:00:00 2001 From: Justin Wai Date: Mon, 5 Aug 2024 19:34:31 +0800 Subject: [PATCH] Fix incorrect CJS showing in missed approach alarm ACK button in tower unit when scratchpad string is occupied --- MissedApproach/MissedApproachAlarm.cpp | 4 ++-- MissedApproach/MissedApproachPlugin.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/MissedApproach/MissedApproachAlarm.cpp b/MissedApproach/MissedApproachAlarm.cpp index 57a52d54..49b689f1 100644 --- a/MissedApproach/MissedApproachAlarm.cpp +++ b/MissedApproach/MissedApproachAlarm.cpp @@ -476,11 +476,11 @@ void MissedApproachAlarm::OnFlightPlanControllerAssignedDataUpdate(CFlightPlan F } } - // Trigger alarm (APP) + // Clear Scratchpad scratchPadString.erase(0, strlen("MISAP_")); controllerData.SetScratchPadString(scratchPadString.c_str()); - // Don't add to vector unless runway is selected and active + // Don't Trigger alarm (APP) unless runway is selected and active if (find(activeMAPPRunways.begin(), activeMAPPRunways.end(), data.GetArrivalRwy()) == activeMAPPRunways.end()) return; missedAcftData.push_back(FlightPlan.GetCallsign()); missedAcftData.push_back(data.GetDestination()); diff --git a/MissedApproach/MissedApproachPlugin.cpp b/MissedApproach/MissedApproachPlugin.cpp index 5a669f22..6b8be042 100644 --- a/MissedApproach/MissedApproachPlugin.cpp +++ b/MissedApproach/MissedApproachPlugin.cpp @@ -52,11 +52,10 @@ void MissedApproachPlugin::ackMissedApproach(const char* callsign) { data = fpl.GetFlightPlanData(); controllerData = fpl.GetControllerAssignedData(); - string buf = controllerData.GetScratchPadString(); - buf.append("MISAP-ACK_"); + string buf = "MISAP-ACK_"; buf.append(myself.GetPositionId()); + buf.append(controllerData.GetScratchPadString()); controllerData.SetScratchPadString(buf.c_str()); - //couldn't find it, handle error } void MissedApproachPlugin::resetMissedApproach(const char* callsign) { @@ -118,5 +117,6 @@ bool MissedApproachPlugin::matchArrivalAirport(const char* arrivalArpt) { } string MissedApproachPlugin::checkForAck(string scratchPadString) { - return scratchPadString.substr(10, 2); + auto it = scratchPadString.find("MISAP-ACK_"); + return scratchPadString.substr(it + 10, 2); }