Macros are short text statements that
contain imbedded references to text data used by the program
fldigi. Macro definition files(s) are located in the
$HOME/.fldigi directory and all have the extention ".mdf". The
default set of macros are contained in the file
macros.mdf which
is in the $HOME/.fldigi directory. Fldigi will create this
file with a set of default macros on its first execution.
Fldigi supports up to 48 macro definitions in sets of 12. Macro definitions are
not recursive, that is; a macro cannot reference another macro or
itself.
The imbedded references are similar to those used by DigiPan and other
fine modem programs. The imbedded reference is an uppercase plain
text descriptor contained with the <> brackets.
Reference definitions:
| <MYCALL> my call |
<CALL> remote call |
<LDT> local date time Zone
format : %x %H:%M%Z
- %x is preferred short form date ie: MM/DD/YY or DD/MM/YYYY etc for your locale
- %H is hour with leading 0
- %M is minute with leading 0
- %Z is abbreviated time zone ie: EDT or GMT
|
<ZDT> GMT date time Zone
format : %x %H:%M %Z
- %x is preferred short form date ie: MM/DD/YY or DD/MM/YYYY etc for your locale
- %H is hour with leading 0
- %M is minute with leading 0
- %Z is abbreviated time zone ie: EDT or GMT
|
| <FREQ> my frequency |
|
| <ID> send waterfall video mode identifier |
|
| <TEXT> send user specified video text |
|
| <CWID> send AFCW "DE <MYCALL>" at end of transmission |
| <MYLOC> my locator |
<LOC> remote locator |
| <MODE> my mode |
|
| <MYNAME> my name |
<NAME> remote name |
| <MYQTH> my qth |
<QTH> remote qth |
| <RX> return to receive |
<TX> start transmit |
| <MYRST> my RST |
<RST> remote RST |
| <CNTR> insert current contest serial number into the text stream |
| <INCR> increment contest serial number |
| <DECR> decrement contest serial number |
|
| <TIMER>NNN auto repeat this macro after NNN seconds |
| <MODEM>name cause program to change
operating mode to named mode. Use the shorthand names that
are in the pick list. |
| <LOG> submit QSO data to logbook program &
clear the QSO data fields. This macro reference is not
constrained to a particular position in the macro. The macro
reference action takes place when macro is expanded, so effect is seen
immediately after pressing the macro function key which contains this
macro reference. |
Local references are specified during the program configuration and can be changed during program operation.
Remote references are all part of the qso log field definitions and are routinely changed from contact to contact.
Global references are for items like Greenwich Mean Time.
The macros.mdf file can be edited with any ascii text editor such as
kedit, gedit, geany, nano etc. But it is much easier to use the
built-in macro editor provided in the program.
Right click on any macro key (or the alternate set) and a macro editing
dialog opens with the current copy of that macro and its label.
This looks very similar to the DigiPan macro editor at the urging
of Skip Teller, KH6TY.
The Text box is a mini-editor with a very limited set of control
functions. You can mark, bound and select text for deletion
(ctrl-X), copy (ctrl-C), and paste (ctrl-V). Marked text can also
be deleted with the delete or the backspace keys. The macro
reference can be transfered to the current editing cursor location.
Highlight the desired macro reference and then press the double
<< arrow key for each occurance of the reference to be put into
the macro text. You can change the label name but any more than 8
characters may exceed the width of the button for the default sized
main dialog.
The <TIMER> macro reference should be followed by an integer
value for the number of seconds to wait before repeating that macro.
For example:
<TX>CQ CQ de <MYCALL> <MYCALL> k<TIMER>20 <RX>
- will enable the PTT and desired CQ CQ de W1HKJ W1HKJ k
- disable PTT
- and count down 20 seconds before repeating the macro
- after sending the text the count down timer button (upper right
hand corner of main dialog) will display the current timer value in
seconds. Press this button to disable the timer.
- the
timer will also be disabled if the Escape key is pressed, the T/R is
pressed, and macro key is pressed, or if a callsign is copied from the
Rx text area to the callsign logbook entry.
The label associated with each macro key can be individually annotated
with a symbol. Here are the symbols that are recognized by the button
label drawing routine:
The @ sign may also be followed by the following optional
"formatting" characters, in this order:
- '#' forces square scaling, rather than distortion to
the widget's shape.
- +[1-9] or -[1-9] tweaks the scaling a little bigger
or smaller.
- '$' flips the symbol horizontaly, '%' flips it verticaly.
- [0-9] - rotates by a multiple of 45 degrees. '5' and
'6' do no rotation while the others point in the
direction of that key on a numeric keypad. '0', followed by four
more digits rotates the symbol by that amount in degrees.
Thus, to show a very large arrow pointing downward you would use the
label string "@+92->".
Here are my macro buttons suitably annotated:
- The label for CQ is "CQ @>|", denoting that both
<TX> and <RX> are present in the macro text.
- The label for QSO is "QSO @>>", denoting that only
<TX> is present in the macro text.
- The label for KN is "KN @||", denoting that only
<RX> is present in the macro text.
You could use any label that is symbolic to the function required. Refer to the
FLTK web site for
a full list of label types.
If you modify the macros and do not save them ("Files/Save Macros" on
the main window) fldigi will prompt you to save the macros when you
exit the program.
The
<EXEC>...</EXEC> macro tag provides a way to create
external shell scripts and programs that can interact with fldigi.
See
Exec Macro to learn more about the <EXEC> macro tag.