Detailed instructions for use are in the User's Guide.
[. . . ] RS-232 Control
of the Advantage PMX84
________________________________________________________________________________________ Biamp Systems, 14130 N. W. (503) 641-7287
an affiliate of Rauland-Borg Corp.
Introduction This document contains technical information relating to computer control of the Biamp Advantage PMX84 Programmable Matrix Switch. This information is intended for advanced users - in particular for those who wish to develop their own computer programs to control the PMX84. It is assumed that the reader is an experienced programmer and has some familiarity with standard programming practices, binary and hexadecimal numbers, the ASCII character set, asynchronous serial data communications, and RS-232 interfaces.
Hexadecimal, ASCII-Hex, and "Pseudo-Hex" Numbers
Throughout this document, hexadecimal numbers shall be represented by preceding the number with "0x". [. . . ] However, unlike the earlier Advantage products, the PMX84 firmware splits the programmable buttons into two separate parts - a "button macro", which specifies what actions are to be performed, and a "button definition" which specifies which button macro is assigned to a particular button. When the PMX84 detects that a remote control button has been pressed, it first looks-up the button definition for that button to determine which (if any) button macro is associated with that button. If a button macro has been assigned to that button, the PMX84 then looks-up the specified button macro to determine what actions to perform. The PMX84 provides support for 200 buttons or button events (for a list of all 200 button events, see page 7). The PMX84 reserves space in its non-volatile memory for each of the 200 buttons or button events. A particular button macro may be assigned to more than one button - defining 4 buttons, for example, to all perform the same actions only requires 1 button macro, not 4.
Button Definition Data Structure
The PMX84 maintains data structures for 200 buttons or button events (button 0 thru button 199). Each button definition data structure consists of two bytes - one byte specifies which button macro, if any, has been assigned to the button and the other byte specifies what character, if any, should be "echoed" (transmitted) out the PMX84's serial port when that button event occurs. A macro number assignment of 0xff indicates that no macro has been assigned to the button and therefore the button is a "NOP" (it performs no operation). An echo character assignment of 0x00 means that no character will be transmitted out the serial port when that button event occurs.
PMX84 Button Definition Data Structure
2-byte array with elements numbered button[0] thru button[1]
(msb) 7 6 5 4 3 2 1 (lsb) 0
0x00 means no echo character assigned 0xff means NOP (no macro assigned)
button[1]
(transmitted first)
ECHO CHARACTER
button[0]
(transmitted last)
MACRO NUMBER ASSIGNMENT
page 12
Computer Control of the Advantage PMX84
Button Macro Data Structure
The PMX84 maintains data structures for 50 button macro definitions (macro 0 thru macro 49). Each button macro data structure consists of twelve bytes - eight bytes specifying actions for the 32 matrix assignment switches and four bytes specifying actions for the 16 logic outputs. Each action code consists of two bits with the following bit patterns: 0 0 1 1 0 1 0 1 NOP (no operation) turn OFF turn ON toggle
PMX84 Button Macro Data Structure
12-byte array with elements numbered macro[0] thru macro[11]
(msb) 7 6 5 4 3 2 1 (lsb) 0
macro[11]
(transmitted first)
LOGIC 16
LOGIC 15
LOGIC 14
LOGIC 13
macro[10] macro[9] macro[8] macro[7] macro[6] macro[5] macro[4] macro[3] macro[2] macro[1] macro[0]
(transmitted last)
LOGIC 12
LOGIC 11
LOGIC 10
LOGIC 9
LOGIC 8
LOGIC 7
LOGIC 6
LOGIC 5
LOGIC OUTPUT ACTIONS
LOGIC 4
LOGIC 3
LOGIC 2
LOGIC 1
MATRIX Switch 8-4 MATRIX Switch 7-4 MATRIX Switch 6-4 MATRIX Switch 5-4 MATRIX Switch 4-4 MATRIX Switch 3-4 MATRIX Switch 2-4 MATRIX Switch 1-4
MATRIX Switch 8-3 MATRIX Switch 7-3 MATRIX Switch 6-3 MATRIX Switch 5-3 MATRIX Switch 4-3 MATRIX Switch 3-3 MATRIX Switch 2-3 MATRIX Switch 1-3
MATRIX Switch 8-2 MATRIX Switch 7-2 MATRIX Switch 6-2 MATRIX Switch 5-2 MATRIX Switch 4-2 MATRIX Switch 3-2 MATRIX Switch 2-2 MATRIX Switch 1-2
MATRIX Switch 8-1 MATRIX Switch 7-1 MATRIX Switch 6-1 MATRIX Switch 5-1 MATRIX Switch 4-1 MATRIX Switch 3-1 MATRIX Switch 2-1 MATRIX Switch 1-1
MATRIX ASSIGNMENT SWITCH ACTIONS
Computer Control of the Advantage PMX84
page 13
Advanced Computer Control Command Notation
For the following descriptions of the Advanced Computer Control command set, the following conventions will be used: Each ASCII character which represents a pseudo-hex nibble will be shown in italics, with the following letters representing certain types of parameters:
a b c d e k l m n o s x a pseudo-hex nibble specifying an action code. one of the pseudo-hex nibbles in the device number bitmask which indicates which device numbers should accept the following command. a pseudo-hex nibble specifying a memory address in the non-volatile configuration memory of the PMX84 (the ending address of a range of addresses). one of the pseudo-hex nibbles specifying a logic output status data structure. one of the pseudo-hex nibbles specifying a macro data structure or a matrix status data structure. a pseudo-hex nibble specifying a memory address in the non-volatile configuration memory of the PMX84 (the starting address of a range of addresses). a pseudo-hex nibble specifying a generic data value.
page 14
Computer Control of the Advantage PMX84
!
do-macro
Description:
The do-macro command causes the PMX84 to look-up and perform the actions for the specified button macro.
Syntax of Command:
nn08dd!
where:
nn 08 dd !
= = = =
Macro Number + 128 (pseudo-hex) PMX84 Device Type Bitmask Device Number Bitmask (pseudo-hex) do-macro command character (0x21)
Syntax of Response:
(no response)
Example:
950820!This example causes PMX84 number 6 to immediately look-up and perform the actions for button macro number 21.
Comments:
The decimal value 128 must be added to the Macro number. This indicates to the PMX84 that this is the do-macro form of the command.
Computer Control of the Advantage PMX84
page 15
!
get-macro-definition
Description:
The get-macro-definition command causes the PMX84 to return the definition of the specified button macro. The button macro definition will be returned in the Button Macro Data Structure format.
Syntax of Command:
nn08dd!
where:
nn 08 dd !
= = = =
Macro Number (pseudo-hex) Device Type Bitmask (pseudo-hex) Device Number Bitmask (pseudo-hex) get-macro-definition command character (0x21)
Syntax of Response:
mmmmmmmmmmmmmmmmmmmmmmmm
where:
mmmmmmmmmmmmmmmmmmmmmmmm = Button Macro Data Structure (pseudohex)
Example:
command: 1;0801!
response: 0000000255555555555555::
This example causes PMX84 number 1 to retrieve its button macro definition for macro number 27 (0x1B) and return it to the computer. In this example, the macro definition was: assign input 1 to outputs 1, 2, 3, and 4; un-assign all other inputs and outputs; turn on logic output 1; leave logic outputs 2-16 the way they were.
Comments:
page 16
Computer Control of the Advantage PMX84
"
define-macro
Description:
The define-macro command provides a new button macro definition for the specified macro number. The PMX84 will store this new button macro definition in its macro definition lookup table, replacing the definition that was there.
Syntax of Command:
mmmmmmmmmmmmmmmmmmmmmmmmnn08dd"
where:
mmmm. . . mmmm nn 08 dd "
= = = = =
Button Macro Data Structure (pseudo-hex) Macro Number (pseudo-hex) Device Type Bitmask (pseudo-hex) Device Number Bitmask (pseudo-hex) define-macro command character (0x22)
Syntax of Response:
(no response)
Example:
000000020000000000000002030801" This example causes PMX84 number 1 to redefine macro number 03 to assign input 1 to output 1 and to turn on logic output number 1 and to leave all other matrix switch assignments and logic outputs the way they were.
Comments:
Computer Control of the Advantage PMX84
page 17
"
virtual-macro
Description:
The virtual-macro command causes the specified button macro actions to be immediately performed. [. . . ] 0x76 set-matrix nibble 0x6 button 05 button 21 button 36 select 1, 2, 4 0x17 039. 0x77 do-matrix nibble 0x7 button 06 button 22 button 37 select 3, 4 0x18 040. 0x78 get-logic nibble 0x8 button 07 button 23 button 38 select 1, 3, 4 0x19 041. 0x79 set-logic nibble 0x9 button 08 button 24 button 39 select 2, 3, 4 0x1A 042. [. . . ]