DM84 General Commands

actpre Active preset number
baud Serial port baud rate
default Set a memory preset to factory defaults
defpre

Location of the memory preset recalled on powerup

desc

Device description string

exit

Exit from Macro

id

Device id string

macro

Macro command

macroti

Macro title
mode Master/Slave mode
predesc Preset description
premsk Default preset mask
prerormac Preset "Run on Recall" Macro
rank

Rank of device in group of connected devices

recall Recall a memory preset
ropmac

"Run on Powerup" macro

run Run a macro
serial Device serial number string
sleep Suspend macro execution
store Store settings to a memory preset location
version Device firmware version

Termination: all commands are terminated with an ASCII carriage return character (hex code 0x0D), represented by <CR> in the examples below. All responses are terminated with an ASCII carriage return, line feed pair (hex codes 0x0D, 0x0A), represented by <CRLF> in the examples below. An ellipsis (...) represents members of an array that have been omitted from an example for the sake of brevity.

Verbose response: commands prefixed with an exclamation point (bang) character result in a "verbose" response containing the name of the property or action being addressed, along with the current values of the property in question. Property values are always returned in the "assignment" form, for example outmt(2)=1. This supports certain 3rd party control programming styles where the response to all responses needs to be self-describing and/or contain current property values.

Examples:

REQUEST

RESPONSE

COMMAND

!store(3)<CR>

OK store(3)<CRLF>

COMMAND

!run={1,3,5}<CR>

OK run={1,3,5}<CRLF>

QUERY

!ingn(3)?<CR>

OK ingn(3)=0<CRLF>

QUERY

!outmt(*)?<CR>

OK outmt(*)={0,1,1,0}<CRLF>

UPDATE

!ingn(3)=0<CR>

OK ingn(3)=0<CRLF>

UPDATE

!outmt(*)={0,1,1,0}<CR>

OK outmt(*)={0,1,1,0}<CRLF>

 

actpre (active preset)

This command may be used as a query to determine which memory preset is active (that is to say, which preset was last recalled from memory). The data is an integer type in the range 1 to 24. The active preset value may not be assigned directly, use the recall command instead.

Example:

REQUEST

RESPONSE

QUERY

actpre?<CR>

OK 12<CRLF>

 

baud (baud rate)

This command may be used as a query to determine the baud rate setting for the serial port. It may also be used as an update to set the baud rate. The data is an integer type. The following values are allowed:

Examples:

REQUEST

RESPONSE

QUERY

baud?<CR>

OK 57600<CRLF>

UPDATE

baud=57600<CR>

OK<CRLF>

 

default (default settings)

This command may be used to restore a memory preset to the factory defaults. The preset location to be modified is specified by using the address syntax. Addresses must be in the range 1 to 24. No data is transferred.

Example:

REQUEST

RESPONSE

COMMAND

default(3)<CR>

OK<CRLF>

 

defpre (default preset)

This command may be used as a query to determine the memory preset location used as the powerup default. It may also be used as an update to set the default preset. The data is an integer type in the range 0 to 24, where 0 has the special meaning "On powerup, the preset that was active when the unit was last powered down will be recalled".  This provides a "memory" capability useful for some applications, and is called the Last Preset  option.

Examples:

REQUEST

RESPONSE

QUERY

defpre?<CR>

OK 11<CRLF>

UPDATE

defpre=2<CR>

OK<CRLF>

 

desc (description)

This command may be used as a query to read the user defined device description. It may also be used as an update to set the description. The data is a string type, with a limit of 32 characters.

Note: String arguments in commands need to be passed in quoted form, contained in a pair of double-quote (") characters. A problem arises when using the desc command to read or write a string that already contains double-quote characters, for example: The "Hula" Room. The solution is to escape the double quotes within The "Hula" Room so that it can be passed as a string argument for the desc command. This is done by preceding the double-quote characters with a backslash character like this: The \"Hula\" Room. Now it can be passed as a string argument to the desc command: desc="The \"Hula\" Room". Since the backslash serves as the escape character in quoted-string arguments, it too must be escaped if it is part of the string, so "foo\bar" would become "foo\\bar"

Examples:

REQUEST

RESPONSE

QUERY

desc?<CR>

OK "Aloha Room East"<CRLF>

UPDATE

desc="Courtroom #12"<CR>

OK<CRLF>

 

exit (exit a macro)

This command may be used to exit a macro, usually from within a conditional (if-then-else) statement within the macro.

Example:

REQUEST

RESPONSE

COMMAND

exit<CR>

OK<CRLF>

 

id (device id)

This command may be used as a query to read the device id string. This is the "name" of the device used by the Lecnet2 protocol and is always "DM84". The data is a string type.

Example:

REQUEST

RESPONSE

QUERY

id?<CR>

OK "DM84"<CRLF>

 

macro (macro command)

This command may be used as a query to read one command from a macro, or as an update to set a command. The command is specified by using the 2 dimensional address syntax. Addresses for the first dimension specify the macro and must be in the range 1 to 128. Addresses for the second dimension specify the index of the command within the macro and must be in the range 1 to 64. The data type is string, with a limit of 110 characters.

Note: String arguments in commands need to be passed in quoted form, contained in a pair of double-quote (") characters. A problem arises when using the macro command to read or write a Lecnet2 command that already contains double-quote characters, for example the command desc="whatever", which contains the quoted string argument "whatever". The solution is to escape the double quotes within desc="whatever" so that it can itself be passed as a string argument for the macro command. This is done by preceding the double-quote characters with a backslash character like this: desc=\"whatever\". Now it can be passed as a string argument to the macro command: macro(1,1)="desc=\"whatever\"". Since the backslash serves as the escape character in quoted-string arguments, it too must be escaped if it is part of the string, so "foo\bar" would become "foo\\bar".

Examples:

REQUEST

RESPONSE

QUERY

macro(1,3)?<CR>

OK "ingn(3)=55"<CRLF>

QUERY

macro(1,3)?<CR>

OK "desc=\"embedded string\""<CRLF>

UPDATE

macro(12,50)="xpmt(2,10)=1"<CR>

OK<CRLF>

UPDATE

macro(12,50)="desc=\"embedded string\""<CR>

OK<CRLF>

 

macroti (macro title)

This command may be used as a query to read the title of a macro, or as an update to set the title. The macro is specified by using the address syntax. Addresses must be in the range 1 to 128. The data type is string, with a limit of 30 characters.

Note: String arguments in commands need to be passed in quoted form, contained in a pair of double-quote (") characters. A problem arises when using the macroti command to read or write a string that already contains double-quote characters, for example: The "Hula" Room. The solution is to escape the double quotes within The "Hula" Room so that it can be passed as a string argument for the macroti command. This is done by preceding the double-quote characters with a backslash character like this: The \"Hula\" Room. Now it can be passed as a string argument to the macroti command: macroti(1,1)="The \"Hula\" Room". Since the backslash serves as the escape character in quoted-string arguments, it too must be escaped if it is part of the string, so "foo\bar" would become "foo\\bar" .

Examples:

REQUEST

RESPONSE

QUERY

macroti(1)?<CR>

OK "Sidebar nbr 2"<CRLF>

UPDATE

macroti(12)="Setup #3 West"<CR>

OK<CRLF>

 

mode (Master/Slave mode)

This command may be used as a query to determine if the DM84 is operating as a Master or as a Slave. It may also be used as an update to set the mode. Updates do not take effect until power is cycled on the device. The data type is integer, either "1" meaning Master mode, or "0" meaning Slave mode.

Examples:

REQUEST

RESPONSE

QUERY

mode?<CR>

OK 0<CRLF>

UPDATE

mode=0<CR>

OK<CRLF>

 

predesc (preset description)

This command may be used as a query to read the user defined preset description for the active preset. It may also be used as an update to set the description. The data is a string type, with a limit of 60 characters.

Note: String arguments in commands need to be passed in quoted form, contained in a pair of double-quote (") characters. A problem arises when using the desc command to read or write a string that already contains double-quote characters, for example: The "Basic" setup. The solution is to escape the double quotes within The "Basic" setup so that it can be passed as a string argument for the desc command. This is done by preceding the double-quote characters with a backslash character like this: The \"Basic\" setup. Now it can be passed as a string argument to the desc command: desc="The \"Basic\" setup". Since the backslash serves as the escape character in quoted-string arguments, it too must be escaped if it is part of the string, so "foo\bar" would become "foo\\bar".

Important: changes to this setting do not become permanent until the preset is stored to nonvolatile memory!

Examples:

REQUEST

RESPONSE

QUERY

predesc?<CR>

OK "Wedding #1, no hallway speakers"<CRLF>

UPDATE

predesc="Weekly Rotary Club breakfast meeting."<CR>

OK<CRLF>

 

premsk (default preset mask)

This command may be used as a query to determine the default preset mask in effect for the active preset. It may also be used as an update to set the default mask. The preset mask is a number which determines whether or not certain mute and rear panel gain settings are preserved or overwritten when a preset recall occurs. The default mask is in effect unless overridden by the recall command. The data is an integer type formed by adding together one or more of the following values:

For instance, to preserve input and output mutes on preset recalls, but not the rear panel gains, the mask value would be calculated as 2 + 8 = 10. A value of 0 means that the preset recall is "hard", with all mutes and rear panel gains overwritten by the values contained in the newly active preset.

Important: changes to this setting do not become permanent until the preset is stored to nonvolatile memory!

Examples:

REQUEST

RESPONSE

QUERY

premsk?<CR>

OK 2<CRLF>

UPDATE

premsk=5<CR>

OK<CRLF>

 

prerormac (preset "run on recall" macro)

This command may be used as a query to determine the "run on recall" macro for the active preset . It may also be used as an update to set the macro. The data is an integer type in the range 0 to 128, where "0" has the special meaning "none". Note: this command available with DM84 firmware version 1.2.0 or higher only.

Important: changes to this setting do not become permanent until the preset is stored to nonvolatile memory!

Examples:

REQUEST

RESPONSE

QUERY

prerormac?<CR>

OK 0<CRLF>

UPDATE

prerormac=5<CR>

OK<CRLF>

 

rank (rank in Lecnet2 chain)

This command may be used as a query to determine the rank of the unit within a chain in interconnected Lecnet2 devices. For instance, in a group of 3 devices, the "top" or "master" unit will be considered to have rank "1 of 3", while the last unit in the chain will have rank "3 of 3". The data type is array of integer, of size two. The first value indicates the position of the unit, the second indicates the number of devices in the chain.

Example:

REQUEST

RESPONSE

QUERY

rank?<CR>

OK {1,2}<CRLF>

 

recall (recall preset)

This command may be used to recall a memory preset, making it the active preset. The preset location to be recalled is specified by using the address syntax. Addresses must be in the range 1 to 24. If used as a simple command, no data is transferred, and the preset recall is controlled by the default preset mask. If used as an update, the data type is an integer whose value serves as the preset mask for the recall operation, overriding the default preset mask. See premsk.

Example:

REQUEST

RESPONSE

COMMAND

recall(3)<CR>

OK<CRLF>

UPDATE

recall(4)=1<CR>

OK<CRLF>

 

ropmac ("run on powerup" macro)

This command may be used as a query to determine the "run on powerup" macro for the DM84. It may also be used as an update to set the macro. The data is an integer type in the range 0 to 128, where "0" has the special meaning "none". Note: this command available with DM84 firmware version 1.2.0 or higher only.

Examples:

REQUEST

RESPONSE

QUERY

ropmac?<CR>

OK 0<CRLF>

UPDATE

ropmac=5<CR>

OK<CRLF>

 

run (run a macro)

This command may be used to run a macro (an internally stored group of DM84 commands). A single macro may be run by using the command form. In this case the macro is specified by using the address syntax. Addresses must be in the range 1 to 128. More than one macro may be run with a single command by using the update form. In this case the data type is array of integer, with a variable length in the range 1 - 16. The values contained in the array specify which macros to run.

Example:

REQUEST

RESPONSE

COMMAND

run(3)<CR>

OK<CRLF>

UPDATE

run={1,3,5}<CR>

OK<CRLF>

 

serial (serial number)

This command may be used as a query to read the device serial number. The data is a string type.

Example:

REQUEST

RESPONSE

QUERY

serial?<CR>

OK "1234"<CRLF>

 

sleep (suspend macro execution)

This command may be used as an update to suspend the execution of commands withing a macro for a fixed period of time specified in milliseconds. The data is an integer type in the range 0 to 30000.   This allows the the timing of a series of actions performed by a macro to be controlled.  option.

Examples:

REQUEST

RESPONSE

UPDATE

sleep=2000<CR>

OK<CRLF>

 

store (store settings to preset)

This command may be used to store current settings to a memory preset. The preset location to be updated is specified by using the address syntax. Addresses must be in the range 1 to 24. No data is transferred.

Example:

REQUEST

RESPONSE

COMMAND

store(3)<CR>

OK<CRLF>

 

version (firmware version)

This command may be used as a query to read the device firmware version number. The data is a string type.

Example:

REQUEST

RESPONSE

QUERY

version?<CR>

OK "1.0.1"<CRLF>

 

Copyright 2006 Lectrosonics, Inc.