Linux logging program for amateur radio operators
Go to file
OH1KH 644c781ed2 Fix for rig power on
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
2022-06-30 13:01:34 +03:00
ctyfiles Update XW-3 SAT name to HO-113 (also add Maya sats) 2022-01-04 09:30:08 +01:00
debian dependencies updated 2022-05-29 16:17:57 +02:00
docker-build add ENV to automagically configure tzdata 2021-09-26 15:39:50 +02:00
help Grayline fix 2022-06-06 08:38:53 +03:00
images splash image updated 2019-07-26 21:00:01 +02:00
members membership files updated 2019-10-27 13:00:48 +01:00
src Fix for rig power on 2022-06-30 13:01:34 +03:00
tools fix: getting version from uVersion.pas, clone using https 2022-05-29 18:15:01 +02:00
voice_keyer Update for voice keyer script 2022-04-25 19:16:43 +03:00
xplanet initial commit 2013-03-15 21:13:08 +01:00
zipcodes initial commit 2013-03-15 21:13:08 +01:00
.gitignore .idea dir added 2022-04-24 13:26:38 +02:00
.travis.yml make install added 2018-09-01 08:31:37 +02:00
AUTHORS cqrlog contributors added 2021-01-16 09:18:16 +01:00
CHANGELOG changelogs updated 2022-05-29 16:17:40 +02:00
COPYING #119 fix cqrlog license file position 2019-02-11 19:35:04 +01:00
jcfsettings.cfg JWDI code format settins added 2022-04-24 14:44:13 +02:00
Makefile Revert "fix: remove lazarus temp dir to test build in pbuilder" 2022-06-07 19:33:49 +02:00
README.md dev tools versions updated 2021-01-16 09:17:56 +01:00

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/

Image of CQRLOG

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.