From 7adb0ec9caf0d2876b96e902ad0a96d026644c26 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Thu, 18 Jun 2026 13:34:46 +0200 Subject: [PATCH 1/5] Add cable definition --- mvr-spec.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/mvr-spec.md b/mvr-spec.md index 55bf7e46..9c61c169 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -368,6 +368,7 @@ The child list (Table 18) contains a list of the following nodes: | [Truss](#node-definition-truss) | A definition of a truss. | | [VideoScreen](#node-definition-videoscreen) | A definition of a video screen. | | [Projector](#node-definition-projector) | A definition of a projector. | +| [Cable](#node-definition-cable) | A definition of a cable. | ## Node Definition for Parametric Objects @@ -813,6 +814,76 @@ EXAMPLE An example of a node definition is shown below: ``` +### Node Definition: Cable + +This node defines a cable object. Cable describes the physical realization of a +connection between two GDTF `WiringObject` nodes. A cable has one start and one +end and may carry one or more signals. The defined Cable Node Attributes are +specified in Table XX. + +Node name: `Cable` + +Table xx - Cable Node attributes: + +| Attribute Name | Value Type / Unit | Description | +| ------------------ | ----------------: | --------------------------------------------------------------------------------------- | +| uuid | [UUID](#user-content-attrtype-uuid) | Unique identifier of the cable. | +| name | [String](#user-content-attrtype-string) | Cable name. | +| cableType | [String](#user-content-attrtype-string) | Cable type, model, or construction. | +| length | [Float](#user-content-attrtype-float)| Cable length. Unit: meter. Default value: 0 | +| installationRating | [String](#user-content-attrtype-string) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | + +The child list (Table XX) contains a list of one of the following nodes: + +##### Table xx — *Cable Node Childs* + +| Child Node | Allowed Count | Description | +| ----------------------------------| --------------- | ----------------------------------- | +| [Signal](#node-definition-signal) | 1 or any | The type of the signal used. | + +The defined Signal Node Attributes are specified in Table XX. + +Table xx - Signal Node attributes: + +| Attribute Name | Value Type / Unit | Description | +| -------------- | ----------------: | ------------------------------------------------------------------- | +| type | [String](#user-content-attrtype-string) | Signal type, using GDTF `WiringObject` signal types where possible. | +| crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | +| impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | +| voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | +| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: amp, Default: 0 | + +Example: + +```xml + + + + + + +``` + +Extend MVR `Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. + +```xml + +``` ## Other Node Definition From 1b9f8f7c0fc599c83c8557eb694e1a84f06be83c Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Thu, 18 Jun 2026 14:07:34 +0200 Subject: [PATCH 2/5] Define Signal type definition --- mvr-spec.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mvr-spec.md b/mvr-spec.md index 9c61c169..68aba70f 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -817,9 +817,9 @@ EXAMPLE An example of a node definition is shown below: ### Node Definition: Cable This node defines a cable object. Cable describes the physical realization of a -connection between two GDTF `WiringObject` nodes. A cable has one start and one -end and may carry one or more signals. The defined Cable Node Attributes are -specified in Table XX. +connection between two [Connection](#node-definition-connection) nodes. A cable +has one start and one end and may carry one or more signals. The defined Cable +Node Attributes are specified in Table XX. Node name: `Cable` @@ -847,11 +847,11 @@ Table xx - Signal Node attributes: | Attribute Name | Value Type / Unit | Description | | -------------- | ----------------: | ------------------------------------------------------------------- | -| type | [String](#user-content-attrtype-string) | Signal type, using GDTF `WiringObject` signal types where possible. | +| type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | | impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | | voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | -| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: amp, Default: 0 | +| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: ampere, Default: 0 | Example: From 8c015a942e0639d187ac3dd1e529c7cd83804953 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Fri, 19 Jun 2026 14:16:01 +0200 Subject: [PATCH 3/5] Add conductorAmount --- mvr-spec.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mvr-spec.md b/mvr-spec.md index 68aba70f..8946c095 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -849,6 +849,7 @@ Table xx - Signal Node attributes: | -------------- | ----------------: | ------------------------------------------------------------------- | | type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | +| conductorAmount | [Integer](#user-content-attrtype-integer) | Amount of conductors. Default: 0 | | impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | | voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | | currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: ampere, Default: 0 | @@ -865,12 +866,14 @@ Example: ``` From 1129c5a9bf68e3b75edae3045b421c83b6f9ab05 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Wed, 24 Jun 2026 13:21:35 +0200 Subject: [PATCH 4/5] Adjust Connection node --- mvr-spec.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mvr-spec.md b/mvr-spec.md index 8946c095..64a82ffb 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -825,7 +825,7 @@ Node name: `Cable` Table xx - Cable Node attributes: -| Attribute Name | Value Type / Unit | Description | +| Attribute Name | Value Type | Description | | ------------------ | ----------------: | --------------------------------------------------------------------------------------- | | uuid | [UUID](#user-content-attrtype-uuid) | Unique identifier of the cable. | | name | [String](#user-content-attrtype-string) | Cable name. | @@ -845,7 +845,7 @@ The defined Signal Node Attributes are specified in Table XX. Table xx - Signal Node attributes: -| Attribute Name | Value Type / Unit | Description | +| Attribute Name | Value Type | Description | | -------------- | ----------------: | ------------------------------------------------------------------- | | type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | @@ -878,7 +878,7 @@ Example: ``` -Extend MVR `Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. +`Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. ```xml Date: Thu, 25 Jun 2026 14:23:27 +0200 Subject: [PATCH 5/5] Extend the cable definition to allow defining a cable in GDTF --- gdtf-spec.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++ mvr-spec.md | 24 +++++-- 2 files changed, 200 insertions(+), 4 deletions(-) diff --git a/gdtf-spec.md b/gdtf-spec.md index 07ae9da4..a5703e15 100644 --- a/gdtf-spec.md +++ b/gdtf-spec.md @@ -311,6 +311,7 @@ For SVG files defining the `Thumbnail` view must be the view from bottom in Z di | [Revisions](#user-content-revision-collect ) | No | Describes the history of the fixture type. | | [FTPresets](#user-content-fixture-type-preset-collect ) | No | Is used to transfer user-defined and fixture type specific presets to other show files. | | [Protocols](#user-content-fixture-type-preset-collect) | No | Is used to specify supported protocols. | +| [Cables](#cable-collect) | No | Contains available cable definitions for the fixture family. | @@ -2484,6 +2485,185 @@ The Value of DMXPersonality corresponds to the RDM PID 0x00E0 DMX_PERSONALITY. The DMXPersonality does not have any children. +## Cable Collect + +### General + +This section defines the available cables as cable assemblies. + +Cable compatibility is determined by the fixture type references listed in +`CompatibleFixtureTypes`. + +The cable collect does not have any XML attributes (XML node ``). As +children, the cable collect has a list of [Cable](#node-definition-cable). + +### Node Definition: Cable + +This section defines a cable definition (XML node ``). The cable +describes a complete physical cable assembly that is available for a fixture. +The defined cable node attributes are specified in [table-cable-attributes](#table-cable-attributes). + +Node name: `Cable` + +
+ +#### Table XX. *Cable Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Name | [Name](#user-content-attrtype-name ) | Unique name of the cable definition. | +| CableType | [String](#user-content-attrtype-string ) | Cable type, model, or construction. | +| LengthMin | [Float](#user-content-attrtype-float ) | Minimum supported cable length. Unit: meter. Default value: 0. | +| LengthMax | [Float](#user-content-attrtype-float ) | Maximum supported cable length. Unit: meter. Default value: 0. | +| InstallationRating | [String](#user-content-attrtype-string ) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | + +
+ +The cable node (Table XX) contains the following children. + +##### Table XX — *Cable Node Children* + +| Child Node | Allowed Count | Description | +| ---------------------------------------------------------------------- | ------------- | --------------------------------------------------------------------------- | +| [Connectors](#node-definition-connectors) | 2 or any | The connector list that forms the physical cable ends and breakouts. | +| [Signal](#node-definition-signal) | 1 or any | The electrical or data signals that this cable supports. | +| [Connections](#node-definition-connections) | 1 | The internal cable graph linking connectors and signals. | +| [CompatibleFixtureTypes](#node-definition-compatiblefixturetypes) | 0 or 1 | The fixture types that can use this cable. | + +### Node Definition: Connectors + +This node defines the connector list of the cable. The defined Connectors node +children are specified in [table-connectors-children](#table-connectors-children). + +Node name: `Connectors` + +
+ +##### Table XX — *Connectors Node Children* + +| Child Node | Allowed Count | Description | +| ---------------------------------------------- | ------------- | ---------------------------------------------- | +| [Connector](#node-definition-connector) | 2 or any | One physical connector used by the cable. | + +### Node Definition: Connector + +This node defines one connector of the cable. The defined Connector node +attributes are specified in [table-connector-attributes](#table-connector-attributes ). + +Node name: `Connector` + +
+ +#### Table XX. *Connector Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Name | [Name](#user-content-attrtype-name ) | Unique name of the connector within the cable. | +| ConnectorType | [Name](#user-content-attrtype-name ) | The connector type. See [Annex D](#user-content-table-d1 ). | +| Gender | [Enum](#user-content-attrtype-enum ) | The connector side. Defined values are "Male", "Female", "Genderless". | +| PinCount | [Int](#user-content-attrtype-int ) | Number of pins available on the connector. | + +
+ +The Connector node does not have any children. + +### Node Definition: CompatibleFixtureTypes + +This node defines the list of fixture types that may use the cable. If this +node is omitted, the cable may be used by any fixture type. The defined +CompatibleFixtureTypes node children are specified in [table-compatiblefixturetypes-children](#table-compatiblefixturetypes-children). + +Node name: `CompatibleFixtureTypes` + +
+ +##### Table XX — *Compatible Fixture Types Node Children* + +| Child Node | Allowed Count | Description | +| ----------------------------------------------------------------- | ------------- | ------------------------------------------------- | +| [CompatibleFixtureType](#node-definition-compatiblefixturetype) | 1 or any | A fixture type that is compatible with the cable. | + +### Node Definition: CompatibleFixtureType + +This node defines one compatible fixture type. The defined +CompatibleFixtureType node attributes are specified in [table-compatiblefixturetype-attributes](#table-compatiblefixturetype-attributes). + +Node name: `CompatibleFixtureType` + +
+ +#### Table XX. *Compatible Fixture Type Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| FixtureTypeID | [GUID](#user-content-attrtype-guid ) | Unique identifier of the compatible fixture type. | +| Name | [String](#user-content-attrtype-string ) | Optional human readable name of the fixture type. | + +
+ +The CompatibleFixtureType node does not have any children. + +### Node Definition: Signal + +This node defines the signal and conductor characteristics of a cable. The +defined Signal node attributes are specified in [table-signal-attributes](#table-signal-attributes). + +Node name: `Signal` + +
+ +#### Table XX. *Signal Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Name | [Name](#user-content-attrtype-name ) | Unique name of the signal within the cable. | +| Type | [String](#user-content-attrtype-string ) | Signal type. Predefined values are "Power", "DMX512", "Protocol", "AES", "AnalogVideo", "AnalogAudio". | +| CrossSection | [Float](#user-content-attrtype-float ) | Conductor cross-section where applicable. Unit: mm². Default value: 0. | +| ConductorAmount | [Integer](#user-content-attrtype-integer ) | Amount of conductors. Default value: 0. | +| Impedance | [Float](#user-content-attrtype-float ) | Cable impedance where applicable. Unit: Ohm. Default value: 0. | +| VoltageRating | [Float](#user-content-attrtype-float ) | Optional voltage rating. Unit: volt. Default value: 0. | +| CurrentRating | [Float](#user-content-attrtype-float ) | Optional current rating. Unit: ampere. Default value: 0. | + +
+ +### Node Definition: Connections + +This node defines the internal connection graph of the cable assembly. The +defined Connections node children are specified in [table-connections-children](#table-connections-children). + +Node name: `Connections` + +
+ +##### Table XX — *Connections Node Children* + +| Child Node | Allowed Count | Description | +| ------------------------------------------ | ------------- | --------------------------------------------------------------- | +| [Connection](#node-definition-connection) | 1 or any | One internal cable connection between connectors and signals. | + +### Node Definition: Connection + +This node defines one internal connection inside the cable assembly. The +defined Connection node attributes are specified in [table-connection-attributes](#table-connection-attributes). + +Node name: `Connection` + +
+ +#### Table XX. *Connection Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Signal | [Name](#user-content-attrtype-name ) | Name of the signal this internal connection belongs to. | +| FromConnector | [Name](#user-content-attrtype-name ) | Name of the source connector. | +| FromPin | [Int](#user-content-attrtype-int ) | Source pin number on the source connector. | +| ToConnector | [Name](#user-content-attrtype-name ) | Name of the target connector. | +| ToPin | [Int](#user-content-attrtype-int ) | Target pin number on the target connector. | + +
+ +The Connection node does not have any children. + ### Art-Net Section #### General diff --git a/mvr-spec.md b/mvr-spec.md index 64a82ffb..13e6fa0a 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -832,14 +832,23 @@ Table xx - Cable Node attributes: | cableType | [String](#user-content-attrtype-string) | Cable type, model, or construction. | | length | [Float](#user-content-attrtype-float)| Cable length. Unit: meter. Default value: 0 | | installationRating | [String](#user-content-attrtype-string) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | +| GDTFSpec | [FileName](#user-content-attrtype-filename) | Optional. The name of the GDTF or `gdtt` file containing a reusable cable catalog. | +| CableName | [String](#user-content-attrtype-string) | Optional. The name of the cable definition inside the GDTF file referenced by `GDTFSpec`. | -The child list (Table XX) contains a list of one of the following nodes: +If `GDTFSpec` is present, `CableName` shall identify a cable definition in +that file. If `GDTFSpec` is omitted, the cable remains a plain MVR cable +instance and is described only by the attributes on the scene object itself. + +The child list (Table XX) contains a list of one of the following nodes. When +`GDTFSpec` is omitted, at least one `Signal` child shall be present. When +`GDTFSpec` is present, the `Signal` child list is optional because the cable +definition can be resolved from the referenced GDTF catalog entry. ##### Table xx — *Cable Node Childs* | Child Node | Allowed Count | Description | | ----------------------------------| --------------- | ----------------------------------- | -| [Signal](#node-definition-signal) | 1 or any | The type of the signal used. | +| [Signal](#node-definition-signal) | 1 or any / 0 or any when `GDTFSpec` is present | The type of the signal used. | The defined Signal Node Attributes are specified in Table XX. @@ -860,8 +869,16 @@ Example: + + +