I am puzzled that CQRLOG seems to stop at member #23907 when reading the skcc.txt member list and populating the NEW QSO award field with the member number. It works for member #23907, but does not work for any member I tested higher than that. At the moment, there are 23944 SKCC members. I loaded the skcc.txt file from the CQRLOG website on order to test it at numbers this high, but there are too few members in that file to repeat the test.
Is this a problem with me or my system, or can it be explained by a limitation in CQRLOG? I must be overlooking something. That is an odd number. I cannot see a problem in the skcc.txt file, but I will check again.
Background: I wrote a Python script to grab the SKCC member list from the SKCC website, parse the data, and write the callsigns and member numbers to ~/.config/cqrlog/members/skcc.txt in the correct format. To the extent that I have tested it, it works but with the glitch past #23907.
BTW, I set out writing the Python script before I realized that one of the CQRLOG maintainers is keeping an updated member list here on the CQRLOG site. Thanks for that.
As you probably know, the SKCC member numbers change if a member advances in the club, and a letter, C,T, or S is appended the the original, numeric only, member number. Because of that, and as new members join, the member list changes frequently so that it is cool to be able to update it often. This Python script could installed by every member on their system and executed daily to get their own update, or whenever CQRLOG is started, for example. I will gladly share the script with the CQRLOG community as soon as I can get it working. Ideally, I would like to share the script privately with one or more of you CQRLOG developers, possibly one whom is a SKCC member, for you to test as well, before making it available to everyone.
Jack
K4TRH
HI Jack!
Thanks for reporting.
If you start cqrlog from user command console with:
cqrlog --debug=1 > /tmp/debug.txt
and do the import. Close cqrlog and check the file /tmp/debug.txt can you dig the stop from file?
--
Saku
OH1KH
Saku,
The debug (truncated) output below. Not any hints there. Looks like all hamlib stuff. I performed a manual LOAD of the SKCC membership file on the Preferences->Membership tab while in debug. And discovered this:
When I do a manual LOAD on the Preferences->Membership Tab, CQRLOG DOES load the correct number of records from my updated skcc.txt file, and when I entered the callsign of the last member in the file, the correct membership number pops up in the award field. IT WORKS with a manual LOAD. I can use it that way, no problem. However:
I had assumed that if the checkbox at the bottom of the Membership tab that is labeled "Check for updated list of members when program starts" is checked (it is checked in my config) that the list would automatically load on startup. Thus, I would not need to do a manual LOAD, and I did not. Could it be that that function in Ver 2.5.1 is not working correctly? I am not absolutely sure, but I seem to remember that a dialog box came up ONCE, asking if I wanted to update the member list, but I have not seen it since when starting CQRLOG. I guess I would expect that to happen the same way that the DXCC and QSL managers dialog boxes work.
Thanks,
Jack
Cqrlog Ver:2.5.1 (001) Date:2021-01-24
**** DEBUG LEVEL 0 ****
**** CHANGE WITH --debug=1 PARAMETER ****
OS:
Linux version 4.15.0-20-generic (buildd@lgw01-amd64-039) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018
/usr/bin/mysqld
Settings:
-----------------------------------------------------
RigCtldPath:/usr/bin/rigctld
RigCtldArgs:-m 231 -r /dev/ttyUSBts590s -t 4532 -s 19200
RunRigCtld: TRUE
RigDevice: /dev/ttyUSBts590s
RigCtldPort:4532
RigCtldHost:localhost
RigPoll: 500
RigSendCWR: FALSE
RigId: 231
Starting RigCtld ...
rigProcess.Executable: /usr/bin/rigctld
Parameters:
-m
231
-r
/dev/ttyUSBts590s
-t
4532
-s
19200
rigctld started!
Connected to rigctld @ localhost:4532
0
20
Sending: fmv
20
Msg from rig: 3980000
LSB
2200
VFOA
Sending: fmv
Msg from rig: 3980000
Msg from rig: LSB
2200
Msg from rig: VFOA
Sending: fmv
Jack
Hello Jack!
First about debug.
Cqrlog is multi-thread program and sometimes debug texts get mixed when there are debug outputs from several sources at same time.
Good way is to set rig poll rate to something like 30000, close RBNmonitor and DXCluster (if not hunting bug from them).
Then you get less lines and checking comes easier.
I have not checked that part of code so I do not know how many debug prints there are and does manual load differ from automated loading (in source point of view).
It is important to know that failure is not at manual load, just at automated side.
I have not used member lists, or studied much the source there. I must first learn myself more about that.
--
Saku
OH1KH
Hi Jack!
Spent a moment with source code.
It is no use to debug. There are no debug lines added in that part.
Loading club file manually is quite straight forward but checking update at startup quite bit a hassle. Without looking more carefully and doing a run test with debug stepping it seems that new files are just fetched with http but not appended to use.
I must be wrong, there is no sense with that!
Another thing (and real bug) is that cqrlog help files at this point are so old that there are no mention about "check updates" and "Update now" and the picture from that point is so old that those are completely missing.
--
Saku
OH1KH
My dark side (one of them) is that I try too fast to write what I have found.
With little more looking I could have written this to previous message. On the other hand writing things out and then continuing helps often to get forward and see things in new way.
OK
1st wrong:
There is one debug line that lists every call added to membership database. I made it print always without debug=1 so it was easier to follow. You can find it too with parameter --debug=1 when you set rig polling rate very big and do not open RBN and DXCluster and other unneeded windows. This works only with manual "load" button.
2nd Wrong:
(as I expected) Getting list from web does update it to database as it should. But there is no debug lines to see what callsigns are added.
At least it seems to be so.
I added myself at the end of skcc file in ~/.config/cqrlog/members with number 23999 and made manual load.
Added new qso with myself and got text to remarks as I had configured. So I was there.
Then stopped cqrlog. Started again, but at Open DB connection window I did not open log.
Instead selected utils/configuration/export and exported log settings to file /tmp/log.ini
After that opened /tmp/log.ini with text editor and at the and of file there is section [ClubUpdates]
Changed year to be 2001 for skcc and saved file.
Then back to Open database window and utils/configuration/import and loaded /tmp/log.ini
After that I opened log and because I had checked "Check for updated..." in preferences it said there is a new skcc file. Accepted download.
After that entered again fake call with myself and there was no longer text in remarks, so new file was read to database and I was not in any more.
Saving /tmp/log.ini and doing utils/configurationimport always with it before opening log triggers always automatic check and download.
You can check last call in database with "QSQ list/Filter/SQL console"
Type to upper part window (assuming skcc is club1, otherwise change club numbers)
select clubcall from club1 order by id_club1 desc limit 1
And press green arrow icon. You get reply to low part.
Clubcall
KG5RG
Compare that to last line of skcc.txt file to see that all calls have been read.
--
Saku
OH1KH
This list is updated by Dan, WA4GSD. Latest version is from Feb. 6 (~ 10 days old) and ends with nr. 23881. Sorry, no newer data available. No Python script or similar option here but I can test it if available. I am SKCC member #2264.
73,
Martin, OK1RR
Martin,
Thanks. How can I send you the Python script file for you to test before releasing it.
(Not sure what happens to the file if I use the upload button below. I am new to the forum)
Jack
Python is text file (.txt is accepted). The formatting may change if you attach it to message but text should keep same.
Another (not tested, might work) way is to make a zip and change the extension from .zip to .jpg. Then receiver must know that and make direct download from link (not view) and change extension back.
Best way is to use dropbox, Google drive or similar web based virtual drive.
--
Saku
OH1KH
Hi Jack,
for me the best way is to send it as an email attachment. You can also use zip or any similar compression method.
73,
Martin, OK1RR (martin@ok1rr.com)
If you are able to compile from source you can add line
if dmData.DebugLevel >=1 then writeln(ClubLine.club_nr,';',ClubLine.club_call,';',ClubLine.fromdate,';',ClubLine.todate);
to file src/fImportProgress.pas just before line
Application.ProcessMessages
at line 1468
Then you can see added calls with debug when automatic update is running same way as you see them with manual "load".
Updated file is read to StringList that is then pushed to database. It should well handle over 23k of calls (unless you have very short RAM memory in your PC).
I use same method with my addition of UScalls=USstates in my wsjtx CQ monitor (only in Alpha test binaries) and it loads there all US callsigns with their states that I get from FCC website.
I think that is all from me until you can show that all calls are not added from file. ( In way that can be reproduced.)
--
Saku
OH1KH
Saku
Thanks so much for your help and support. I printed your posts so that I can follow your suggestions and tips.
I will dig a little deeper and let you know what I find. But for now
73
Jack