I am planning a CW beacon on 10 meters using a PC to key the radio. I will be running Arch Linux, using CWdaemon and perl.
I have built a keyer using the following design.
Page with a few other keyers and some info on PSK31.
Below is the perl script I used to start cwdaemon and key the radio. I’ve tested this on my 2 meter all mode with no issues. Can’t wait to move the 10 meter mobile in the shack and run this full time.
–SCRIPT START–
#!/usr/local/bin/perl
use IO::Socket::INET;
my $pid;
die “cant fork $!\n” unless defined($pid=fork());
if($pid) {
print “Starting the process!\n”;
my $in=
while ($in ne ‘stop’) {
$in=
chomp $in;
print “$in is your input\n”;
if($in eq ‘stop’) {
print “exiting………\n”;
}
}
}
else {
LOOP1:
print “Time to make the donuts…\n”;
#check for cwdaemon
open PROS, “ps -ef|grep cwdaemon |”;
while ($line =
unless ($line =~ m/grep/){
print “it is running\n”;
my $cw = IO::Socket::INET->new(PeerAddr => “localhost”,
PeerPort => “6789”, Proto => “udp”, Type => SOCK_DGRAM,)
or die “Cannot open socket for CWdaemon.\n”;
$text = “—INSERT MESASGE HERE—“;
print $cw chr(27).”2 20”;
print $cw $text;
close $cw;
sleep 15;
goto LOOP1;
exit;
}
}
print “cwdaemon isn’t running\n”;
exec ‘/usr/sbin/cwdaemon -d ttyS0 &’;
goto LOOP1;
}
print “Time for me to FLY\n”;
kill (“TERM”,$pid);
–SCRIPT END–