cwdaemon - main page
About
cwdaemon is a small daemon which uses the pc parallel
or serial port and a simple transistor switch to output
morse code to a transmitter from a text message sent to
it via udp port 6789. The program also uses the
soundcard or PC speaker (console buzzer) to generate a
sidetone.
Up until version 0.9.4 this software has been developed
and maintained by Joop Stakenborg. Currently the
software is being developed by Kamil Ignacak.
cwdaemon is developed and tested mainly on GNU/Linux
system.
News
2024.08.03 - completely migrating to
GitHub before making a release 0.13.0
After today, neither this page nor a code in repository at
sf.net will be updated. All activities will take place
exclusively
at https://github.com/acerion/cwdaemon/.
GitHub has been the home of cwdaemon since some time, now I'm
completing the move to that platform.
2023.05.21 - release of cwdaemon 0.12.0
Changes since previous release:
-
Making handling of command line options more strict
cwdaemon is more likely to exit when it discovers unrecognized tokens in
command line.
This change is introduced to detect incorrect usage of "-o" command line
option. Each option for keying device should be passed through separate
"-o" option.
Incorrect: cwdaemon -d /dev/ttyUSB0 -o key=DTR ptt=none
Correct: cwdaemon -d /dev/ttyUSB0 -o key=DTR -o ptt=none
The behaviour of "-o" option itself is not changing. Only the overall
parsing of command line options is changing to catch this incorrect
situation.
-
Init system files have been updated with handling of keying device option
The "-o"/"--options" command line option has been introduced in cwdaemon
0.11.0. In this release the init files for cwdaemon (/etc/init.d/cwdaemon
and /etc/default/cwdaemon) are updated to support the new command line
option. The files are located in debian/ directory in cwdaemon repo.
-
Fixing memory problems occurring when handling tty device options
Small, one-time memory allocation was not followed by deallocation.
According to valgrind, a section of code may have relied on uninitialized
member of allocated struct.
-
"cwdaemon -V" now prints information about used libcw library
In addition to printing version of cwdaemon program, the command also
prints version of used libcw library (this is a run-time information, not a
compile-time information).
This change should help me with debugging users' problems:
I will be able to set up an environment similar to used by
users reporting problems.
-
Keying device used by cwdaemon can be now specified by a full path
Till now "-d"/"--cwdevice" command line option accepted only device name
(e.g. "ttyS0"). Starting with this release, the device can be also
specified by a full path to device in /dev/ dir (e.g. "/dev/ttyS0").
The change also impacts "<ESC>8" escaped request.
This change should help avoiding problems with specifying a keying device.
-
Adding error messages in code that tries to open a keying device (tty or lp
device)
This change should help with debugging of issues with keying devices in
users' env.
-
Format of log messages has been adjusted
-
Tags indicating message priority, printed at the beginning of message,
are now [ERROR], [WARN ], [INFO ], [DEBUG].
-
The messages first show priority tag, and then package name (e.g.
[ERROR] cwdaemon: some text).
-
Consistency of format of messages has been improved.
-
Adding Doxygen configuration file
-
Adding "make check" command
The command compiles and runs unit tests. The unit tests have been added in
this release to quickly test some functionalities of cwdaemon. The unit
tests don't require any additional infrastructure (e.g. a keying device)
and they don't depend on any additional libraries or programs. This means
that they can be executed anywhere, at any time.
At this moment the unit tests only cover two newly added utility functions.
-
Compiling and testing on following platforms:
- Debian GNU/Linux 11.7, x86_64, gcc 10.2.1, libcw 6.6.1 (unixcw 3.5.1-4)
- Alpine Linux 3.17, x86_64, gcc 12.2.1, libcw 7.0.0 (unixcw 3.6.0)
- FreeBSD 13.2-RELEASE, amd64, gcc 12.2.0, libcw 7.0.0 (unixcw 3.6.0)
2022.03.26 - release of cwdaemon 0.11.0
Changes since previous release:
-
Implementing an "-o" option for flexible assignment of keying and ptt lines to RTS/DTR lines.
GitHub pull request: https://github.com/acerion/cwdaemon/pull/3
-
Fixing GitHub issue #6: "cwdaemon stops working after esc 0 (reset) is issued".
GitHub issue: https://github.com/acerion/cwdaemon/issues/6
-
Fixing few minor issues found through static code analysis.
-
Testing cwdaemon against libcw 7.0.0 from unixcw
3.6.0.
-
Compiling and testing on following platforms:
- Debian GNU/Linux 11, x86_64, gcc 10.2.1, libcw 7.0.0 (unixcw 3.6.0)
- Alpine Linux 3.15, x86_64, gcc 10.3.1, libcw 7.0.0 (unixcw 3.6.0)
- Ubuntu 18.04.6 LTS, x86_64, gcc 7.5.0, libcw 7.0.0 (unixcw 3.6.0)
2015.10.07 - release of cwdaemon 0.10.2
Changes since previous release:
-
Copying the repository to github.com. github will be
now the new home of cwdaemon.
-
Testing cwdaemon against libcw 6.5.1 from unixcw
3.5.0.
-
Compiling and testing on following platforms:
- Debian GNU/Linux 8 jessie/sid, x86_64, gcc 4.9.2;
- Alpine Linux 3.1, x86_64, gcc 4.8.3, musl 1.1.5;
- FreeBSD 10.0, x86_64, clang 3.3;
-
Fixing compilation error found during tests on Alpine
Linux.
-
Improving test sets (test/ directory).
-
Improving examples of interfacing cwdaemon (examples/ directory).
2014.04.23 - release of cwdaemon 0.10.1
Changes since previous release:
- Fixing bug #1 reported by Pino Zollo ZP4KFX:
cwdaemon failed to properly respond to <ESC>f
Escape request. Attempting to change sound system used
by cwdaemon caused the program to completely go silent
and to not to send replies.
- Fixing bug #2 also reported by Pino Zollo ZP4KFX:
cwdaemon has been sending replies too early, sometimes
right after starting to play Morse characters
(i.e. not waiting for end of playing the
characters). This problem has been fixed by changes in
cwdaemon source code, as well as by changes in
unixcw/libcw source code (this is why you should use
libcw version 6.1.1).
- Fixing bug #3 also reported by Pino Zollo ZP4KFX:
description of escaped request for word mode in man
page has been incorrect (wrong code of request). This
has been fixed.
- Fixing bug #4, this one discovered by me: cwdaemon
failed to correctly close network socket at exit. This
has been fixed.
Many thanks to Pino Zollo ZP4KFX for reporting bugs in
cwdaemon 0.10.0 and taking time to test fixes.
2014.01.15 - release of cwdaemon 0.10.0
Changes since previous release:
- Empty name of keying device sent with "8" network
request shouldn't cause cwdaemon to crash
anymore. Handling of empty/invalid keying device name
has been improved.
- Until now if cwdaemon was called with invalid /
unsupported / non-available sound system, it could
start with misconfigured sound system. Now cwdaemon
exits when it cannot open a sound system during start.
- When cwdaemon receives "switch to sound system X"
network request, and it fails to correctly switch to
the sound system, it falls back to "Null" audio
system. The fall back eliminates possibility of
crashing on attempt to use uninitialized sound system.
- Handling of "ptt delay" parameter has changed. Until
now when value sent in network request was negative,
the delay has been set to MAX. Now the negative value
sent with network request is ignored. When the
negative value has been passed through command line
argument, cwdaemon exits.
- Debug strings can be now printed to stdout (default,
was already available), stderr, or disc file. Check -f
/ --debugfile command line option for more
information.
- Verbosity level of debug messages can be controlled
with command line options.
- cwdaemon now accepts --long-options on systems that
support this functionality.
- Help text printed when calling cwdaemon with "-h"
command line argument has been expanded.
- Man page for cwdaemon has been expanded.
Older news
More information
cwdaemon is a free
software, released under GNU General Public License v2.0.
The latest code is available at github.
Older information is available on SourceForge project page.
You can contact with current developer and maintainer of this
software using this e-mail address: acerion at wp dot pl.
Copyright (C) 2012 - 2024 Kamil Ignacak
|