quassbutreally / EasyCPDLC

Making CPDLC actually usable for pilots on VATSIM
65 stars 14 forks source link

CPDLC messages are not synchronised #4

Closed Alpi-no closed 3 years ago

Alpi-no commented 3 years ago

Despite starting the client as admin, the messages sometimes won't synchronise on the client. I would receive several messages after reconnecting, while I should have received them earlier according to the hoppie log. It just happens after a while. No idea why

quassbutreally commented 3 years ago

Thanks for the report @jakobeng1303 , is this happening with any particular type of message? For example, just with telex or just with CPDLC? Roughly how long does it take before you start to notice these problems? The more specific you can be, the easier it will be for me to start to diagnose this.

Alpi-no commented 3 years ago

happens with all messages and pretty quickly, I can't point my finger on it but in the last 3 instances the log on works, anything else a bit therafter does not work (initial messages right after log on are fine). very weird.

quassbutreally commented 3 years ago

That's very interesting. I can't say I've experienced anything similar to that.

I'll get a dev build written up tomorrow morning with some enhanced logging capabilities for you, that should give me a better idea of what's going wrong under the hood.

FreeIce777 commented 3 years ago

You are a great fellow! It's really convenient and simple. Keep up the good work. Add the ability to resize the window. We really need a function up to all windows

quassbutreally commented 3 years ago

You are a great fellow! It's really convenient and simple. Keep up the good work. Add the ability to resize the window. We really need a function up to all windows

Resizing is in the works! It just requires me to write quite a lot of boilerplate code to handle chaning the size of all the controls. Could you please put this into a new issue so I don't forget?

quassbutreally commented 3 years ago

@jakobeng1303 please download and unzip this debug build of EasyCPDLC. You may save it wherever you like but please ensure you run it as administrator. This build will generate a log file in its root folder called "EasyCPDLCLog.txt". If you encounter these issues again, please save that log file and either upload it to this issue or send it to my e-mail at joshseagrave@googlemail.com. That will hopefully give me sufficient information to diagnose the issue you're having.

In the meantime, I've done some work optimising some of the backend polling and such so that it should be better optimised. That will be included in the next beta build.

Thanks,

Joshua

Alpi-no commented 3 years ago

will do, thanks!

Alpi-no commented 3 years ago

unfortunately I cannot at all get my windows pc to downlaod it, it's always classified as virus and I can't seem to be able to circumvent the protection

quassbutreally commented 3 years ago

Windows has a habit of spoiling my fun with this project! No worries, I'll make a proper installer for it and do it that way. It might have to wait until tomorrow though.

Alpi-no commented 3 years ago

thanks!

quassbutreally commented 3 years ago

So I decided it'd probably be a good idea to include logging functionality in general. v0.1.0.4 has just released with logging enabled and some other tweaks, so feel free to grab that and send the logfile in whenever you get time.

Josh

Alpi-no commented 3 years ago

Wilco, thanks so much for developing it!

Alpi-no commented 3 years ago

I again only received a TELEX once I reconnected EasyCPDLCLog.txt

quassbutreally commented 3 years ago

Thankyou very very much for the log file. It's been massively helpful. I now have a working hypothesis for what exactly is causing your issue.

The logfile reveals that about 7 minutes after starting the application, EasyCPDLC failed to poll for received messages once, and that then stopped the routine that runs that check every approx. 10-12 seconds. I've done some digging as to why that is the case and discovered that in the case of a request not being sent, the routine cancels without handling the error but the program continues to run as the error is self contained. More importantly, it does not notify the user of the error or attempt to restart the routine. I suspect that this is the root cause of your problems. As you correctly identified, logging out and back in restarts the routine so your message then came through.

I will develop a thorough fix for this and include it in the next development build of EasyCPDLC, which will be available hopefully by the end of today. As far as I can deduce that will fix this issue.

Thankyou again for your patience and your cooperation with helping me get this fixed, it is much appreciated

Alpi-no commented 3 years ago

Thank you again for your patience and your cooperation with helping me get this fixed, it is much appreciated

No worries at all, happy to help and thanks for developing it! A user friendly CPDLC client is desperately needed and would hopefully encourage more people to use it, hence improving coverage and pressuring developers to incude it natively