WheezyE / Winelink

Installation scripts for running Winlink (RMS Express/Trimode & VARA) on non-Windows computers. Wine & Box86 make this project possible.
69 stars 19 forks source link

Using the Channel Browser crashes RMS Express #16

Closed KD2ROS closed 2 years ago

KD2ROS commented 2 years ago

I know that this is already in your list of issues on the main page, but specifically, RMS Express crashes when using the Channel Selector after it starts the automatic update of the channel data upon entering the Channel Selection window...it downloads the Winlink channel data and the MPS data...as it is trying to take the downloaded data and update the Channel selection window, it crashes RMS Express. There used to be an option to upgrade the channel selection/propagation data, yes or no, when you opened the Channel selection window...perhaps being able to select, no, would bypass what is causing the crash and allow the VARA session to proceed?

Also, if you have a known channel that you like to use you are able to type in the callsign, center frequency and dial frequency...when you start the session, it proceeds but, sends you the message that it cannot open the com port that is specified in your session settings, so it will not send the channel data that you typed in to the radio or operate the PTT...the session proceeds as is normal but fails because the radio cannot respond...

WheezyE commented 2 years ago

Thank you for searching for these bugs and documenting when they occur in detail. I’ll try to confirm your results and log them soon in wine-mono. I appreciate the extra set of eyes bughunting!

WheezyE commented 2 years ago

Now that madewokherd fixed the outbox & inbox errors, I've submitted a new bug report to winehq for this one too. I'm submitting to winehq instead of wine-mono since madewokherd has done so much already and I don't want to barrage them. I'm hoping another dev can jump on this one.

Keep the bug reports coming though! And thank you for testing things

WheezyE commented 2 years ago

I’ve discovered that if you go edit ~/.wine/drive_c/RMS\ Express/KD2ROS/Data/RMS\ Channels.dat with a text editor, delete this line 9W2RUT|OJ02UX|7093|41|00-23|PUBLIC then save the file, then you can use the SFI button in the channel browser to predict propagation quality for channels.

With that bit working, does the radio still have connection issues?

WheezyE commented 2 years ago

I’ve updated my bug report with a possible fix idea for wine-mono too, but am not sure how to implement the fix in wine-mono. We’ll have to see what the devs say

KD2ROS commented 2 years ago

Hello Eric, I removed the specified line of code from RMS Channels.dat...the propagation indices now appear, I can select a channel and it populates the session window with the appropriate data... However, when the session window opens and the session communications with the pi start, I get the following error message..."Unable to open radio serial port COM2. See exceptions log."...COM2 is the correct port for my IC7100 radio and works appropriately in VARA FM using Winelink...

I am attaching the RMS Express Exceptions log...when I look at it, it isn't telling me anything that I don't already know...maybe it will disclose a revelation to you...

Overall, Winelink stability has improved, VARA FM works fine, but VARA and Packet Winlink (more on this later) have issues...the improved stability is a MAJOR improvement for me and will make winelink a win for pi users once VARA and packet issues are resolved...

73 de KD2ROS Kate

On Tue, Dec 7, 2021 at 9:51 AM Eric Wiessner (KI7POL) < @.***> wrote:

I’ve updated my bug report with a possible fix idea for wine-mono too, but am not sure how to implement the fix in wine-mono. We’ll have to see what the devs say

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/WheezyE/Winelink/issues/16#issuecomment-987997515, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQ7BOYZW4IS6P3UG7HFCG4LUPYNONANCNFSM5HX3AE7A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

WheezyE commented 2 years ago

Regarding the Channel Browser crash, it seems that one of the stations in the RMS Channels.dat channels database had a typo (it listed its frequency as 7093 Hz instead of 7093 kHz). RMS Express then asked dvoa.dll (D-VOACAP, the propagation prediction calculation engine used by RMS Express) to compute a propagation prediction for about 0.01 MHz, and then dvoa.dll told RMS that it couldn't compute a 0.01 MHz frequency (the author of D-VOACAP says that calculating propagation for frequencies under 4 MHz is unreliable and that frequencies under 2 MHz break the VOACAP algorithm).

This part is speculation, but I believe that the error message from dvoa.dll (which was written in Delphi/Pascal) which was trying to warning us that it couldn't calculate a propagation prediction with that low of an input frequency, then crashed wine-mono somehow. I believe that wine-mono just doesn't know what to do with Delphi error messages yet.

It looks like the station with the typo fixed itself though at some point in time during our trying to find this crash. So the RMS Channels.dat file shouldn't have any more typos for the time being at least - though it could happen again in the future.

I've reached out to the wine-mono devs to see if they can try getting wine-mono to ignore Delphi exceptions. We'll have to wait for a patch before we can say this crash is behind us. I'll close this issue when we get a patch and when I can confirm that the crash doesn't happen anymore.

I've also contacted the RMS Express devs to ask them to put in a warning if there are small-value frequencies on channels. That way, users might be able to get a heads-up that a value in their RMS Channels.dat database might have a typo in it or that propagation for that station might be broken.

Until we hear back from the other devs, I suppose I'll move on to trying to find that COM port error.

the improved stability is a MAJOR improvement for me and will make winelink a win for pi users once VARA and packet issues are resolved...

Thank you for your encouragement - it means a lot. I think moving to wine-mono is the right thing to do, but seems to have introduced a lot of other bugs in the process. Seb has fixed a lot of stability issues in .NET 4.6, though I've been unable to get .NET 4.6 to install in box86 without significant user interaction. I think if I can find a working combination of wine & box86 that installs .NET 4.6 with winetricks completely silently, then I can then have the script move to the latest box86 again and get even better stability in RMS Express. My end-goal is to run everything with wine-mono, since wine-mono is open-source and more future-proof than .NET, but maybe that would fix the immediate issues until we can track down the other wine-mono bugs.

Thank you, also for all of your patience with these bugs! I really appreciate your support. While we wait for a path to install .NET 4.6 silently with box86, keep sending all the bug reports you can find in wine-mono.

WheezyE commented 2 years ago

I've got a possible workaround for the COM ports here while we track down the wine-mono COM port bug. I haven't tested it yet myself, but let me know if you have any install trouble.

WheezyE commented 2 years ago

I'm going to close this issue for now for the following reasons.

If anyone experiences this crash in the future with wine-mono, you can fix it by doing the following:

  1. Open the file ~/.wine/drive_c/RMS\ Express/KD2ROS/Data/RMS\ Channels.dat with a text editor
  2. Look for any lines that have small numbers after the first two entries (for example 9W2RUT|OJ02UX|7093|41|00-23|PUBLIC, where 7093 represents 7093 Hz, or < 0.01 MHz).
  3. Try adding three zeroes onto the end of any < 0.01 MHz frequencies you find (ie change 9W2RUT|OJ02UX|7093|41|00-23|PUBLIC to 9W2RUT|OJ02UX|7093000|41|00-23|PUBLIC). I believe these Hz frequency values need to be at least five or six digits long to play nicely with dvoa.dll (and not crash wine-mono).