Macros are key words in a text to send which are being replaced when send. An example is the ! which will be replaced by the station entered in the callsign field. The macros can be used on several places in the program.
| Note: Not every macro can be used on all the places mentioned above. |
Macros are executed as they are interpreted,
i.e. the program
replaces all the macros with their values and then sends the cw. In the
case of things like {log}, it logs the Q, then
sends the message. This is not a programming language, it's a
substitution system.
When placing several macros under a function-key during the
sending of
it they will be substituted with the contents of the macros.
Example: * will be replaced with your call, so when your call is PA1M a
* will be substituted with 4 characters.
Calling a few times another function key with several substitutions in
it could bring this up to several 100 characters per function key. To
prevent infinite loops the length of the string after substitutions may
not exceed 1024 characters. After this length the program will stop
substituting. 1024 characters is over 12 lines of text (from 80
characters).
| Note: Macros may be in Upper, Lower or Mixed case. The maximum macro length is 255 characters. |
General macros can be used on all the places mentioned above.
| Macro keyword | Substituted by |
|---|---|
| * | Call from the Station info dialog, same as {MYCALL}. |
| ! | Sends the callsign entered in the callsign field. |
| @ | To voice the current receive frequency. The frequency will be voiced to the nearest 100 Hz dropping .0 if receiving on an even KHz frequency. This capability can be used to avoid having to rerecord CQ messages on 40m split. Example message: wav\{operator}\CQ Listening.wav@wav\{operator}\AndThisFreq.wav |
| {BEEP} | Make a clicking sound from the PC speaker. |
| {CALL} |
Call in callsign textbox or, if none, the last call logged. Note:
This will send the call as it was when the message STARTED. |
| {CLUSTER} | Cluster callsign from Station info dialog. See examples. |
| {Comment} | Macro to add string following {Comment} to comment field of current or last QSO. |
| {END} | If
you want something to execute after the message is
sent, you must precede it with an {END} macro. The {END} macro signals to the program that the remaining {} commands are to be executed when the program returns from sending the CW, SSB or DIGI messages. Any text to send after the {END} macro is discarded. |
| # | Send next (or last) serial number. |
| {EXCH} | Sent Exchange, either for the last QSO or for the current one, depending on whether there's a callsign in the entry window or call-frame. |
| {FREQ} | Frequency from the contact in the Entry window |
| {GRID} | Gridsquare from Station info dialog. |
| {GRIDSQUARE} | Gridsquare from grid textbox (contact in Entry window). |
| {GRIDBEARING} | Bearing between own gridsquare and grid textbox (contact in Entry window). |
| {REVGRIDBEARING} | Reverse bearing between own gridsquare and grid textbox (contact in Entry window). |
| {KMGRIDDISTANCE} | Distance in kilometer between own gridsquare and grid textbox (contact in Entry window). |
| {LOG} | CW:Logs the current contact. Same as ENTER in the Entry
Window . Digital: Put the {LOG} macro after the {RX} macro... Note: does not work in phone (SSB, FM etc) |
| {LASTCALL} |
Call of last station logged. |
| {LASTEXCH} | Exchange of last station logged. For ROPOCO and LZOPEN only. It does NOT work for other contests ! |
| {MYCALL} | My Call from Station info dialog, same as * |
| {NAME} |
Sends the name as entered in the Entry window name field (Example: TARA) or when no Entry window name field, searches the name in the call history table. |
| {NAMEANDSPACE} | Sends the name as entered in the Entry window name field (Example: TARA) or when no Entry window name field, searches the name in the call history table and adds a space behind it. |
| {OTHERFREQ} | Is replaced by the frequency of the non-active radio. Used for passing stations to other bands. Substitutes "R" for decimal on CW. |
| {PGDN} | Change frequency up equal to amount set under 'PgUp/PgDn Incr (kHz)' 'in the Configurer under the 'Other tab'. For use after {END} macro like NA Sprint. |
| {PGUP} | Change frequency down equal to amount set under 'PgUp/PgDn Incr (kHz)' 'in the Configurer under the 'Other tab'. For use after {END} macro like NA Sprint. |
| {PREVNR} | Sends the QSO # of the last logged QSO. |
| {LRMHZ} | Frequency Left Radio/VFO-A in MHz. Example: 28 when on 28.1234 MHz. |
| {RRMHZ} | Frequency Right Radio/VFO-B in MHz. Example: 14 when on 14.1235 MHz. |
| {RUN} | Sends the last logged callsign and then goes into Running mode. |
| {S&P} | Sends the last logged callsign and then goes into S&P mode. |
| {STEREOOFF} | The stereo bit on the LPT port will be set to OFF. |
| {STEREOON} | The stereo bit on the LPT port will be set to ON. |
| {TIMESTAMP} | Date and Time from the contact in the Entry window. |
| {TX} | CW/SSB: when sent in a function key will key ptt. Use
Esc to turn off. This is a manual PTT from the keyboard. RTTY: Check out the Digital macros below. |
| {CLEARRIT} | Reset the RIT to zero. Note: Will only work for radios that support that function. Most ICOM radios do not. Your manual will tell you for sure. |
| {CTRL-A} ... {CTRL-Z} |
Sends Ctrl+A character to TNC. All characters from the alphabet can be used (A to Z) ++ See examples. |
| {ENTER} | Sends ENTER to TNC. |
| {ENTERLF} | Sends
Return/Line Feed to the TNC. Try this if ENTER doesn't seem to work. |
| {ESC} | Sends
Escape character to TNC. ++ See examples. |
| {DATE} | Short date in Windows format as set in Regional settings. |
| {DATE1} | Date in Nordlink-TF/WA8DED format (dd.mm.yy)- format: 26.02.99 |
| {SENTRST} | Sends the RST sent as entered in Entry window Snt field. |
| {SENTRSTCUT} | Sends the RST sent with the number 9 sent as the
character N. Will send 57N or 5NN etc. |
| {TIME} | Time in Windows format as set in Regional settings. |
| {TIME1} | Time in Nordlink-TF/WA8DED format (hh:mm:ss)- format: 20:36:55 |
| {TIME2} | Short GMT time (hhmm)- format: 2036 Information how this macro works in digital contests can be found at: Time2- How it works |
| {DAYTIME} | Date in TAPR DayTime format - format: 0107162036 |
| {DATEGMT} | Date and GMT time - format: 16-jul-01 18:36:55 |
| {TIMEGMT} | GMT time - format: 18:36:55 |
| {F1} | Sends text assigned to function key F1 |
| {F2} | Sends text assigned to function key F2 |
| {F3} | Sends text assigned to function key F3 |
| {F4} | Sends text assigned to function key F4 |
| {F5} | Sends text assigned to function key F5 |
| {F6} | Sends text assigned to function key F6 |
| {F7} | Sends text assigned to function key F7 |
| {F8} | Sends text assigned to function key F8 |
| {F9} | Sends text assigned to function key F9 |
| {F10} | Sends text assigned to function key F10 |
| {F11} | Sends text assigned to function key F11 |
| {F12} | Sends text assigned to function key F12 |
| {CAT1HEX radio_hex_command(s)} {CAT2HEX radio_hex_command(s)} |
These
commands
can be used to send commands to radio # 1 or radio # 2 requiring hex
data
input. The macro name must be followed by the radio
hex data and closing terminator “}”.
An example is shown below. There must be two hex characters per byte
including zero ( zero entered as 00). Spaces are allowed anywhere in
the hex
command string to make entry and verification easier. You can not place
more
than one CAT1HEX or
CAT2HEX command in a macro but
the macro can contain one of each command. More than one
radio command
can be
sent to the radio by placing a character between the
radio commands. Spaces
are allowed around the “/” character. Multiple radio commands are
broken into
separate radio commands and sent to the radio using internal command
pacing.
Depending on the computer speed and the number of commands in the
string, the
use of these macros may delay the operation of the program when sending
of CW
or other program operation. There are no precautions which prevent the
use of these
macros while the radio is transmitting. If the user wants to switch an
antenna
port safely, use the {ANTRX#TOGGLE} macros which contain a TX inhibit.
An
example of an Icom command is: {CAT1HEX FEFE66E01C0102FD
/
FEFE66E01C0102FD } |
|
{CAT1ASC radio_ASCII_command(s)} {CAT2ASC radio_ASCII_command(s)} |
These commands can be used to send commands to
radio # 1 or radio # 2 requiring ASCII data
input. The macro name must be followed by the radio
ASCII data and closing terminator “}”. An example is shown
below.
All leading spaces before the radio command portion begins are removed
and not sent to the radio. All other spaces in the command are sent to
the radio. You can not place more than one CAT1ASC
or
CAT2ASC command in a macro but the macro can contain one of
each
command. More than one radio command can be sent to the radio by either
placing a / character between the radio commands or
by
concatenating them together. Spaces before or after the “/” character
are sent to the radio. Multiple radio commands using the “/” separator
are broken into individual radio commands and sent to the radio using
internal command pacing. Non-ASCII characters may be included in the
radio command string by delimiting the two character hex value with
< >. The leading “<” and trailing “>”
characters are not
sent to the radio. Spaces are not allowed inside the < >
characters. Depending on the computer speed and the number of commands
in the string, the use of these macros may delay the operation of the
program when sending of CW or other program operation. There are no
precautions which prevent the use of these macros while the radio is
transmitting. If the user wants to switch an antenna port safely, use
the {ANTRX#TOGGLE} macros which contain a TX inhibit. Examples of
several forms of this command are: {CAT1ASC PB1;/PB2;} {CAT1ASC PB1;PB2;} {CAT1ASC P<42>1;PB2;} FT2000 - Play message #1 would be: {CAT1ASC PB01;} You may place a space between the macro name and the radio CAT command to improve readability. All leading spaces after the CAT1ASC macro command name are removed. If the ASCII radio command contains characters that are macros (*, !, #), these characters must be sent using the hex notation explained above. As an example, this macro contains a macro character {CAT1ASC *UM0} and will not work correctly. The correct form using hex notation would be {CAT1ASC <2A>UM0}. |
|
{ANTRX1TOGGLE} {ANTRX2TOGGLE} {ANTRX3TOGGLE} {ANTRX4TOGGLE} |
These
macros can be
used to switch between antenna ports and toggle the receive antenna
input on some radios when the program is not transmitting. Some radio
models have multiple inputs but lack the CI-V command to control the
port so the functionality of these macros is radio dependent. When the
{ANTRX#TOGGLE} macro is executed, the numbered antenna port is
selected. If the same antenna port macro executed again and the radio
is equipped, the receive antenna will be toggled on and off with each
macro execution. If the antenna port is switched to another port, the
current setting of the RX antenna is stored and used when this antenna
is selected again. If only one radio antenna port is used it is only
necessary to assign that {ANTRX#TOGGLE} macro to a F-key to toggle the
RX antenna on/off quickly. Supported radios: Yaesu FT950, FTDX9000, FT2000 Icom: IC746, IC746Pro, IC756, IC756Pro, IC756Pro2, IC756Pro3, IC775, IC7700, IC7800 and Elecraft K3, TenTec Orion, Kenwood TS2000 |
| {SOCALLSTACK} | This macro enables single operator callsign stacking.
When in RUN mode, this macro gives
the operator the ability to stack and retrieve a single callsign when
multiple stations are calling. The stacked callsign does not need to be
a full call and it can contain a “?”. Single operator call stacking can
be used in SO1V/2V or SO2R mode, in both entry windows, and
with/without ESM. When in RUN mode, {SOCALLSTACK} will move a call or
partial call and place it in the callsign frame and bandmap. If a
stacked call exists on the call frame, the callsigns will be exchanged.
If the callsign contains a question mark “?”, the cursor will highlight
the question mark when the text is popped off the stack. If the
callsign does not contain a question mark, the cursor is placed at the
beginning of the callsign upon return to the entry window. Using the
existing command ALT+D, it is possible to delete a stacked call from
the bandmap and call frame without popping it off the stack with when
the callsign entry window is blank. {SOCALLSTACK} will also pop the
call off the stack if ESM replaced the stacked call with the string
CQ-Frequency. When this occurs, the stacked call will be visible in the
bandmap. {SOCALLSTACK} is not intended to be used with the MM call stacking function. See also the macro {STACKANOTHER} Callsigns stacked by {SOCALLSTACK} can be popped off the stack by pressing the space bar when the CQ-Literal is on the call frame. More info and examples in the chapter: Advanced functions |
| {STACKANOTHER} | Macro
to stack additional callsigns in all modes. Also check the
keycombination CTRL+ALT+G More info and examples in the chapter: Advanced functions |
| {LOGTHENPOP} | This is a macro intended to be used with the single
operator call stacking feature. It logs the current station sending
corrections if enabled, pops the next call off the stack, and updates
ESM if enabled, to the correct step. The macro can be used with or
without ESM. The macro works only in RUN mode. The
suggested macro key is: {LOGTHENPOP} TU NW {F5}{F2} In CW, if {LOGTHENPOP} can not pop a call off the stack and the logged callsign was changed, send corrected call if enabled and the TU message. More info and examples in the chapter: Advanced functions Example fucntionkey setup can be found in the chapter Functionkeys (CW: example 3) |
| {TURNROTOR} | Turn the rotor to the direction based on the calculated direction. |
| {STOPROTOR} | Stop turning the rotor. Note that per the manual some functions are not supported for all rotor brands. |
++ = These macros can
not be used in MMTTY and PSK.
The TNC Interface does accept all of the macros
above.
Eight of the new commands
provide flexibility to send ASCII or HEX commands to either radio in
SO2R mode (or VFO in SO2V) mode based on Active or Inactive radio/VFO.
Radio
specific commands were added for those SO2R users that do not have
identical radios. The new macros follow the same syntax as the existing
CAT1HEX and CAT1ASC macros.
The new macros
CATA1HEX, CATA2HEX, CATA1ASC, CATA2ASC will send the command to the
radio when it is the Active radio.
The new macros
CATI1HEX, CATI2HEX, CATI1ASC, CATI2ASC will send the command to the
radio when it is the Inactive radio.
The F-key
macro text passes through a routine that removes CAT macros for
radio(s) that do not qualify based on Active/Inactive radio(s). This
allows one F-key string to be used for multiple purposes. An example of
a Pro3 macro string that switches DualWatch and the Rx antenna based on
the radio activity is shown below.
{catA1hex
fefe6ee0 12 00 00fd}{catI1hex fefe6ee0 12 00 01fd}{catA2hex fefe6ee0 07
c0 fd}{catI2hex fefe6ee0 07 c1 fd}
The last macro is
the CATDELAY macro. Radio communications are suspended while sending CW
and users were unable to send CAT commands to the radio before the CW
started. The CATDELAY macro simply delays the start of CW to allow the
radio commands to be sent the radio. The form of the CATDELAY macro is
{CATDELAY N} where "N" is a user programmable delay in 50ms increments.
The value of N is internally limited to 20 (a delay of 1 second).
CW macros are only substituted when used in substitutions for CW
buttons.
NB Note taht
the !
needs to have a different character in the macro. Use a caret ^ in the
macro to send a !
|
|
|
| Tip:
Some calls have letter
combinations where it's hard for to copy correctly. E.g. 6Y2A is often
copied as BY2A. To help make your call easier to copy, Go to Config
> Change Packet/CW/SSB/Digital Message Buttons> Change CW
Buttons, and try changing the default F1 and/or F4 message where * is
used for your call. In this example, 6Y2A changes F4 from *
to>6<~Y2A. Result: the 6 is sent 2 WPM slower compared to the rest of the call, and an additional half space is added between the 6 and Y. Try other combinations of <, >, or ~ to make your call easier to copy. |
SSB macros are only substituted when used in substitutions for
SSB buttons.
SSB macros can not be concatenated if the result will be two wav files.
A combination with the # macro at the first place will work.
| Macro keyword | Substituted by |
|---|---|
| {OPERATOR} | Specify
wav files like: wav\{OPERATOR}\cq.wav Default to station callsign if not specified. See examples. |
SO2R macros are only substituted when SO2R is selected.
| Macro keyword | Substituted by |
|---|---|
| {JUMPRX} |
Change the RX focus to the other input window. If only one input window is shown the second window will be opened. |
| {WIPE} | Wipe the focus window. |
| {ADVSO2RON} | Turn 'Advanced SO2R' on. See chapter 'SO2R' |
| {ADVSO2ROFF} | Turn 'Advanced SO2R' off. See chapter 'SO2R' |
| {CTRLFx} | This macro allows the user to send on the other radio
(and is CW only). Thus a CW Button might look like: "tu EXCH{CTRLF9}" Where F9 on the other radio is set to send a CQ. It is important to note that via hotkey Ctrl+Shift+L will turn this feature on or off. When off the CTRLFn macro is ignored. |
Multi User macros are only substituted when in Multi User mode.
| Macro keyword | Substituted by |
|---|---|
| {MESSAGE} |
Send a message (via function key) to other connected stations over the network. Please check the examples below. |
| {PASS
0} ... {PASS 15} |
Pass frequency from station 0 (Master station) through station 15. |
| {PASS
1800} ... {PASS 28000} |
Insert pass frequency for
first connected station found
on that band. (Valid are PASS 1800; 3500; 7000; 14000;21000 and 28000) |
| {PASSMSG 1} ... {PASSMSG 15} |
Pass last QSO information from station 0 (Master station) through station 15. |
The following substitutions will be made when sending function
key.
In the Digital interface the macros below can be used but also all
other macros shown under general macros.
| Macros | Substituted by |
|---|---|
| {TX} | Starts transmission in the digital interfaces (needed
to transmit!) Needed at thebeginning of every Digital macro! |
| {RX} | Switches to receive in the digital interfaces (needed
to get back to receive). Needed at the end of every Digital macro! |
| {CLRRX} | Clears the RX window. This macro can be
used either alone or after an {END} macro. |
| {SCQ} | Macro to be placed at end of TU macro to resume CQ |
| {GRAB} | Grab first callsign from grab callsign window |
| {DELALL} | Delete all entries from grab callsign window |
| {DELTOP} | Delete Top Entry from grab callsign window |
| {DELSEL} | Delete highlighted entry from grab callsign window |
| _ | (Underscore) Sends an idle tone. (Only when using MMTTY) |
| {FILE:xxxx} | Macro to send textfile located in N1MM Logger program
directory. xxxxx is replaced by the name of the text file and
the text file needs to be in the logger directory. The macro works anyplace in a macro string. If the text file only contains one line it does not add CR to end of line. When the text file is multi lined the CR from the last line will be removed so the following text will be on the same line . Multiple {FILE:xxxx} macros are allowed in one macro string. |
| {LDIGFQ} | Left Digital Interface Frequency |
| {RDIGFQ} | Right Digital Interface Frequency |
| {PREVTIME} | Will send previously sent time (for ANARTS and BARTG alike contests) |
| {ALIGN} | Move signal into bandpass range. Does the same as Align Buttons on Digital Interfaces and the PSK Engine. |
| {PROFILE0} | Resets to HAM Default |
|
{PROFILE1} |
By inserting
{PROFILE1} through {PROFILE8} in the
function keys at the start of the CQ or S&P macro's will change MMTTY's profile. This way it is possible to have one profile for CQing and another one for S&P or however you want to set them up. (Only when using MMTTY) |
| {HXXXX} | For use with the HAL DXP38. The DXP-38 commands are in the form of Hex that look like $80 $EA. This macro substitution takes the text string in the form of {HXXXX} or {H80EA} and converts this to the appropriate command that should be sent to the TU. See the RTTY chapter for more HAL DXP38 info. |
| {DI1} ... {DI24} |
Sends texts assigned to the digital macro keys DI-1 to DI-24 on the Digital Interface. |
| {LOGTHENGRAB} | This will log the current contact and Grab the top callsign that is in the grab window of the DI. Will only work in Run Mode. |
| {DIGQTCR} {DIGQTCS} |
WAE contest: Macro to open Digital
QTC Recieve window. WAE contest: Macro to open Digital QTC Send window. |
Some Remarks:
| It is best to add the command that your TNC uses to clear the transmit buffer to the end of your Abort Macro. If not, the transmit buffer still holds the remaining characters that were left in the sent string and will get sent the next time the TNC sends. |
Packet/Telnet macros are only substituted when used in the packet/telnet buttons.
| Macro keyword | Substituted by |
|---|---|
| {WAIT} | Wait 5 seconds (fixed value) |
| Button text | Macro |
|---|---|
| Abort | {CTRL-C}R{ENTER}TC{ENTER} |
| TX | X{ENTER} |
| RX | {CTRL-D} |
| Band Up | RB U{ENTER} |
| RxReverse | RXREV T{ENTER} |
| Mode | Button text | Macro |
|---|---|---|
| Running | F1 CQ | X{ENTER}CQ CQ CQ TEST DE {MYCALL} {MYCALL} K CQ{CTRL-D} |
| Running | F2 Exch. | X{ENTER} ! UR 599 {EXCH} 599 {EXCH} BK{CTRL-D} |
| Running | F3 Tnx/Qrz | X{ENTER} ! TU GL DE {MYCALL} QRZ{CTRL-D} |
| S&P | F1 {MYCALL} | X{ENTER}! DE {MYCALL} {MYCALL}{CTRL-D} |
| S&P | F2 Exch. | X{ENTER}! UR 599 {EXCH} 599 {EXCH} GL DE {MYCALL}{CTRL-D} |
| Button text | Macro |
|---|---|
| Abort | {CTRL-C}R RTTY {ENTER} |
| TX | {CTRL-C}T |
| RX | {CTRL-C}E |
| Button text | Macro |
|---|---|
| Abort | {ESC}CLR{ENTER}{CTRL-D}{ENTER} |
| TX/RX | {CTRL-Y} |
| RX-Reverse | {ESC}TR 1{ENTER} |
| RX-Norm | {ESC}TR 0{ENTER} |
| 45 Baud | {ESC}BAU 45{ENTER} |
| 75 Baud | {ESC}BAU 75{ENTER} |
| Command mode | {ESC}Q{ENTER} |
| Button text | Macro |
|---|---|
| RTTY | {ESC}Q{ENTER}BAU{ENTER} |
| PSK31 | {ESC}Q{ENTER}PSKT{ENTER} |
| CW | {ESC}Q{ENTER}CWT{ENTER} |
| AMTOR | {ESC}Q{ENTER}AMTOR{ENTER} |
| PACTOR | {ESC}Q{ENTER}PT{ENTER} |
| PACKET | {ESC}Q{ENTER}PACKET{ENTER} |
| Mode | Button text | Macro |
|---|---|---|
| Running | F1 CQ | {CTRL-Y}CQ TEST DE * * * k{ENTER}{CTRL-Y} |
| Running | F2 EXCH | {CTRL-Y}! HI 599 {EXCH} {EXCH} K{CTRL-Y} |
| Running | F3 CFM | {CTRL-Y}! QSL TU DE * QRZ? K{CTRL-Y} |
| S&P | F1 CALL | {CTRL-Y}! DE * * K{CTRL-Y} |
| S&P | F2 EXCH | {CTRL-Y}DE * TU 599 {EXCH} {EXCH} GL DE *{CTRL-Y} |
| Mode | Button text | Macro |
|---|---|---|
| Running | F1 CQ | {TX} CQ CQ CQ TEST DE {MYCALL} {MYCALL} K CQ {RX} |
| Running | F2 Exch. | {TX} ! UR 599 {EXCH} 599 {EXCH} BK{RX} |
| Running | F3 Tnx/Qrz | {TX} ! TU GL DE {MYCALL} QRZ {RX} |
| S&P | F1 {MYCALL} | {TX} ! DE {MYCALL} {MYCALL}{RX} |
| S&P | F2 Exch. | {TX} ! UR 599 {EXCH} 599 {EXCH} GL DE {MYCALL}{RX} |
| Send CQ which starts on a new line | {TX}{ENTERLF} CQ DE {MYCALL}{RX} | |
The {MESSAGE} macro sends a message (via a functionkey) to other connected stations over the network. The info will be shown in big red letters in the Info window from the receiving station(s). Place a number directly after the {MESSAGE} macro if you want to send the message to one specific station. If you don't want to send to a specific station, but want to start your message with a number put "- " in front of the message. Because "*" is used by macro substitution to indicate a callsign, you cannot put a * a the beginning of a message to indicate that the message should be sent to all stations. Since sending to all stations is the default behavior, this is not a problem. Just don't start the message with a number if you want to send the message to all stations.
| Button text | Macro |
|---|---|
| F8 Pass station |
{MESSAGE}2 {TIMEGMT} {PASS 1} {CALL} {GRIDSQUARE} {GRIDBEARING}deg. {KMGRIDDISTANCE} km. Message sent
to station 2 with info about the station in
the callsign field. |
| F8 Pass station |
{MESSAGE} {TIMEGMT} {PASS 1} {CALL} {GRIDSQUARE} {GRIDBEARING}deg. {KMGRIDDISTANCE} km. Message sent to all connected stations with info about the station in the callsign field. |
| F8 OK |
{MESSAGE}2 OK Sent OK to station 2 |
The {END} macro signals to the program that the remaining {} commands are to be executed when the program returns from sending the CW, SSB or DIGI messages (this may not yet work for digi). Here is an example:
F1: {STEREOOFF}CQ TEST *{END}{STEREOON}
Whenever the F1 key is pressed, the stereo bit on the LPT port
will be set to OFF. CQ will be sent via the current mode, and
after the message is complete, the stereo bit on the LPT port will be
turned back on. Thus, one can listen to just the second radio
while the CQ is being sent, then listen to both radios after it is
finished.
Note: Only {} macros with side effects are used when they are placed
after the {END} macro. I.e. if you put {MYCALL} or "5NN" after
the {END} macro, they will be ignored. Why? well
the message is over, there is nothing more to send.
So the rule is: All macros with side effects are executed before the message is sent, except for those that appear after the {END} macro.
So where could this lead? Well, what if I created a radio control macro? That is, a macro where you could define commands for your particular radio. The syntax would be something like {R1 cmd}. "cmd" would be replaced with user settable, radio specific commands, like are used with the bandwidth functions accessible from the bandmap. Using the Orion as an example, a macro could be set up like this:
F1: {R1 *UM0}CQ TEST *{END}{R1 *UM85}
This would set radio 1's (an Orion) volume to zero at the beginning of a cq, then back to 85 at the end of the cq. This is equivalent to turning off monitor just for CQ's. The possibilities are pretty interesting. (There would also be an {R2} macro for SO2R.)
This could lead to controlling RX mute/unmute, monitor on/off, frequency QSY ala NA Sprint rule, possibly letting keyboard entry and or transmit focus follow the moving VFO etc.