644c781ed2
MI0HOZ reported that his rig closes ok from TRXControl P-off button but does not start from P-on button. I did know this before but always tought that it was my IC7300 "property". More carefull testing did show that it is Cqrlog's bug. If rig Power off or stby button is pressed and rig closed Cqrlog continues polling. That stacks commands/responses and when Power on button is pressed command is sent to rig but it may take several minutes before action. This showed up totally new problem. Cqrlog "just throws out polling" to rigctld and assumes that there will be proper answer on return. How ever the code does not wait for return, it continues polling by timer even when there is no answer. It should not do so. For every command sent to rigctld there should be always some kind of reply coming back. Before that reply new timer based command(s) should not be sent. This tries to fix problem(s). At the start \chk_vfo and \dump_caps are asked (first if user has allowed that, default yes). Result of \chk_vfo modifies the polling format and result of \dump_caps is used to check if rig can do: get vfo, set_powerstat and send morse. At the moment used information is more cosmetic: If rig can not "get vfo" Trxcontrol's vfo "A" and "B" buttons are not colored by vfo in use. if rig can not "Set_powerstat" Trxcontrol's poer buttons are disabled. "Send mores" was planned to give warningif user tries to use Hamlib keyer with rig that does not support it, but it is not implemented yet. Then to more important things. Now rig polling is enabled by "ticket numbers". The poll timer itself runs all the time but "tickets" order what to do. This way the start commands can be done first by large numbers. Then all other issued commands have ticket number 1 And finally, when nothing else to do, normal rig polling "the fmv" has poll number 0 Ticket number -1 will disable polling. That is used when waiting for answer from rig and afte power off command is issued to stop all rig requests, except power on command. This is third idea for fixing this problem and it seems to work better than previous ones. Testing is done with Icoms 7300 and 706 and hamlib dummy (#1) rig. While testing a new bug was found. rigctld passband settings had bug in man page where "-1"="keep current passband" was not told. It was ok in rigctl man pages instead. Proposed fix, and it is now done in Hamlib. How ever also Cqrlog had bug there. The passband variable was "word" that can not support negative numbers. Setting passband to "-1" in preferences/modes resulted passband setting of 65535 in rigctld. Fixed variable to be "integer" for negative value support. Squashed commit of the following: commit 0126a51ffb7b81d2c76dfc565643d80488a59c62 Author: OH1KH <oh1kh@sral.fi> Date: Thu Jun 30 12:41:26 2022 +0300 version date commit 00ed3aa437115d83c6aa08861f0e7d2168b57677 Author: OH1KH <oh1kh@sral.fi> Date: Mon Jun 27 10:28:28 2022 +0300 Fixed passband '-1' setting commit 0fb4345a3a584f91c8e89aa0c9be94dc83ab5f58 Author: OH1KH <oh1kh@sral.fi> Date: Mon Jun 27 10:21:07 2022 +0300 Fixed passband '-1' setting commit 1ea3a5c193ad3db60a728f3c3e8c3d6ab93187e3 Author: OH1KH <oh1kh@sral.fi> Date: Mon Jun 27 09:41:14 2022 +0300 If rig can get vfo coloer TRXC vfo buttons,else not commit a99edac732d15a354a0e3a10ef399107e53171dd Author: OH1KH <oh1kh@sral.fi> Date: Mon Jun 27 09:04:10 2022 +0300 restored queue send commit cd1ba324376556d64cd7d38667a4609f514c736c Author: OH1KH <oh1kh@sral.fi> Date: Mon Jun 27 08:28:52 2022 +0300 connect indication commit 1f1653ed7b634eda81586409fab3564273888513 Author: OH1KH <oh1kh@sral.fi> Date: Thu Jun 23 17:56:05 2022 +0300 looks good, but connection status must be fixed commit d54143de69950a6e80c578cf4049a418e909972c Author: OH1KH <oh1kh@sral.fi> Date: Thu Jun 23 14:07:06 2022 +0300 power on / off btns work now commit 1332722a3a9483699735404af9ccc0ff322c44e9 Author: OH1KH <oh1kh@sral.fi> Date: Thu Jun 23 13:06:14 2022 +0300 Third try to fix this uRigControl |
||
---|---|---|
ctyfiles | ||
debian | ||
docker-build | ||
help | ||
images | ||
members | ||
src | ||
tools | ||
voice_keyer | ||
xplanet | ||
zipcodes | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
CHANGELOG | ||
COPYING | ||
jcfsettings.cfg | ||
Makefile | ||
README.md |
What is CQRLOG?
CQRLOG is an advanced ham radio logger based on MySQL database. Provides radio control based on hamlib libraries (currently support of 140+ radio types and models), DX cluster connection, online callbook, a grayliner, internal QSL manager database support and a most accurate country resolution algorithm based on country tables developed by OK1RR. CQRLOG is intended for daily general logging of HF, CW & SSB contacts and strongly focused on easy operation and maintenance. More at https://www.cqrlog.com/
How to contribute?
You have to have Lazarus 2.0.6, fpc 3.0.4 compiler, MySQL server and clinet installed. CQRLOG is developed on Ubuntu 20.04, Lazarus and FreePascal are available in my pesronal repo https://launchpad.net/~ok2cqr/+archive/lazarus
Compile with make and install with make DESTDIR=/home/yourusername/where_you_want_to_have_it install. If you are going to change the source code, fork the repo, do the changes, commit them and use Pull request.
Dependencies
Build-Depends: lazarus, lcl, fp-utils, fp-units-misc, fp-units-gfx, fp-units-gtk2, fp-units-db, fp-units-math, fp-units-net
Depends: libssl-dev, mysql-server | mariadb-server, mysql-client | mariadb-client, libhamlib2 (>= 1.2.10), libhamlib-utils (>= 1.2.10)
Running build with Docker
If you do not want to install the dependencies into your main machine, you can do the build
in a Docker container. You need to mount into that Docker container this directory and
also the target directory where you want to put the alpha version of cqrlog
you are
building.
This also helps if you want to build, e.g., on a Debian Stretch machine. Attempts at native builds on that platform have failed. Using a reasonably recent Ubuntu inside our Docker-based build environment, makes the build work even on Debian Stretch.
That bad news is, you have to install Docker (CE is fine).
That done, you can prepare an Ubuntu Docker image with the build tools as follows:
(cd docker-build && docker build -t this.registry.is.invalid/cqrlog-build .)
(In case you wonder: There is no need to use a Docker registry, so we provide a registry host that is guaranteed to not exist.)
Then, run the build itself with
sudo mkdir -p /usr/local/cqrlog-alpha &&
docker run -ti -u root -v $(pwd):/home/cqrlog/build \
-v /usr/local/cqrlog-alpha:/usr/local/cqrlog-alpha this.registry.is.invalid/cqrlog-build
To use your build, make sure that you have no instance of cqrlog
running, backup
$HOME/.config/cqrlog
(if you ever used cqrlog
before), add
/usr/local/cqrlog-alpha/usr/bin
to your $PATH
and start cqrlog
from there.