Skip to content

Commit b31e3a6

Browse files
committed
CPDLC seems to work
1 parent a22c2d3 commit b31e3a6

File tree

3 files changed

+30
-22
lines changed

3 files changed

+30
-22
lines changed

vSMR/SMRPlugin.cpp

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

vSMR/SMRRadar.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2597,10 +2597,10 @@ void CSMRRadar::DrawTags(Graphics* graphics, CInsetWindow* insetWindow)
25972597

25982598

25992599
REAL TagWidth = 0, TagHeight = 0;
2600-
REAL TAG_PADDING_LEFT = (REAL)currentFontSize / 4.0;
2600+
REAL TAG_PADDING_LEFT = (REAL)(currentFontSize / 4.0);
26012601
REAL TAG_PADDING_RIGHT = TAG_PADDING_LEFT;
2602-
REAL TAG_PADDING_TOP = TAG_PADDING_LEFT*0.5;
2603-
REAL TAG_PADDING_BOTTOM = TAG_PADDING_LEFT*0.5;
2602+
REAL TAG_PADDING_TOP = TAG_PADDING_LEFT*(REAL)0.5;
2603+
REAL TAG_PADDING_BOTTOM = TAG_PADDING_LEFT*(REAL)0.5;
26042604

26052605
for (unsigned int i = 0; i < LabelLines.Size(); i++) {
26062606

vSMR/vSMR.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ BEGIN
170170
EDITTEXT IDC_ORIG,7,110,254,49,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL
171171
CTEXT "PILOT REQUEST",IDC_STATIC,105,101,55,8
172172
CTEXT "INIT CLB",IDC_STATIC,142,42,28,8
173-
EDITTEXT IDC_CLB,141,52,29,14,ES_CENTER | ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED
173+
EDITTEXT IDC_CLB,141,52,29,14,ES_CENTER | ES_UPPERCASE | ES_AUTOHSCROLL
174174
END
175175

176176
IDD_DIALOG2 DIALOGEX 0, 0, 142, 105

0 commit comments

Comments
 (0)