Loading...
 
Print

2.4.2 Macros

in-edit

One of the great strengths of N1MM Logger is its ability to send stored messages during contest QSOs, and to embed macros in those messages. Macros are so called because they either expand to a given text string, for CW and digital modes, or execute some program function. An example of the first is the {EXCH} macro, which expands to the exchange which you entered in the Contest Setup Dialog's Sent Exchange field - for example, if you enter John CT, that is what will be sent whenever the {EXCH} macro is encountered.
The second type of macro is much more complex, and more powerful. These macros can switch the program from RUN mode to S&P mode, an essential attribute during NA Sprint, set or clear your transceiver's RIT function, or a myriad of other possibilities. In the sections that follow, you will find a comprehensive list of all the macros available in N1MM Logger, as well as useful examples of how stored messages can be structured for efficient operating.

1. General Macros

in-edit

General macros can be used in all the places mentioned above.
Note that the table below is sortable alphabetically by the name of the macro, by clicking on the up/down arrow icon just to the left of the "Result" heading.

Close
tipWhy isn't there a macro to repeat the other station's exchange back to him?
This is not supported in N1MM Logger because the practice is considered inefficient, ambiguous and error-prone. The only exchange-like thing you should be sending to the other station is your own exchange. In perfect copy conditions, repeating his exchange just wastes time. On the other hand, if copy is poor sending something other than your own sent exchange but that looks like an exchange just invites confusion ("Let's see - I just sent him 2A OK and now I see a 2A OH back from him in the middle of some garble; is he telling me he copied my exchange incorrectly as 2A OH, or did he copy it correctly but it's the message he sent back to me that got garbled, or is that his own exchange he is sending to me? Does he want me to repeat my exchange or not? Do I need to ask him for a repeat of his exchange?"). If you believe you have copied his exchange correctly, send an unmistakable QSL message so he can get on with it and complete the contact; if you are not sure whether you have copied it correctly, send an unmistakable AGN? message to ask for a repeat. Don't leave him in doubt.

1.1. {END} Macro


The {END} macro signals the program that the remaining {} macro commands are to be executed after the program returns from sending the CW, SSB or DIGI messages. 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.

Close
tipMore to send after the {END} Macro?
Only Macros that do not involve sending messages are executed when they are placed after the {END} macro. For example, 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. Conversely, all macros that only trigger program functions (don't send messages) are executed before any messages are sent, unless they appear after an {END} macro.

2. CATHEX and CATASC Radio Hex Macro Commands

old-edit

Macro keyword Substituted by
{CAT1HEX radio_hex_command(s)}

{CAT2HEX radio_hex_command(s)}
The CAT1HEX and CAT2HEX 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. The exception to this rule is when the {END} macro is used. 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)}
The CAT1ASC and CAT2ASC 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. The exception to this rule is when the {END} macro is used. 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}
If the radio command needed to be terminated with a CR (Orion), the command would be {CAT1ASC <2A>UM0<0D>}

3. CATAHEX, CATIHEX, CATAASC, and CATIASC Macro Commands

old-edit

Macro keyword Substituted by
Active radio
{CATA1HEX radio_hex_command(s)}

{CATA2HEX radio_hex_command(s)}

{CATA1ASC radio_ASCII_command(s)}

{CATA2ASC radio_ASCII_command(s)}


Inactive radio
{CATI1HEX radio_hex_command(s)}

{CATI2HEX radio_hex_command(s)}

{CATI1ASC radio_ASCII_command(s)}

{CATI2ASC radio_ASCII_command(s)}
The CATA1HEX, CATA2HEX, CATA1ASC, CATA2ASC, CATI1HEX, CATI2HEX, CATI1ASC, CATI2ASC macros 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 CAT1HEX and CAT1ASC macros.

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}
{CATDELAY} This macro suspends the entire program operation to allow CAT commands to be received and executed by the radio possibly before a transmission begins. The need for this macro is dependent on the computer speed, radio interface rate, and radio type. 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 which would be a delay of 1 second

4. Antenna and Rotor Control Macro Commands

old-edit

Macro keyword Substituted by
{ANTRX1TOGGLE}

{ANTRX2TOGGLE}

{ANTRX3TOGGLE}

{ANTRX4TOGGLE}
The ANTRX1TOGGLE, ANTRX2TOGGLE, ANTRX3TOGGLE 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, Kenwood TS-590S
{TURNROTOR} TURNROTOR turns the rotor to the direction based on the calculated direction
{LONGPATH} LONGPATH turns the rotor to the calculated longpath direction
{STOPROTOR} STOPROTOR stops turning the rotor. Note that per the manual some functions are not supported for all rotor brands

5. CW Macros and Prosigns

old-edit

CW macros are only substituted when used in substitutions for CW buttons.

CW Program Control and Prosign Macros
Macro
keyword
Substituted by
<
Increment CW speed with 2 wpm. See < examples
>
Decrement CW speed with 2 wpm. See > examples
~
Send half space character. See ~ examples
[
SK prosign      . . . _ . _
]
AS prosign      . _ . . .
+
AR prosign      . _ . _ .
=
BT prosign      _ . . . _

* the ! Macro: To send the CW code for an exclamation point, substitute a caret ^ in the macro

Special Character Macros
Macro
keyword
Substituted by Macro
keyword
Substituted by
^
. . _ _ .
É
. . _ . .
"
. _ . . _ .
Ü
. . _ _
'
. _ _ _ _ .
Ä
. _ . _
?
. . _ _ . .
Á
. _ _ . _
/
_ . . _ .
Ñ
_ _ . _ _
:
_ _ _ . . .
Ö
_ _ _ .
;
_ . _ . _ .
_
. _ _ . _
(
_ . _ _ .
$
. . . _ . . _
)
_ . _ _ . _
@
. _ _ . _ .
,
_ _ . . _ _
.
. _ . _ . _
-
_ . . . . _
!

Close
noteImproving CW Readability
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.

5.1. CW Macro Examples

old-edit

  • Sent the call entered in the callsign field
    • Macro: !
      • Send his call. The callsign entered in the callsign entry field will be sent by the program via the serial or parallel port

  • Sent CQ with your call sent as a macro substitution
    • Macro: cq~test~de~*
      • The time between the words is a half space (~).
      • The * will be replaced with the callsign from the Station dialog {MYCALL}

  • Send part of exchange faster (report sent 6 wpm faster)
    • Macro: <<<5nn>>>{EXCH}
      • The report 5nn is sent 6 wpm faster than the exchange (<<< >>>).

6. SSB Macros

in-edit

SSB macros are only substituted when used in SSB function key messsage buttons. SSB macros can be concatenated using a comma.

SSB Macros
Macro keyword
Substituted by
{OPERATOR} Specify wav files like: {OPERATOR}\cq.wav (The {OPERATOR} macro defaults to the station callsign if an operator is not specified using Ctrl+O or OPON.
See examples

6.1. SSB Macro Examples

in-edit

  • Send the call entered in the callsign field
    • Macro: !
      • Send his call. The callsign entered in the callsign entry field will be sent by the soundcard using individual recordings of the letters and numbers in the callsign. The location of the letter and number files used to make up the callsign is set up in the Configurer under the Other tab. This will normally be the Wav\LetterFiles folder within the user files area, unless an {OPERATOR} macro is used in the path in the Configurer - see below. All of the WAV files for the letters/numbers etc. must be present in that folder. See here
  • Let each operator have his own WAV files
    • Wave file name, e.g.: {OPERATOR}\cq.wav
      • You can specify WAV files like: {OPERATOR}\cq.wav . As you change operators in a multi-operator contest station, the WAV files will change as well. You will have to create a full set of wav files for each operator. Note that the WAV directory syntax indicates a subdirectory under the wav subdirectory in the N1MM Logger+ user files directory. You can also fully qualify the file name, as in: "C:\Users\User\Documents\N1MM Logger+\wav\{OPERATOR\cq.wav"
      • If you really wanted to, you could use: {OPERATOR}CQ.wav and keep separately-named files in the same directory:
        • N1MMCQ.wav
        • PA1MCQ.wav
      • Play exchange with operators voice: {OPERATOR}\5905.wav
    • Voicing of !, # and @ macros can be done with the individual operator's voice
      • To do this, include {OPERATOR} in the DVK Letters File Path under the Other tab in the Configurer, create a subfolder of the LettersFiles folder for each operator labelled with the operator's callsign, and have each operator record the required letter and number files for their folder in their own voice
    • {OPERATOR} is a string substitution that is only implemented for SSB messages


7. SO2V/SO2R Macros

old-edit

SO2V/SO2R macros are only substituted when SO2V or SO2R is selected. The {CTRLFx} macros work only in SO2R mode, because their functionality is not useful in SO2V.

Single Op 2 VFO and Single Op 2 Radio Macros
Macro keyword
Substituted by
{ACTIVEAUDIOTOGGLE} ACTIVEAUDIOTOGGLE Toggles the muting and unmuting of the AF gain on the active radio. This works only on radios that support this capability via the radio control port
{INACTIVEAUDIOTOGGLE} INACTIVEAUDIOTOGGLE Toggles the muting and unmuting of the AF gain on the inactive radio. This works only on radios that support this capability via the radio control port.
{ACTIVEAUDIOON} ACTIVEAUDIOON Unmutes audio on the active radio; same limitation as above
{ACTIVEAUDIOOFF} ACTIVEAUDIOOFF Mutes audio on the active radio
{INACTIVEAUDIOON} INACTIVEAUDIOON Unmutes audio on the inactive radio
{INACTIVEAUDIOOFF} INACTIVEAUDIOOFF Mutes audio on the inactive radio
{OTHERBAND} Sends the band of the other (inactive) VFO/radio. OTHERBAND example: 80
{OTHERMHZ} Sends the frequency of the other (inactive) VFO/radio in MHz. OTHERMHZ example: 3.5 and 3R5 in CW
{OTHERFREQCUT} CW only. OTHERFREQCUT sends last digits of the frequency of the other (inactive) VFO/radio as cut numbers. Uses the cut number style selected in Configurer
{JUMPRX} JUMPRX Changes 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. If the entry boxes are all empty, restores the last wiped contact ("unwipe")
{ADVSO2RON} ADVSO2RON turns 'Advanced SO2R' on. See Chapter 'SO2R'
{ADVSO2ROFF} ADVSO2ROFF turns 'Advanced SO2R' off. See Chapter 'SO2R'
{CTRLFX} SO2R only. Works with RTTY and CW. Sends on the other radio. 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 CTRLFXC on or off. When off the CTRLFn macro is ignored. Entry focus moves to the other radio only when the callsign field on the current radio is empty.
{CONDJUMP} CONDJUMP applies RX and TX focus are split between two radios, and the user hits the Enter key, TX focus is first moved to the radio with RX focus. The CW message is sent. After the CW message has been completed, TX and RX focus are both moved to the other radio. When RX and TX focus are not split between radios, and the user hits the Enter key, the CW message is sent. When the CW message has been completed, TX and RX focus remain unchanged.
Typical usage in Sprint is: Run F3: TU {END} {CONDJUMP}
{QSYCQ} QSYCQ allows QSYing to the last CQ frequency on the focus radio
{STOPTX) In specialized SO2R scenarios, STOPTX forces PTT to be released. Rarely needed, and not for SO1R use.

8. Multi-User Macros

in-edit

Multi-User macros are only substituted when in Multi-User mode.

Macro keyword Substituted by
{MESSAGE} MESSAGE sends a message (via function key) to other connected stations over the network. See examples
{PASS 1800}
...
{PASS 28000}
Insert pass frequency for first connected station found on that band. Valid values are PASS 1800, 3500, 7000, 14000, 21000 and 28000
{PASSMSG 1800}
...
{PASSMSG 28000}
Pass last QSO information from the first connected station found on that band

8.1. {MESSAGE} Macro Examples

in-edit

The MESSAGE macro sends a message (via a function key) 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). If you want to send the message to one specific station, place a computer identifier (the computer name, which appears in the leftmost column in the Network Status Window) directly after the {MESSAGE} macro. If you don't want to send to a specific station, put "*" in front of the message.

{MESSAGE} Macro Examples
Button text Macro
F8 Pass station {MESSAGE}PETE {TIMEGMT} {CALL} {GRIDSQUARE} {GRIDBEARING}deg. {KMGRIDDISTANCE} km.
Message sent to station whose computer name is "PETE" with info about the station in the callsign field
F8 Pass station {MESSAGE}* {TIMEGMT} {CALL} {GRIDSQUARE} {GRIDBEARING}deg. {KMGRIDDISTANCE} km.
Message sent to all connected stations with info about the station in the callsign field
F8 OK {MESSAGE}PETE OK. Send OK to station whose computer name is "PETE"

9. Digital (RTTY and PSK) Macros

in-edit

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.

Close
warningAlways use {TX} and {RX} together
Use {TX} and {RX} together in your macros. Otherwise, {TX} alone in a macro will cause the radio to remain in transmit until you press an RX button or the ESC key.

Close
tip{PROFILE1-8} may cause delays in sending text messages
You cannot place a {PROFILEx} macro after any other macros or any text to be sent; it must come first in the message. The {PROFILE1-8} macros cause a file to be read from the disk, which may result in delays before any following text in the message is sent. To avoid such delays in text messages, you can use these macros in a separate message button on their own or followed by other program control macros where a slight delay will not be noticeable. {PROFILE0} does not cause any disk reads, so it does not result in delays; however, it is executed before any following text is sent, which could result in a change to the transmitted mark and space frequencies in AFSK.

Close
tipTNC - Clear Buffer After Abort
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.

9.1. RTTY and PSK Macro Examples

old-edit

Example Function Key Macros
Function Macro
LOGTHENGRAB logs the current contact, grabs a call from the Grab box and gives an exchange to the next station.
If the Grab box is empty, this macro will log the contact and just send the TU message instead.
{TX}{ENTER} ! {LOGTHENGRAB} TU NW {F5}{F2}{RX}
LOGTHENPOP logs the contact, pulls the next callsign from the call stack and sends the exchange to him (see Single Operator Call Stacking).
If you want to stack another station that has called you, just Alt-Click on the call in the RX window and it will be placed on the call stack where you can get it with this macro.
{TX}{ENTER} ! {LOGTHENPOP} TU NW {F5}{F2}{RX}

Example Macros for the PK-232 (Digital Interface window)
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}

Example Function Key Macros for the PK-232 (Entry window)
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}

Example Macros for the KAM
Button text Macro
Abort {CTRL-C}R RTTY {ENTER}
TX {CTRL-C}T
RX {CTRL-C}E

Example Macros for the SCS PTC (Digital Interface window)
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}
- - - - - -
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}

Example Function Key Macros for the SCS PTC (Entry window)
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 {MYCALL}
{CTRL-Y}! DE * * K{CTRL-Y}
S&P
F2 Exch
{CTRL-Y}DE * TU 599 {EXCH} {EXCH} GL DE *{CTRL-Y}

Example Function Key Macros for MMTTY (Entry window)
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
on new line
F1 CQ
{TX}{ENTERLF} CQ DE {MYCALL}{RX}

10. Telnet Macros

in-edit

Telnet macros are only substituted when used in the buttons in the Telnet window.

Macros for use in Telnet window buttons
Macro keyword Substituted by
WAIT} Wait 5 seconds (fixed value)


Macros for use in 'Comment For All Spots' (in Telnet window).

Macros for use in 'Comment For All Spots' (in Telnet window)
Macro keyword Substituted by
{GRIDSQUARE} Gridsquare from grid textbox in Entry window
{MODE} Mode used during contact in Entry window
{QTH} QTH from section/qth textbox in Entry window
{ZONE} Zone for state/province/section/oblast/other textbix in Entry window




Last Modification: 17 December 2014 09:29:00 EST by VE3KI.