Driver implemented in: vsmStudio

Introduction

In addition to control x-point routing via this protocol it also allows for exchanging Label and Tally information.

While some related settings can be accessed directly from the Attributes tab in the Port Settings of the respective Communication Port,

some settings have to be done via the Server Registry. Especially if multiple Layers are involved.


Editing the System Registry incorrectly can cause serious issues that may require you to reinstall the operating system. We cannot guarantee that problems resulting from the incorrect use of the Registry Editor can be solved. Use the Registry Editor at your own risk.

 

Up to 16 layers are supported per Pro-Bel SW-P-08 communication port connection.

Supported Command-Set


Command Name

No.:

Status

#define SWP08_Interrogate

(1)

inbound/outbound

#define SWP08_Connect

(2)

inbound/outbound

#define  SWP08_Tally

(3)

inbound/outbound

#define  SWP08_Connected

(4)

inbound/outbound




#define SWP08_DualControllerStatusRequest

(8)

outbound

#define  SWP08_DualControllerStatusResponse

(9)

outbound

#define SWP08_ProtectInterrogate

(10)

not implemented

#define  SWP08_ProtectTally

(11)

not implemented

#define SWP08_ProtectConnect

(12)

not implemented

#define  SWP08_ProtectConnected

(13)

not implemented

#define SWP08_ProtectDisConnect

(14)

not implemented

#define SWP08_ProtectDeviceNameRequest

(15)

not implemented




#define SWP08_ProtectDeviceNameRequest

(17)

not implemented

#define  SWP08_ProtectDeviceNameResponse

(18)

not implemented

#define SWP08_ProtectTallyDumpRequest

(19)

not implemented

#define  SWP08_ProtectTallyDumpResponse

(20)

not implemented

#define SWP08_TallyDumpRequest

(21)

inbound/outbound

#define  SWP08_TallyDumpByteResponse

(22)

inbound/outbound

#define  SWP08_TallyDumpWordResponse

(23)

inbound/outbound




#define SWP08_RouterIOParametersInterrogate

(25)

not implemented

#define  SWP08_RouterIOParametersTally

(26)

not implemented

#define SWP08_RouterIOParametersConnect

(27)

not implemented

#define  SWP08_RouterIOParametersConnected

(28)

not implemented

#define SWP08_MasterProtectConnect

(29)

not implemented

#define  SWP08_NamesUpdated

(30)

not implemented




#define SWP08_DiagnosticRequest

(41)

not implemented




#define  SWP08_DiagnosticResponse

(43)

not implemented

#define  SWP08_LogMessage

(44)

not implemented




#define SWP08_StatusConfigurationRequest

(76)

not implemented

#define  SWP08_StatusConfigurationTally

(77)

not implemented

#define SWP08_ErrorAndStatusRequest

(79)

not implemented

#define  SWP08_LoggingStringMessage

(78)

special




#define SWP08_VendorSpecific

(96)

special

#define SWP08_SingleSourceNamesRequest

(97)

not implemented

#define SWP08_ImplementationStatus

(98)

not implemented

#define SWP08_InvalidMessage

(99)

not implemented

#define SWP08_AllSourceNamesRequest

(100)

outbound

#define SWP08_SingleSourceNamesRequest

(101)

outbound

#define SWP08_AllDestinationAssoNamesRequest

(102)

outbound

#define SWP08_SingleDestinationAssoNamesRequest

(103)

outbound

#define SWP08_AllUmdLabelsRequest

(104)

not implemented

#define SWP08_SingleUmdLabelRequest

(105)

not implemented

#define  SWP08_SourceNameResponse

(106)

inbound/outbound

#define  SWP08_DestinationAssoNameResponse

(107)

inbound/outbound

#define  SWP08_UmdLabelResponse

(108)

not implemented




#define SWP08_CrosspointTieLineConnect

(111)

not implemented

#define SWP08_CrosspointTieLineInterrogate

(112)

not implemented

#define  SWP08_CrosspointTieLineTally

(113)

not implemented

#define SWP08_AllSourceAccoNamesRequest

(114)

outbound

#define SWP08_SingleSourceAssoNameRequest

(115)

outbound

#define  SWP08_SourceAssoNamesResponse

(116)

outbound

#define SWP08_UpdateNameRequest

(117)

not implemented




#define SWP08_ConnectOnGoSalvo

(120)

inbound/outbound

#define SWP08_GoSalvo

(121)

inbound/outbound

#define  SWP08_ConnectOnGoSalvoAcknowledge

(122)

inbound/outbound

#define  SWP08_GoDoneSalvoAcknowledge

(123)

inbound/outbound

#define SWP08_SalvoInterrogate

(124)

inbound

#define  SWP08_SalvoTally

(125)

inbound




#define SWP08_ExtendedInterrogate

(129)

inbound/outbound

#define SWP08_ExtendedConnect 

(130)

inbound/outbound

#define  SWP08_ExtendedTally

(131)

inbound/outbound

#define  SWP08_ExtendedConnected

(132)

inbound/outbound




#define SWP08_ExtendedProtectInterrogate

(138)

not implemented

#define  SWP08_ExtendedProtectTally

(139)

not implemented

#define SWP08_ExtendedProtectConnect

(140)

not implemented

#define  SWP08_ExtendedProtectConnected

(141)

not implemented

#define SWP08_ExtendedProtectDisconnect

(142)

not implemented

#define  SWP08_ExtendedProtectDisconnected

(143)

not implemented




#define SWP08_ExtendedProtectTallyDumpRequest

(147)

not implemented

#define  SWP08_ExtendedProtectTallyDumpResponse

(148)

not implemented

#define SWP08_ExtendedTallyDumpRequest

(149)

inbound




#define  SWP08_ExtendedTallyDumpWordResponse

(151)

inbound




#define SWP08_ExtendedRouterIOParametersInterrogate

(153)

not implemented

#define  SWP08_ExtendedRouterIOParametersTally

(154)

not implemented

#define SWP08_ExtendedRouterIOParametersConnect

(155)

not implemented

#define  SWP08_ExtendedRouterIOParametersConnected

(156)

not implemented




#define SWP08_ExtendedAllSourceNamesRequest

(228)

outbound

#define SWP08_ExtendedSingleSourceNamesRequest

(229)

outbound

#define SWP08_ExtendedAllDestinationAssoNamesRequest

(230)

not implemented

#define SWP08_ExtendedSingleDestinationAssoNamesRequest

(231)

not implemented

#define SWP08_ExtendedAllUmdLabelsRequest

(232)

not implemented

#define SWP08_ExtendedSingleUmdLabelRequest

(233)

not implemented

#define  SWP08_ExtendedSourceNameResponse

(234)

outbound

#define  SWP08_ExtendedDestinationAssoNameResponse

(235)

not implemented

#define  SWP08_ExtendedUmdLabelResponse

(236)

not implemented




#define SWP08_ExtendedConnectOnGoSalvo

(248)

inbound/outbound




#define  SWP08_ExtendedConnectOnGoAcknowledge

(250)

inbound/outbound




#define SWP08_ExtendedSalvoInterrogate

(252)

inbound

#define  SWP08_ExtendedSalvoTally

(253)

inbound

Driver Attribute Settings in vsmStudio

General

Acknowledge First (1)

This setting controls if vsmStudio sends an acknowledge first, before we send back data to an edge device. There are some devices which require this way of communication, most of the devices don't care though.

Honor Acknowledge (2)

If this is option is enabled, the crosspoints are sent one by one. Meaning unless there is an acknowledge for the first crosspoint, the following will not be send to the device. This option may slow down the routing performance considerably.

If Honor Acknowledge is disabled, commands will not be sent serialized.

Ignore Card Status

If this is option is enabled, vsmStudio will ignore the card status reply of the connected device, if the device for instance replies on a card status request with an IDLE status. Without this option enabled, this would usually result in the controller stop further communication, e.g., requesting the actual crosspoint status.

Pad Character

Any character, number, etc. can be chosen to fill unused character "slots" up to specified max. label length.

Label transfer and mapping

Auto Transmit Source Labels (1)

Setting this entry will send a list of source labels to the external device as soon as the connection between the vsmStudio and the other device has been established. A value of e.g., 8 will send only the 8 character length labels whereas 4, 8, 12 would send the 4 character, the 8 character and the 12 character versions of the labels. Currently only the later lengths are supported. (3).

Auto Transmit Target Labels (2)

As above, yet for the Target Labels. As default how many characters of the source label, connected to a specific target should be transmitted. With the registry override that destination Labels will be transmitted.

Auto Transmit Labels Holdoff (3)

This is a timer value, set in ms, defining of how often Labels should be transmitted.

Enable Secondary Label (Device specific)

This enables the Studer specific extensions of the Label transfer. This option can be enabled by creating the respective String in the Registry.

It enables the following label mappings and special translations:

Label LevelMeaning
Level 0:The primary UMD text.
Level 1:The “Group” mapped from signal label level #14.
Level 2:The “Lock Status” - an “L” when the signal is locked or the signals label #15 contains a text.
Level 3:The “Reserved Status” - an “R” when the signal label level #16 contains a text.
Level 4:The “Facility” name mapped from signal label level #13.


Specifying the Studer specific extensions will impact the operation of the application specific label mapping and can lead to undefined results.

Label Mapping (Application Specific)

It is possible to map individual labels to different levels. To do so, additional entries under the layer tree have to be created.



Source Label <Level Number> = REG_SZ “[prefix]<Label Number>”

The <Level Number> specifies the pro-bel level that the signal label specified by <Label Number> is mapped to. The prefix currently has no usage.

Target Label <Level Number> = REG_SZ “[prefix]<Label Number>”

This defines the mapping of the Target Label. The function is similar to the source label, yet the default action is to send the associated source label of a target and not the label of the target. If the target label should be sent this can be defined by adding a prefix in front of the label number e.g. T5 or Target5. This tells the system to not resolve the source but to send the target label, mapped and specified, instead.

If Application Specific Label Mapping is used and manual registry entries are made accordingly, the default protocol label mapping is overwritten.

Please note there might be the need for a small modification, specifically after an update from a vsmStudio build B2323 or older towards a newer vsmStudio build: In the original default, Label Layer 0 (Identifier) is auto assigned to all assigned matrix layers on the communication port, e.g. Level 0 ("M* L0"). 
If registry entries on the respective vsmStudio Server were modified, e.g. "Source Label 1 = 1", the previously sent (B2323) Source Label Layer 1 (Primary) on Level 0 of SWP-08 is NOT sent anymore after the update.
This can be enable with an additional registry entry: "Source Label 0 = 1".

Tally via Label Mapping

There are also special keywords that can be alternatively specified:

Target Label <Level Number> = REG_SZ “Tally[:<tally assignment>]”

When using the tally keyword, the system will send a label containing tally information. The default tally assignment is the letters “R”, “G” and “Y” corresponding to the status of Red, Green and Yellow Tally respectively. If the tally is active, the letter will be present in the label sent, whereas if the tally is not active then the corresponding letter is omitted.

It is possible to redefine the behavior by specifying tally assignment. As an example, the default behavior could have also been specified as “Tally:R=0,G=1,Y=2”.

The <tally assignment> is a coma separated list of elements in the form <letter>=[S]<tally index> where the letter can be any uppercase letter between A - Z, and the tally index corresponds to the desired tally. The optional prefix "S" specifies that the system should look at the source tally of the signal instead of the usual target tally. The letters are concatenated in the order specified when the corresponding tally is active.

Levels that have not been mapped will default to the primary UMD text.