News:

Precision Simulator update 10.188 (22 June 2026) is now available.
Navburo update 13 (23 November 2022) is now available.
NG FMC and More is released.

Main Menu

PSX native CPDLC for Hoppie's ACARS

Started by Jeroen Hoppenbrouwers, Thu, 14 Nov 2024 18:13

Kurt

Quote from: Hardy Heinlin on Mon, 29 Sep 2025 16:13Perhaps Kurt uses a special router software and perhaps this doesn't pass certain PSX network data which would keep the CDU add-on registration intact after situ reload? Before I check my own code details in this case, Kurt may want to tell us if that is the case.


|-|ardy

Hi - I was using psx.net.router but that is only used to link to msfs2024 as far as I understand? Gary?

Hoppie - I have not tested any further tonight due to unforeseen commitments. But I can confirm that Hacars indeed was registering on all 3 cdu's and that I had a callsign entered both in hacars and ATC pages.

I am working from home Tuesday so will have some time to test the beta 2. (Will install the cpdlc client as well so I don't pester the VATSIM controllers too much ;) - although they were fine with me livetesting yesterday.

Thanks
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

To reduce the number of variables, could you connect PSX-ACARS directly to your PSX Main Server, and not through the Router? It should not matter for your experience.

Kurt

#82
Hi Hoppie.

So got to test a lot this morning with only the PSX server and a single client running - good thing is that it works :D :D I setup a test ATC logon station and I could happily act as controller and pilot at the same time.

The issues I described in my earlier post seems solved - I have messed around a lot swithcing different scenarios and the CPDLC behaviour seems ok.

There are some observations that might or might not be normal:

1: HACARS keeps whatever messages and does not reset message log between changing situations (flightnumber is reset correctly)

2: Hoppie CPDLC client shows some: "11:02:47  Internal problem: could not close uplink 0"

3: Logging off ATC in the ATC menu does reset the logon page but communication persists and trigger ATC message on EICAS and fresh message in the ATC log if I send message from CPDLC client -  also the >No Comm in EICAS does not come on until actually quiting PSX-ACARS-BETA-2 and restarting it again.

All in all AMAZING work Hoppie !!

Thanks

Kurt


PS: Now I will start the full sim setup and try again with a real vatsim flight and report back if the router indeed pllays a role in the issues I saw in the weekend.
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

Good!

HACARS is not really done. It provides a rudimentary interface only that I needed to get ACARS-as-a-radio running. Since it would conflict with BACARS, I paused development of that part until CPDLC is okay.

The stone age CPDLC ATC client gets confused about some benign artifacts that the PSX ACARS causes, this is nothing to be worried about. Just ignore.

I don't think PSX can really log off CPDLC in the sense we think it should. This is not a big deal. Hardy: is there truly a "not logged on" state, in which CPDLC would also not accept Instructor messages?

The >NO COMM does not come back as HACARS (the unfinished bit, remember) did not drop its callsign when you reloaded the situation. If you peek at the HACARS callsign on the <HACARS page, you will still see it. I think you can DELETE it there, though.

Next for me will be to hack in the workaround to allow BACARS and PSX-ACARS share the same callsign, by not using poll but instead peek. However this may need to wait as I have a long-distance trip coming up. It may not be in time for World Flight.


Hoppie

Kurt

Update:

Since my successfull test this morning I have not been able to repeat the success unfortunately no matter how simple PSX setup I used.

It seems the log-on messages gets sent fine from PSX-ACARS (checked on http://hoppie.nl/acars/system/log.html ) to the TEST CPLDLC station but the CPDLC client is no longer responding to any logon requests at all (it is green in the right lower corner and It can send telex messages bidirectionally via ACARS to PSX just fine)

I am out of time to test further until late this evening - will try reinstalling the CPDLC Client again and report back as I think the issue could be in there.

Thanks

Kurt
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

Re-install is never needed. If green, then it is OK.

I bet that the ATC client is not using the same callsign as what you attempt to log on to.

Handy: if you click on the bottom strip of the main window of the ATC client, it will immediately go out for new messages.

Hardy Heinlin

Quote from: Jeroen Hoppenbrouwers on Tue, 30 Sep 2025 10:28Hardy: is there truly a "not logged on" state, in which CPDLC would also not accept Instructor messages?

I can only offer this "state setter":

Quote from: Hardy Heinlin on Sun,  5 Jan 2025 16:36In PSX the logon timer is a state setter. Each value sets a certain state.

static final int LOGON_OFF = 0,
LOGON_SENDING = 1,
LOGON_SENT = 5,
LOGON_ACCEPTED = 8,
LOGON_ON = 11;

The values in between may increase automatically at 1 Hz, but each value sets a certain state. (I call it phase instead of state.)

Kurt

Quote from: Jeroen Hoppenbrouwers on Tue, 30 Sep 2025 15:12Re-install is never needed. If green, then it is OK.

I bet that the ATC client is not using the same callsign as what you attempt to log on to.

Handy: if you click on the bottom strip of the main window of the ATC client, it will immediately go out for new messages.

Changed the ATC callsign to something else than "TEST" and now it works again with my full setup including PSX.NET.ROUTER, SIMSTACK SWITCH and lots of other clients and stuff !

Recycling the ATC Callsign in the CPDLC client did the trick :D

Too tired now (0:30 am) to test live VATSIM - maybe if I get some spare time tomorrow (guess it will work just fine)

Cheers
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

#88
Beta 3 is out!
https://www.hoppie.nl/psx/python/psx-acars.html

This adds the --stealth option (add it after the logon code on the command line) that makes this program not create a <HACARS prompt and not use POLL to go online. It therefore won't really work well unless you run it alongside another ACARS program, such as BACARS. Make also sure that BACARS has done something online so the airplane is actually established on ACARS before you attempt to log on to CPDLC.

I don't have BACARS so I cannot fully test this.

Testers: please focus on:

1. Correct functioning alongside BACARS (for CPDLC only).
2. Correct functioning of CPDLC in the most common operational situations.

I gladly accept all reports, but may not be able to fix anything for the next two weeks due to travel. Workarounds for other testers are highly appreciated.

Hoppie

PS. You can run it in --stealth even without BACARS or any other ACARS, but it will be tricky to get CPDLC to start up correctly if there are no messages at all in the ACARS uplink queue from a previous session with your callsign. You can always abort a hanging CPDLC logon request by switching off CPDLC, using the "ATC COMM <SELECT OFF" key on the ATC LOGON/STATUS page.

Kurt

Quote from: Jeroen Hoppenbrouwers on Sat,  4 Oct 2025 16:23Testers: please focus on:

1. Correct functioning alongside BACARS (for CPDLC only).
2. Correct functioning of CPDLC in the most common operational situations.


Great Hoppie- Macroflight and I will test shortly as we have a pre worldflight warm up today.

Will report back
Best regards
Kurt
PSX Shared Cockpit Crew

Kurt

6 hours of online flying over two legs - no VATSIM ATC available until landing in Milano so we did not get to test further unfortunately.

Back at it tomorrow - will report back :D
Best regards
Kurt
PSX Shared Cockpit Crew

macroflight

Quote from: Jeroen Hoppenbrouwers on Sat,  4 Oct 2025 16:231. Correct functioning alongside BACARS (for CPDLC only).
2. Correct functioning of CPDLC in the most common operational situations.

1. Seems to work, including for PDC (you send the PDC request and accept it from the BACARS CDU inderface as you would normally do). The CPDLC messages sent from ATC to you will be visible in the BACARS message list, but will not really cause any problems as you cannot reply to them from BACARS.

PDC might break if you logon to CPDLC before sending the PDC, but normally you would never do this on VATSIM, so it's probably a non-issue.

2. I was able to logon (EGPX) and send a "request climb to FLxxx" and get a reply to that which I then accepted with "wilco". I also got some requests from the controller, e.g "report TOD on voice" which I could reply to via CPDLC and eventually I was logged off by ATC normally when I descended (CPDLC only provided above FLxxx).

No stability issues.

I can recommend this version to any PSX:er who wants to try CPDLC on VATSIM, with or without BACARS.

Jeroen Hoppenbrouwers

This all sounds good. Thanks for the testing.

In theory, CPDLC is now finished as there is nothing with specific messages that I need to bother with. PSX itself takes care of all display and message compilation tasks (thanks, Hardy!).

So unless there are things to fix on the CPDLC side that pop up after more testing, I will re-focus on the AOC side (the <HACARS prompt) for those who don't run BACARS. If there are any   :-)

Going on two weeks back-to-HQ trip tomorrow, this may be in the way of much hobby.


Hoppie

Gary Oliver

Ah excellent work!

I'll work on cleaning up the ACARS messages in BACARS V8.  Just finishing off some things off before releasing.

Cheers
G

macroflight

Two problems(?) in the last flight:

1: controller 1 sends "HANDOVER", this is not automatically handled (as other VATSIM CPDLC clients do, IIRC), but I was able to send another REQUEST LOGON to the next controller.

2: Just before HANDOVER, the controller sent "CONTACT @ESO3 131.130@_@SWEDEN CTL". This message was not printed and did not end up in the PSX CPDLC message log, but it did show up in BACARS (and of course on the web interface on hoppie.nl).


1 might just be something we need to learn.

2 is more worrying. Timing related? BACARS looks at the message before CPDLC and CPDLC then never sees it?


20341695    VATSIM    BAW32N    ESO3    cpdlc    08-18:31Z    08-18:32Z          /data2/0/7/N/WILCO
20341686    VATSIM    ESO3    BAW32N    cpdlc    08-18:31Z    08-18:31Z          /data2/7//WU/PROCEED DIRECT TO @BALVI
20341671    VATSIM    ESO3    BAW32N    cpdlc    08-18:30Z    08-18:30Z          /data2/4//NE/CURRENT ATC UNIT@_@ESO3@_@SWEDEN CTL
20341656    VATSIM    ESO3    BAW32N    cpdlc    08-18:30Z    08-18:30Z          /data2/3/1/NE/LOGON ACCEPTED
20341632    VATSIM    BAW32N    ESO3    cpdlc    08-18:29Z    08-18:30Z          /data2/1//Y/REQUEST LOGON
20341592    VATSIM    ESMM    BAW32N    cpdlc    08-18:27Z    08-18:28Z          /data2/13//NE/HANDOVER @ESO3
20341591    VATSIM    ESMM    BAW32N    cpdlc    08-18:27Z    08-18:28Z          /data2/12//WU/CONTACT @ESO3 131.130@_@SWEDEN CTL
20341375    VATSIM    ESMM    BAW32N    cpdlc    08-18:19Z    08-18:19Z          /data2/11//NE/CURRENT ATC UNIT@_@ESMM@_@SWEDEN CTL
20341373    VATSIM    ESMM    BAW32N    cpdlc    08-18:19Z    08-18:19Z          /data2/10/1/NE/LOGON ACCEPTED
20341362    VATSIM    BAW32N    ESMM    cpdlc    08-18:18Z    08-18:19Z          /data2/1//Y/R

Kurt

Hey Hoppie.

A little "issue tonight" ATC (EDWM) accepted my logon but CPDLC in PSX did not pick it up and never changed state to logon - all subseeding messages was printed on the printer but not able to respond back via CPDLC as it did not changed state to loged on so had to read back the instructions via voice which was fine :)

Looking at the message log everything looks fine though:

20343823   VATSIM   EDWM   GTI74L   cpdlc   08-20:05Z   08-20:05Z        /data2/63//NE/LOGOFF
20343822   VATSIM   EDWM   GTI74L   cpdlc   08-20:05Z   08-20:05Z        /data2/62//NE/CONTROLLER TERMINATED CPDLC
20343780   VATSIM   GTI74L   GTI   ads-c   08-20:03Z           REPORT GTI74L 8225 52.99059 13.74230 31952
20343732   VATSIM   EDWM   GTI74L   cpdlc   08-20:00Z   08-20:00Z        /data2/61//WU/DESCEND TO @FL170
20343697   VATSIM   GTI74L   GTI   ads-c   08-19:58Z           REPORT GTI74L 8220 53.66755 13.62417 32118
20343694   VATSIM   BAW91G   GTI74L   telex   08-19:57Z   08-19:57Z        THANK U SIR
20343669   VATSIM   GTI74L   BAW91G   telex   08-19:56Z   08-19:56Z        HAPPY LANDING BR KURT
20343615   VATSIM   GTI74L   GTI   ads-c   08-19:53Z           REPORT GTI74L 82155 54.34137 13.50288 32117
20343558   VATSIM   EDWM   GTI74L   cpdlc   08-19:50Z   08-19:50Z        /data2/58//NE/CURRENT ATC UNIT@_@EDWM@_@BREMEN RADAR CTR
20343555   VATSIM   EDWM   GTI74L   cpdlc   08-19:50Z   08-19:50Z        /data2/57/1/NE/LOGON ACCEPTED
20343546   VATSIM   GTI74L   EDWM   cpdlc   08-19:49Z   08-19:50Z        /data2/1//Y/REQUEST LOGON
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

Quote from: macroflight on Wed,  8 Oct 2025 18:391: controller 1 sends "HANDOVER", this is not automatically handled (as other VATSIM CPDLC clients do, IIRC), but I was able to send another REQUEST LOGON to the next controller.
PSX natively does not handle this (of course), so this will need intervention by the PSX-ACARS software. Not a problem. A handover would be simulated by a logoff followed by a logon anyway, this is how everything else does it.

Quote2: Just before HANDOVER, the controller sent "CONTACT @ESO3 131.130@_@SWEDEN CTL". This message was not printed and did not end up in the PSX CPDLC message log, but it did show up in BACARS (and of course on the web interface on hoppie.nl).
I think the underscore _ may be a problem here, I need to look what happens if I don't suppress it. In general I don't do a lot of input cleanup yet.


Jeroen Hoppenbrouwers

Quote from: Kurt on Wed,  8 Oct 2025 20:59A little "issue tonight" ATC (EDWM) accepted my logon but CPDLC in PSX did not pick it up and never changed state to logon - all subseeding messages was printed on the printer but not able to respond back via CPDLC as it did not changed state to loged on so had to read back the instructions via voice which was fine :)
The very first message probably suffered from a combination of bug and bad luck. If the CPDLC client has not had the opportunity to figure out the last seen message number on ACARS, it throws away everything it received and sets the high water marker right there. So if ACARS did not have anything yet when you started up, the first incoming message will be treated as the history and essentially it is ignored.

Make sure you have some uplinked message in the system before you start the CPDLC client.

Kurt

Quote from: Jeroen Hoppenbrouwers on Thu,  9 Oct 2025 15:12Make sure you have some uplinked message in the system before you start the CPDLC client.

Ok - I had used BACARS for all the preflight stuff on that flight so thought that was enough - but reviewing the message log on your site has no trace of this so recon that BACARS does not use hoppies ACARS for all transmissions - anyhow will send a message to my self when I test next time before logging on to CPDLC.

Thanks Hoppie :)
Best regards
Kurt
PSX Shared Cockpit Crew

Jeroen Hoppenbrouwers

Or just request a METAR. As long as there is something aimed for your callsign in the ACARS queue of the last 24 hours.

The debug log of PSX-ACARS shows this high water marking process.