IPC::MorseSignals - Communicate between processes with Morse signals.
VERSION
- Version 0.04
+ Version 0.05
SYNOPSIS
use IPC::MorseSignals qw/msend mrecv/;
is set, the string will first be encoded in UTF-8. In this case, you
must turn it on for "mrecv" as well. Default speed is 512, don't set it
too low or the target will miss bits and the whole message will be
- crippled. The "utf8" flag is turned off by default;
+ crippled. The "utf8" flag is turned off by default.
"mrecv"
mrecv $callback [, utf => $utf8 ]
Takes as its first argument the callback triggered when a complete
message is received, and returns two code references that should replace
- SIGUSR1 and SIGUSR2 signal handlers. Basically, you want to use it like
+ "USR1" and "USR2" signal handlers. Basically, you want to use it like
this :
local @SIG{qw/USR1 USR2/} = mrecv sub { ... };
Each byte of the data string is converted into its bits sequence, with
bits of highest weight coming first. All those bits sequences are put
into the same order as the characters occur in the string. The emitter
- computes then the longuest sequence of successives 0 (say, "m") and 1
- ("n"). A signature is then chosen :
+ computes then the longuest sequence of successives 0 (say, m) and 1 (n).
+ A signature is then chosen :
- If C(m > n), we take "n+1" times 1 follewed by 1 0 ;
- Otherwise, we take "m+1" times 0 follewed by 1 1.
+ - If m > n, we take n+1 times 1 follewed by one 0 ;
+ - Otherwise, we take m+1 times 0 follewed by one 1.
The signal is then formed by concatenating the signature, the data bits
and the reversed signature (i.e. the bits of the signature in the
This type of IPC is highly unreliable. Send little data at slow speed if
you want it to reach its goal.
- SIGUSR{1,2} seem to interrupt sleep, so it's not a good idea to transfer
- data to a sleeping process.
+ "SIGUSR{1,2}" seem to interrupt sleep, so it's not a good idea to
+ transfer data to a sleeping process.
DEPENDENCIES
- POSIX (standard since perl 5) and Time::HiRes (standard since perl
- 5.7.3) are required.
+ Carp (standard since perl 5), POSIX (idem), Time::HiRes (since perl
+ 5.7.3) and utf8 (since perl 5.6) are required.
SEE ALSO
perlipc for information about signals in perl.