Medialon MxMs' Help
Name: Medialon Low Level Communicator
Version: 6.7.2
Available for: Manager V7 and Manager V6 (Lite & Pro), Showmaster (Mini, ST, Pro, LE, XS & iPro)
Limitation In: Showmaster Mini
Device Brand: Medialon
Positrack Compatible: Partially
Resources type: Serial, MIDI, TCP/IP Network, UDP/IP Network
Compatible hardware interfaces - available resource modules (MRC):
[Serial]AMX
[Serial]Comtrol Device Master
[Serial]Global Cache
[Serial]Sealevel SeaLINK
[Serial]Showmaster LE
[Serial]Showmaster Serial
[Serial]Windows COM
[MIDI]AMX
[MIDI]Showmaster LE
[MIDI]Showmaster MIDI
[MIDI]Windows MIDI

Overview

The Low Level Communicator MxM is a low level but powerful MxM.

It is a low-level MxM because it is not dedicated to a special device and is able to use many raw communication protocols.

But it is powerful for two reasons.

Five types of communication available

Custom drivers

The programmer can write its own set of commands, create monitoring variables linked to the reception of specified frames, and much more, in order to write drivers dedicated to specified devices and projects

Important Note 1: When this MXM is used with Showmaster and when a TCP/IP server or UDP/IP device is used, the external connection needs to be setup to the address of Medialon Showmaster Editor host during the programming process. When the programming process is completed and Showmaster Editor has been disconnected, the external connection can be setup again to the address of Showmaster.

Important Note 2: The representation of a hexadecimal value in this document uses the scheme !XX when XX are the two digits of the hexadeciaml value. This representation takes place of the other representations which can be found such as XXh or 0xXX.

MxM Installation

No specific installation is required.

Device Setup

At the creation of the device, a setup dialog with seven main pages box pops-up.

These seven main pages are: Type, Frames, Checksum, Commands, Answers, Monitoring, Automation. All these parameters are saved with the Manager project, as all other MXMs, but they also can be saved in separate drivers files. These drivers files can be re-used in other projects ( see DRIVERS section).

Type

Five type of communication are available: serial, TCP/IP client, TCP/IP server, UDP/IP Client-Server, MIDI, which correspond to five different parameters pages (TCP/Server is not available in lite version).

Serial parameters

TCP/IP Client parameters

Delay: specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent. Interval: specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received. The number of retries when there is no acknowledgement is 10 (this is a fixed value). As a consequence, the total delay in case of problem is Delay + (Interval * 10)

TCP/IP Server parameters

(TCP/Server is not available in lite version )

Delay: specifies the timeout, in milliseconds, with no activity until the first keep-alive packet is sent. Interval: specifies the interval, in milliseconds, between when successive keep-alive packets are sent if no acknowledgement is received. The number of retries when there is no acknowledgement is 10 (this is a fixed value). As a consequence, the total delay in case of problem is Delay + (Interval * 10)

UDP/IP parameters

UDP/IP receiver behavior on Showmaster:

When the UDP/IP mode is used under Showmaster as a receiver, the following considerations are important:

MIDI parameters

Frames

Character replacement

This section lists the character that must be replaced in the frames before sending and replaced back the other way upon reception.

If the checksum occurs after replacement, it is computed on the replaced string, and the checksum value itself is not replaced if falling on a special character.

Checksum

These parameters define the checksum verification options. They work together with the “checksum character” and “checksum before replacement” options of the “Frames” config tab.

Checksum check can be enabled on input or output frames, or on both. The first occurrence of the “checksum character” will be replaced upon sending or reception by the appropriate checksum, computed using the following options:

Commands

The commands created in this section are added to the device command set. These commands can contain parameters where variables can be used.

Important Note: the name of a command fully identifies the command, thus renaming a command must be processed with care. As an example: if the “Play” command of a command driver is used by cues of several Low Level Communicator devices, renaming the command to “Play2” will update the cues of the currently edited device. However cues of the other devices will not be updated if the driver is loaded into these devices.

Each command can belong to positrack groups. This positrack mode is very useful when programming a timeline. If several commands belonging to the same positrack group are used in a timeline that is put in pause mode, only the last command placed before the pause point is executed.

In the output frame, it is possible to define parameters, that will appear afterwards in the “Send User Command” command.

In the frame, the syntax of the parameters are between brackets. It contains the name, the type, and the size of the parameter.

Six types of parameters can be specified:

This option defines the type of the parameters that will appear in the command cue. Depending on the ‘Mode’ option, the parameter will be interpreted differently (see below).

Six modes of conversion can be specified:

The ‘Test’ and ‘Result’ fields can be used to check the convertion mode for the parameter. If the parameter type is string or enum, the ‘Test’ is interpreted as a string value, otherwize as an integer value.

The size represents the minimum count of bytes that will be sent: if the result of the conversion has only one byte, zero is added first.

The enum type is different than the other because for each item of the enum, you can specify tha name and the value to be sent:

In the example above, a Power command has an enum parameter called POWER that can have 2 values: OFF and ON. When ON will be selected in the cue, the value !01!10 will be inserted in the frame. When OFF will be selected in the cue, the value !02!20 will be inserted in the frame.

Note: The name of the enum is preceded by its index.

Answers

This page let you enter specific answers to frames received.

If “For each valid frame received, answer:” is checked and if a frame is specified, this frame will be sent each time any valid frame is received by this device.

if “When receiving this valid frame” is checked, you can specify a list of answers corresponding to a list of specific valid frames received.

Monitoring

In this page, you can specify a list of frames that will be periodically sent.

You can also create monitor variables.

These variables will appear in the Variables Inspector of Manager and will be automatically updated each thier corresponding frame is received.

After entering the name and the type of variable, enter the waited frame.

Use the fixed length character (default is ‘X’) to specify undefined characters.

Use the variable length character (default is ‘?’) to specify a undefined string of character.

To determinate the position and the length of the bytes to be monitored in the variable, select these bytes in the frame before closing the dialog box.

When the type is integer or time, the variable is updated with the binary value of the bytes received.

When the type is string or date, the variable is updated with the literal value of the bytes received.

If the selected type is Enum the dialog box shows an enum editor which allows to define the Enum.

Format

Update Mode:

Note: if the option ‘Store Frames’ is not checked in the Frames tab, this option has no effect and the default ‘Immediate’ mode is used.

Note: when the value type is ‘Integer’, it is possible to display the value in decimal or integer format in the dialog box that opens when editing the value.

Examples:

Enum Definitions Remark:

When the parameter type is an enum, an enumeration list defines the different value the enum can take. The name defines the name of the enum and is preceded by its index. The data value defines the actual data which has to be detected within the frame to select this particular enum value.

Avanced Monitoring Variable Setup:

Clicking on the “Advanced” button of the Monitoring Variable Setup Dialog allows setting Bit Mask parameters.

The Bit Mask parameters are useful when the monitoring value embeds information in particular bits. A Bit Mask can only be applied to integer or integer enum values.

Available options are:

For example, if the value is ‘36’ ( ‘24’ in hexadecimal format or ‘00100100’ in binary format) and the specified bit range is from bit #2 to bit #5 shifted by 2, the value of the monitoring variable will be ‘9’ (‘00001001’ in binary format).

The Bit Mask processing is done after the format conversion (‘Hexa ascii value’, ‘High-Low bytes’, etc.) is applied.

Automation

This page tells when the device will make the connection (for example the opening of the port for a serial device).

Drivers

The drivers can be saved into ascii files. These files have the INI format and can be edited by double-clicking on them.

They are located in the “Low Level Communicator Drivers” directory of the MxMs folder of Manager.

These drivers are used to store the parameters in another place than the Manager project, so that they can be easily re-used and exchanged.

After the setup of the device is done, the driver file is no more used since the parameters are saved also in the Manager project.

If a driver has been previously loaded from a file and the parameters of this driver have been modified, the modifications are automatically saved in the original file. However the changes are not automatically applied to other devices of the project which use the same driver. In order to apply the modifications, the driver file must be manually loaded in each of these devices.

Note that Low Level Communicator Drivers can also be downloaded from the Medialon WEB site http://www.medialon.com/download/ktor_drivers/.

Test

In this window, you can test the frames. In can be useful for verifying a checksum, for example The format of the frame that would be sent takes in account all the parameters of the other pages.

Device Commands

Some commands are available only for specified types. The types are written into brackets besides the command.

User commands defined in the device setup are added to this command set.

Open

(all types)

Open the communication.

Usage: This command can be called if the opening of the communication is not set to automatic in the setup of the device.

Close

(all types)

Close the communication.

Usage: This command can be called if the closing of the communication is not set to automatic in the setup of the device.

Sendframe

(Serial, TCP/Client, MIDI,TCP/IP Server, UDP/IP Client-Server )

Send the specified frame.

Usage: In TCP/IP server mode the frame is sent to all of the connected clients. In UDP/IP Client-Server mode, the frame is send to the default destination address and port.

Send frame to

(TCP/IP Server) (TCP/Server is not available in lite version )

Send the specified frame to a client.

Send frame to

(UDP/IP Client-Server)

Send the specified frame to a client.

Get last frame

(Serial, TCP/Client, MIDI)

Read a frame from the next incoming frame buffer list.

Usage: This command must be called when the variable FramesCount (see below) becomes not null. This variable indicates the count of incoming frames waiting to be read.

Each time a frame is read with this command, the variable FramesCount is decreased by one and the frame read is punched out of the buffer list.

Get frame

(TCP/IP Server, UDP/IP Server) ( TCP/Server is not available in lite version )

Read a frame from the next incoming frame buffer list.

Usage: This command must be called when the variable FramesCount (see below) becomes not null. This variable indicates the count of incoming frames waiting to be read.

Each time a frame is read with this command, the variable FramesCount is decreased by one and the frame read is punched out of the buffer list. The addresses can be retrieved in the ClientsList variable.

Get byte

(all types)

Read a byte from the last incoming frame.

Usage: This command can be called when the variable FramesCount is not null. When a byte is read with this command, the variable FramesCount is NOT decreased by one and the frame remains in the list (see command above: “Get Frame” for punching out the frame).

The Return ascii value can contain an hexadecimal representation of the byte, if it is not litteral, like it has been set in the setup of the device for the sending of hexadecimal character ( for example !0D )

Change count of bytes

(all types)

Change the count of byte that the device is waiting for (incoming count of bytes).

Usage: In many protocols, the count of by of the responding frames depends of the type of command frame sent. This is the purpose of this command.

Set DTR

(serial)

Change the DTR signal.

Set RTS

(serial)

Change the RTS signal.

Get client name

(TCP/IP Server) ( TCP/Server is not available in lite version )

Return the name of the specified client.

Change IP parameters (NOT AVAILABLE ON SHOWMASTER MINI)

(TCP/IP Client, TCP/IP Server, UDP/IP Server) (TCP/Server is not available in lite version)

Set new IP parameters for this device.

Device Variables

Only the default variables are listed here. New variables can be created in the Monitoring page of the setup dialog.

Status

[Enum] Status of the connection.

LastCommandStatus

[Enum] Status of the current command.

Frames count

[Integer] Count of incoming frames.

Usage: This variable indicates the count of incoming frames waiting to be read.

Each time a frame is read with the command “Read frame”, the variable FramesCount is decreased by one and the frame read is punched out of the buffer list.

Input bytes count

[Integer] Count of incoming bytes of the current frame.

Usage: This variable indicates the count of incoming bytes that are filling the current frame. If there are several frames in the queue, it does not represent the total of bytes of all the frames, but only the count of bytes of the last frame received. It can be useful when the parameters “count of bytes” and “timeout” are set to zero in the setup of the device with a protocole with variable length frame.

Last received frame

[String] The last frame received on input.

Usage: You can use this variable for reading the input frames, but be aware that if the frames arrive too fast, the variable can be overwritten by the next frame, while you read it (if it is the case, use “Keep all the input frames in memory” and the “Get Frame” command).

Clients count

[Integer] Count of connected clients (in TCP/IP Server mode).

Clients list

[String] List of connected clients.

DSR status

[Integer] Current DSR status (serial device).

CTS status

[Integer] Current CTS status (serial device).

Revisions

V 1.0.1

V 1.0.2

V 1.0.3

V 1.0.4

V 1.0.5

V 1.0.6

V 1.0.7

V 1.0.8

V 1.0.9

V 1.0.10

V 1.2.0

V 1.2.1

V 1.2.2

V 1.2.3

V 6.0.0

V 6.0.1

V 6.0.2

V 6.0.3

V 6.1.0

V 6.1.1

V 6.1.2

V 6.1.3

V 6.1.4:

V 6.1.5:

V 6.1.6

V 6.1.7

V 6.1.8

V 6.2.0

V 6.3.0

V 6.3.1:

V 6.4.0:

V 6.4.1:

V 6.4.2:

V 6.4.3:

V 6.7.0:

V 6.7.1: