@@ -127,13 +127,21 @@ void pollMessages(void * arg)
127127
128128 response.remove (0 , 3 );
129129 // response = response.midstr(3, response.length() - 3);
130- response.trim (" {}" );
130+ response.trim ();
131+ response.trim (' {' );
132+ response.trim (' }' );
131133
132134 CBStringList parts;
133135 parts.split (response, ' {' );
134136
137+ if (parts.size () < 2 )
138+ return ;
139+
135140 CBStringList from_and_type;
136141 from_and_type.split (parts[0 ], ' ' );
142+
143+ if (from_and_type.size () < 2 )
144+ return ;
137145
138146 struct AcarsMessage acars;
139147 acars.from = from_and_type[0 ];
@@ -595,44 +603,44 @@ void CSMRPlugin::OnFunctionCall(int FunctionId, const char * sItemString, POINT
595603 dia.m_Departure = FlightPlan.GetFlightPlanData ().GetSidName ();
596604 dia.m_Rwy = FlightPlan.GetFlightPlanData ().GetDepartureRwy ();
597605 dia.m_SSR = FlightPlan.GetControllerAssignedData ().GetSquawk ();
598- CBString freq = *bformat (" %.3f" , ControllerMyself ().GetPrimaryFrequency ());
599606
607+ CBString nextFreq = *bformat (" %.3f" , ControllerMyself ().GetPrimaryFrequency ());
600608 if (ControllerSelect (FlightPlan.GetCoordinatedNextController ()).GetPrimaryFrequency () != 0 )
601- CBString freq = *bformat (" %.3f" , ControllerSelect (FlightPlan.GetCoordinatedNextController ()).GetPrimaryFrequency ());
602- freq.trunc (7 );
603- dia.m_Freq = CString ((const char *)freq);
609+ nextFreq = *bformat (" %.3f" , ControllerSelect (FlightPlan.GetCoordinatedNextController ()).GetPrimaryFrequency ());
610+ nextFreq.trunc (7 );
611+ dia.m_Freq = CString ((const char *)nextFreq);
612+
604613 AcarsMessage msg = PendingMessages[FlightPlan.GetCallsign ()];
605614 dia.m_Req = CString ((const char *)msg.message );
606-
607-
608-
615+
609616 int ClearedAltitude = FlightPlan.GetControllerAssignedData ().GetClearedAltitude ();
610617 int Ta = GetTransitionAltitude ();
611- CBString toReturn ;
618+ CBString initClimb ;
612619
613620 if (ClearedAltitude != 0 ) {
614621 if (ClearedAltitude > Ta && ClearedAltitude > 2 ) {
615- toReturn .format (" FL%03d" , ClearedAltitude/100 );
622+ initClimb .format (" FL%03d" , ClearedAltitude/100 );
616623 }
617624 else if (ClearedAltitude <= Ta && ClearedAltitude > 2 ) {
618- toReturn .format (" %dft" , ClearedAltitude);
625+ initClimb .format (" %dft" , ClearedAltitude);
619626 }
620627 }
621- dia.m_Climb = CString ((const char *)toReturn);
628+ dia.m_Climb = CString ((const char *)initClimb);
629+
622630
623631 if (dia.DoModal () != IDOK)
624632 return ;
625633
626- DatalinkToSend.callsign = FlightPlan. GetCallsign () ;
627- DatalinkToSend.destination = FlightPlan. GetFlightPlanData (). GetDestination () ;
628- DatalinkToSend.rwy = FlightPlan. GetFlightPlanData (). GetDepartureRwy () ;
629- DatalinkToSend.sid = FlightPlan. GetFlightPlanData (). GetSidName () ;
634+ DatalinkToSend.callsign = dia. m_Callsign ;
635+ DatalinkToSend.destination = dia. m_Dest ;
636+ DatalinkToSend.rwy = dia. m_Rwy ;
637+ DatalinkToSend.sid = dia. m_Departure ;
630638 DatalinkToSend.asat = dia.m_TSAT ;
631639 DatalinkToSend.ctot = dia.m_CTOT ;
632640 DatalinkToSend.freq = dia.m_Freq ;
633641 DatalinkToSend.message = dia.m_Message ;
634- DatalinkToSend.squawk = FlightPlan. GetControllerAssignedData (). GetSquawk () ;
635- DatalinkToSend.climb = toReturn ;
642+ DatalinkToSend.squawk = dia. m_SSR ;
643+ DatalinkToSend.climb = dia. m_Climb ;
636644
637645 myfrequency.format (" %.3f" , ControllerMyself ().GetPrimaryFrequency ());
638646
0 commit comments