RS232/IP ‘send codes’
For an RS232/IP device you have to choose whether you will enter the codes in HEX or in ASCII-code. If you select ASCII you can also select if a code should end with a Carriage return and/or a Line feed.
For RS232 you also have to select the Baudrate: 9600, 19200, 38400 or 57600.
For IP you need to enter the IP port number.
- In the field display name you can enter a name (optional). You will see this name when you configure the device in PROSOFT.
- For the functions 'SELECT SRC X' it is advised to enter the name of the input of the device (if there is a mark on the device with AUX2 then type 'AUX2' in the display name field).
- Then enter the HEX-codes or ASCII, which are described in the protocol of the device.
- It's possible to copy similar codes, so you only have to adjust the values where needed.
- Next to the function you will see a 'chain-symbol'; if you click on it you can add a second code to the chosen function. You can add up to 10 codes to one function. (e.g. to add waiting time between 2 codes).
For RS232: at the bottom of this screen you can test the code by clicking on 'Test code from PC port: There will be a test between your PC and the device without any interfering of the TELETASK hardware.
For IP: at the bottom of this screen you can test the codes by selecting a code and click on ‘Send’. You will also see the data received from the IP device.
After testing, click ok.
Your codes will be automatically saved in your custom AV-SOFT library 'custom3.3.irdb' file in directory C:\ProgramData\TELETASK\PROSOFT. Whenever you make modifications or create new AV-devices in your project, this file will be updated. The AV-devices that are inside your project will also be saved inside the .nbt file.
Feedback Codes RS232 and IP
General
For an RS232 or IP device you can define feedback codes. This is optional but advisable if the AV-device is also controlled directly (e.g. using the remote control from the device or an app on a smartphone or tablet) or if you want to automatically display AV feedback (like volume and track number) on a TELETASK display (like AURUS-OLED (PLUS), AURUS-TFT, etc.).
The data that can be received from an AV-device is:
- The power status of a zone (ON or OFF)
- The currently active source on a zone (source 1-8)
- The volume of a zone (0-100%)
- Two lines of track info or RDS info from a source.
To define ‘Feedback Codes’, check the option ‘Feedback codes’ and click the ‘Edit’ button.
You will now see the ‘Feedback codes’ window:
In this window there are two tab pages. One for the ‘Feedback codes’ and one for the ‘Polling codes’ (which will be discussed in the next chapter).
At the right there are three buttons to create a new ‘Feedback code’, to edit an existing one or to remove a feedback code.
At the bottom you need to enter a ‘Start of code character’ and ‘End of code character’. You can enter an ASCII character or a hex code in this field. E.g. if you have an ASCII protocol in which the codes starts with a ‘*’ and ends with a carriage return, you can enter * in the start of code field and 0x0D in the end of code field (‘0x0D’ is the hexadecimal representation of carriage return).
To create a new Feedback code, click on the ‘New’ button. You will now see the ‘Define feedback code’ window:
At the top of the window you have these fields:
- Code Name
- In this field you can enter a descriptive name for the receive code
- Sample Code
- In this field you need to enter an ASCII code that can be received from the AV-device. This code is automatically repeated as individual characters in the field below the sample code.
When the sample code is entered, we can define how the different variables can be obtained from this code. Let’s have a closer look at the code in this example:
- *z1,ON,FM,24
This code contains 4 variables: the zone number (1), the power status (ON), the active source (FM) and the volume (24). Depending on the brand and type of your AV-device the receive codes can contain either multiple variables in one code (like in this example) or contain only two variables per code but have more different codes. E.g. the codes from another brand could be like this:
- @ZONE1:PWR=ON
- @ZONE1:SRC=FM
- @ZONE1:VOL=24
Receive code Protocols
To obtain a variable from a code, there are different ‘protocols’ available like Single possibility, Position related, Determined by delimiter info, Display characters from position and Exact.
Depending on the type of variable (zone, source, power,..) and the type of code (HEX or ASCII) the different AV interfaces support the protocols as indicated in the tables below:
RS232 interface TDS14042:
Zone | Source | Power | Volume | Line 1 or 2 | |
1) Position related | Hex, Ascii | Hex, Ascii | Hex, Ascii | Hex | |
2) Determined by Delimiter info | Ascii | Ascii | |||
3) Display characters from position | Hex, Ascii | ||||
4) Single possibility | Hex, Ascii | Hex, Ascii | |||
5) Exact | Hex, Ascii |
AV-IP License TDS15240:
Zone | Source | Power | Volume | Line 1 or 2 | |
1) Position related | Hex | Hex | Hex | Hex | |
2) Determined by Delimiter info | Ascii | Ascii | Ascii | Ascii | Ascii |
3) Display characters from position | Hex, Ascii | ||||
4) Single possibility | Hex, Ascii | Hex, Ascii | Hex, Ascii | Ascii | |
5) Exact | Hex, Ascii |
We will now have a look at the individual protocols.
1) Position related:
This mostly used protocol indicates that a specific variable can be found at a predefined position in the code.
Example: If you have a device that uses the code:
- z1,ON,FM,24
You could get the zone number from this code as ‘Position related’ because the zone number can be found at position 3.
2) Determined by delimiter info:
This protocol is slightly more complex than the others but far more powerful if the different code parts have different lengths. This protocol can only be used if different variables in the code are delimited (separated) by the same character.
Example: If you have a device that uses the code:
- *z1,ON,FM,24
The delimiter is the ‘,’. The volume can now be obtained as the variable after the third delimiter. You also need to define the ‘Stop character’ for this delimited info. In most cases the ‘stop character’ will be the same as the delimiter or will be the ‘End of code character’ but it can also be any other character.
Beside the ‘delimiter’, the ‘Number of delimiter’ and the ‘stop character’ which are required, this protocol has two extra, but optional, parameters:
- Number of positions skipped after delimiter
- if the variable would not immediately start after the delimiter.
- Maximum length
- the maximum number of characters that can be part of the variable.
Example: if the code would be:
- *z1,ON,FM,VOL24BASS3TREBLE2
The volume would be the variable that starts 3 positions after the third delimiter and is terminated by a ‘B’ character.
3) Display characters from position:
This protocol is only available for track or RDS information from a source. It is very similar to the ‘position related’ protocol but in this case you define a start position rather than an absolute position. All characters beginning with the start character en terminated by the ‘end of code character’ will be displayed as track information
Example: If you have a device that uses the code:
- *RDS1,FM,info
The ‘Line 1’ info for FM can be obtained from the code as all the characters starting at position 10.
4) Single possibility:
This is a very basic protocol. It indicates that a specific variable has a specific value.
Example: If you have a device that uses the codes:
- *z1,ON,FM,24
- *z1,OFF,FM,24
You could define two receive codes for this and get the ‘Power status’ from this code as single possibility.
5) Display exact characters:
This protocol does not obtain any data from the code, instead it displays a predefined text on ‘Line 1’ or ‘Line 2’.
Example: If your AV-device sends the code:
- *RDS1,FM,RDS ERROR
To indicate that there is no RDS info available for the current radio station, you can display a blank line or ‘No info available’ or ‘FM’ or ….
Defining a receive code
Assume we have a device that uses the receive code from the examples below:
- *z1,ON,FM,24
This code contains info about the power, the source and the volume status of a particular zone of this amplifier so in the ‘Define feedback code’ window we give this code the name ‘Power, Source and Volume’.
We will now need to obtain all the variables from this code. When you create a new code for every variable the ‘Protocol’ will be ‘Not defined’. This means that there is no information on how to obtain that variable from the code.
In our example code there is no information about LINE1 or LINE2 so the protocol for this variables will remain ‘Not defined’
Zone:
The zone variable can be obtained from the code as position related on position 3 for this example.
To do this:
- Select the ‘ZONE’ tab page
- Select ‘Position related’ from the ‘Select Protocol’ dropdown list
- Enter ‘3’ in the ‘Zone position in code’ field.
- PROSOFT will try to obtain the correct character from the code and mark the character in the grid. This allows you to easily verify the information entered in the different fields.
At the bottom the is a ‘translation table’ in which you can define which variable corresponds with each ‘TELETASK’ audio zone. These audio zones first have to be configured in PROSOFT.
In this case we have a device with 4 zones that are referenced in the code as 1-4. Other devices may us A, B, C and D or Main for the first zone and 2, 3 and 4 for the others.
Source:
The TDS14042 only supports obtaining the source as position related, but in this case we have a problem, the position changes when the power changes from ON to OFF. We will solve this by only obtaining the Source information when the amplifier is ON. So we define the source as position related at position 8
To do this:
- Select the ‘SOURCE’ tab page
- Select ‘Position related’ from the ‘Select Protocol’ dropdown list
- Enter ‘8’ in the ‘Zone postion in code’ field.
At the bottom we now have a translation table for the sources. Up to 8 sources can be defined. In this example we have a device that has the sources FM, MP3, CD, DVD and AUX.
Power:
With this example code we cannot use the ‘position related’ protocol for the power as this would generate a problem for the ‘Source info’. So for this code we will define the power as single possibility ‘ON’µ
We will also create a second receive code ‘Power OFF’ from which:
- We obtain the zone number as ‘Position related’ on position 3,
- We define the ‘POWER’ variable as ‘Single Possibility’, OFF
- We don’t obtain other information
Volume:
The ‘volume’ variable can be obtained from the code using the ‘Determined by delimiter info’ protocol.
To do this:
- Select the ‘VOLUME’ tab page
- Select the ‘Determined by delimiter info’ from the protocol dropdown list
- Enter ‘,’ as the ‘Delimiter’
- Enter ‘3’ as the ‘Number of delimiter’
At the bottom you can also define a ‘Min’ and ‘Max’ volume. In this case we have a device that uses 0 as the ‘Min’ volume an ‘50’ as the ‘Max’ volume.
‘Identifiers’ and ‘Variables or don’t care characters’
All our variables are now defined for this code, but we need a mechanism to recognize this code. This is done by ‘Identifiers’ and ‘Variables or don’t care characters’.
An Identifier is a character that is always available in this code on a predefined position. In our code (*z1,ON,FM,24) the Identifiers are:
- *, z, the first comma, O, N, and the second comma
A ‘Variable or don’t care character’ is a character that is either one of the ‘variables’ or a character that can be different in different codes but that hasn’t got any meaning by itself (‘a don’t care character’). In this code the variables are:
- 1, F, 2 and 4 (the zone, source an volume variables)
The ‘don’t care characters are:
- M and the third comma.
The M is a ‘don’t care character’ because this can be different for the other sources.
The third comma is a ‘don’t care characters’ because its position in the code can vary e.g. if the source value is AUX, the position of the third comma is 11 (instead of 10).
So if a receive codes that starts with *z and where the characters 4-7 are: ‘,ON,’ this code will be recognized as the ‘Power, Source and Volume’ code name.
When entering a sample code, all characters are automatically marked as ‘Identifier’ (grey background)
The final thing we have to do is mark the ‘variable or don’t care characters’. To do this select a character (or multiple surrounding characters) from the grid and click the white ‘Variable or don’t care character’ square. You will see that the characters will now get a white background.
Alternatively you can ‘right-click’ a character and mark it as ‘Variable or don’t care character’ from the popup menu.
Our code should now look like this: