Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions gdtf-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -1288,6 +1288,7 @@ of geometry collect are specified in [table 34](#user-content-table-34 ).
| [GeometryReference](#user-content-geometry-type-reference ) | Any | Reference to already described geometries. |
| [Laser](#user-content-geometry-type-laser ) | Any | Geometry with a laser light output. |
| [WiringObject](#user-content-geometry-type-wiring-object ) | Any | Geometry that describes an internal wiring for power or data. |
| [Cable](#user-content-geometry-type-cable ) | Any | Geometry that describes a cable assembly. |
| [Inventory](#user-content-geometry-type-inventory ) | Any | Geometry that describes an additional item that can be used for a fixture (like a rain cover). |
| [Structure](#user-content-geometry-type-structure ) | Any | Geometry that describes the internal framing of an object (like members). |
| [Support](#user-content-geometry-type-support ) | Any | Geometry that describes a support like a base plate or a hoist. |
Expand Down Expand Up @@ -1783,6 +1784,96 @@ defined XML attributes of a pin patch are specified in [table 51](#user-content-

The pin patch doesn't have any children.

### Geometry Type Cable

#### General

This type of geometry is used to describe a cable assembly (XML node
`<Cable>`).

The currently defined XML attributes of the cable geometry are specified in
[table 52](#table-52 ).

<div id="table-52">

#### Table 52. *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. |
| Diameter | [Float](#user-content-attrtype-float ) | Outer shell diameter. Unit: meter. Default value: 0. |
| WeightPerMeter | [Float](#user-content-attrtype-float ) | Weight per meter. Unit: kilogram. Default value: 0. |
| AvailableLengths | [Array of Float](#user-content-attrtype-float ) | Array of available cable lengths. Unit: meter. Default value: 0. |
| InstallationRating | [String](#user-content-attrtype-string ) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. |

</div>

The cable geometry has the same children types as the geometry collect
(see [table 34](#user-content-table-34 )). Physical connector shells are
represented by top-level `WiringObject` children. Cable matching is
determined from the connector types of those wiring objects. In
addition, the cable has one or more `Conductors` children that describe
the bundled conductors or signal paths carried by the cable.

### Node Definition: Conductors

This node defines one internal conductor bundle of a cable assembly.
The defined Conductors node attributes are specified in
[table-conductors-attributes](#table-conductors-attributes ).

Node name: `Conductors`

<div id="table-conductors-attributes">

#### Table XX. *Conductors Attributes*

| XML Attribute Name | Value Type | Description |
|----|----|----|
| Name | [Name](#user-content-attrtype-name ) | Unique name of the conductor bundle within the cable geometry. |
| Type | [String](#user-content-attrtype-string ) | Conductor 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. |

</div>

The Conductors node has the following children.

##### Table XX — *Conductors Node Children*

| Child Node | Allowed Count | Description |
| -------------------------------------------------------------- | ------------- | --------------------------------------------------------------- |
| [ConductorPatch](#node-definition-conductorpatch) | 1 or any | One pin-level mapping that belongs to this conductor bundle. |

### Node Definition: ConductorPatch

This node defines one pin-level mapping inside a conductor bundle. The
defined ConductorPatch node attributes are specified in
[table-conductorpatch-attributes](#table-conductorpatch-attributes ).

Node name: `ConductorPatch`

<div id="table-conductorpatch-attributes">

#### Table XX. *ConductorPatch Attributes*

| XML Attribute Name | Value Type | Description |
|----|----|----|
| FromWiringObject | [Node](#user-content-attrtype-node ) | Link to the source wiring object of the physical connector shell. |
| FromPin | [Int](#user-content-attrtype-int ) | The pin number used on the source wiring object. |
| ToWiringObject | [Node](#user-content-attrtype-node ) | Link to the target wiring object of the physical connector shell. |
| ToPin | [Int](#user-content-attrtype-int ) | The pin number used on the target wiring object. |

</div>

The ConductorPatch node does not have any children.


### Geometry Type Inventory

This type of geometry is used to describe a geometry used for the inventory (XML node `<Inventory>`). The currently
Expand Down
28 changes: 27 additions & 1 deletion mvr-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -813,6 +814,31 @@ EXAMPLE An example of a node definition is shown below:
</Projector>
```

### Node Definition: Cable

This node defines a cable object. Cable describes the physical realization of a
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`

Table xx - Cable Node attributes:

| Attribute Name | Value Type | 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. |
| 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`. |

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.


## Other Node Definition

Expand Down Expand Up @@ -1223,6 +1249,7 @@ Node name: `Connection`
| own | [String](#user-content-attrtype-string) | Mandatory | Node Link to the Geometry with DIN SPEC 15800 Type [Wiring Object](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#geometry-type-wiring-object) . Starting point is the Geometry Collect of the linked GDTF. |
| other | [String](#user-content-attrtype-string) | Mandatory | Node Link to the Geometry with DIN SPEC 15800 Type [Wiring Object](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#geometry-type-wiring-object) . Starting point is the Geometry Collect of the linked GDTF of the object defined in `toObject`. |
| toObject | [UUID](#user-content-attrtype-uuid) | Mandatory | UUID of an other object in the scene. |
| cable | [UUID](#user-content-attrtype-uuid) | Empty String | UUID of the cable used for this connection. |

### Node Definition: Mappings

Expand Down Expand Up @@ -1811,4 +1838,3 @@ UUIDs are randomly generated numbers which are, practically speaking, unique and
One of the most important aspects of UUIDs in MVR is that they are persistent. A UUID should identify an item throughout its entire life cycle. This means that if a document is exported, then objects should have the same UUID every time an export is performed.
One use case for UUIDs is importing or merging MVRs into an existing document. This is one reason that persistent UUIDs are valuable. If you export an MVR from one program, open it in another, and make modifications, then you may want to incorporate those changes into the original document. By cross referencing UUIDs, you can avoid creating duplicate objects and instead update existing ones.
UUIDs are also used inside of the MVR file format as a form of reference. For example, a symbol instance shall refer to a symbol definition. Because the symbol definition is given a UUID, the symbol instance can reference its symbol through the use of this UUID.

179 changes: 179 additions & 0 deletions proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
## Cable definition GDTF

### Power cable, Schuko to Schuko

```xml
<Cable Name="Power Cable Schuko to Schuko"
CableType="Power cable"
LengthMin="1.0"
LengthMax="25.0"
AvailableLengths="1.0 5.0 10.0 25.0"
Diameter="0.02"
WeightPerMeter="0.002"
InstallationRating="Touring">
<WiringObject Name="A"
ConnectorType="CEE 7/7"
ComponentType="Input"
SignalType="Power"
PinCount="3" />
<WiringObject Name="B"
ConnectorType="CEE 7/7"
ComponentType="Output"
SignalType="Power"
PinCount="3" />
<Conductors Name="Power" Type="Power" CrossSection="1.5" ConductorAmount="3" VoltageRating="250" CurrentRating="16">
<ConductorPatch FromWiringObject="A" FromPin="1" ToWiringObject="B" ToPin="1" />
<ConductorPatch FromWiringObject="A" FromPin="2" ToWiringObject="B" ToPin="2" />
<ConductorPatch FromWiringObject="A" FromPin="3" ToWiringObject="B" ToPin="3" />
</Conductors>
</Cable>
```

### Power cable, Schuko to PowerTrueOne

```xml
<Cable Name="Power Cable Schuko to PowerTrueOne"
CableType="Power cable"
LengthMin="1.0"
LengthMax="25.0"
AvailableLengths="1.0 5.0 10.0 25.0"
InstallationRating="Touring">
<WiringObject Name="A"
ConnectorType="CEE 7/7"
ComponentType="Input"
SignalType="Power"
PinCount="3" />
<WiringObject Name="B"
ConnectorType="PowerTrueOne"
ComponentType="Output"
SignalType="Power"
PinCount="3" />
<Conductors Name="Power" Type="Power" CrossSection="1.5" ConductorAmount="3" VoltageRating="250" CurrentRating="16">
<ConductorPatch FromWiringObject="A" FromPin="1" ToWiringObject="B" ToPin="1" />
<ConductorPatch FromWiringObject="A" FromPin="2" ToWiringObject="B" ToPin="2" />
<ConductorPatch FromWiringObject="A" FromPin="3" ToWiringObject="B" ToPin="3" />
</Conductors>
</Cable>
```

### DMX cable, XLR to XLR

```xml
<Cable Name="DMX Cable XLR to XLR"
CableType="DMX cable"
LengthMin="1.0"
LengthMax="100.0"
AvailableLengths="1.0 5.0 10.0 25.0 50.0 100.0"
InstallationRating="Touring">
<WiringObject Name="A"
ConnectorType="XLR3"
ComponentType="Input"
SignalType="DMX512"
PinCount="3" />
<WiringObject Name="B"
ConnectorType="XLR3"
ComponentType="Output"
SignalType="DMX512"
PinCount="3" />
<Conductors Name="DMX" Type="DMX512" ConductorAmount="3" Impedance="110">
<ConductorPatch FromWiringObject="A" FromPin="1" ToWiringObject="B" ToPin="1" />
<ConductorPatch FromWiringObject="A" FromPin="2" ToWiringObject="B" ToPin="2" />
<ConductorPatch FromWiringObject="A" FromPin="3" ToWiringObject="B" ToPin="3" />
</Conductors>
</Cable>
```

### Combined cable, power and DMX, four connectors

```xml
<Cable Name="Power and DMX Combo, split ends"
CableType="Combined cable"
LengthMin="1.0"
LengthMax="50.0"
AvailableLengths="1.0 5.0 10.0 25.0 50.0"
InstallationRating="Touring">
<WiringObject Name="Power-In"
ConnectorType="CEE 7/7"
ComponentType="Input"
SignalType="Power"
PinCount="3" />
<WiringObject Name="Power-Out"
ConnectorType="PowerTrueOne"
ComponentType="Output"
SignalType="Power"
PinCount="3" />
<WiringObject Name="DMX-In"
ConnectorType="XLR3"
ComponentType="Input"
SignalType="DMX512"
PinCount="3" />
<WiringObject Name="DMX-Out"
ConnectorType="XLR3"
ComponentType="Output"
SignalType="DMX512"
PinCount="3" />
<Conductors Name="Power" Type="Power" CrossSection="1.5" ConductorAmount="3" VoltageRating="250" CurrentRating="16">
<ConductorPatch FromWiringObject="Power-In" FromPin="1" ToWiringObject="Power-Out" ToPin="1" />
<ConductorPatch FromWiringObject="Power-In" FromPin="2" ToWiringObject="Power-Out" ToPin="2" />
<ConductorPatch FromWiringObject="Power-In" FromPin="3" ToWiringObject="Power-Out" ToPin="3" />
</Conductors>

<Conductors Name="DMX" Type="DMX512" ConductorAmount="3" Impedance="110">
<ConductorPatch FromWiringObject="DMX-In" FromPin="1" ToWiringObject="DMX-Out" ToPin="1" />
<ConductorPatch FromWiringObject="DMX-In" FromPin="2" ToWiringObject="DMX-Out" ToPin="2" />
<ConductorPatch FromWiringObject="DMX-In" FromPin="3" ToWiringObject="DMX-Out" ToPin="3" />
</Conductors>
</Cable>
```
### Combined cable, power and DMX, two Amphenol connectors

```xml
<Cable Name="Power and DMX Combo, single connector each side"
CableType="Combined cable"
LengthMin="1.0"
LengthMax="50.0"
AvailableLengths="1.0 5.0 10.0 25.0 50.0"
InstallationRating="Touring">
<WiringObject Name="A"
ConnectorType="Amphenol"
ComponentType="Input"
PinCount="6" />
<WiringObject Name="B"
ConnectorType="Amphenol"
ComponentType="Output"
PinCount="6" />
<Conductors Name="Power" Type="Power" CrossSection="1.5" ConductorAmount="3" VoltageRating="250" CurrentRating="16">
<ConductorPatch FromWiringObject="A" FromPin="1" ToWiringObject="B" ToPin="1" />
<ConductorPatch FromWiringObject="A" FromPin="2" ToWiringObject="B" ToPin="2" />
<ConductorPatch FromWiringObject="A" FromPin="3" ToWiringObject="B" ToPin="3" />
</Conductors>

<Conductors Name="DMX" Type="DMX512" ConductorAmount="3" Impedance="110">
<ConductorPatch FromWiringObject="A" FromPin="4" ToWiringObject="B" ToPin="4" />
<ConductorPatch FromWiringObject="A" FromPin="5" ToWiringObject="B" ToPin="5" />
<ConductorPatch FromWiringObject="A" FromPin="6" ToWiringObject="B" ToPin="6" />
</Conductors>
</Cable>
```

## Cable definition MVR

```xml
<Cable
uuid="7C6B12E5-0AC9-45B2-99EA-5C7C9D9F5A10"
name="Low Voltage PSU Feed 25m Hybrid"
length="25.0"
GDTFSpec="MyFixtureFamily.gdtf"
CableName="TODO: Define entry point into GDTF file">
</Cable>
```

Example cable utilization:

```xml
<Connection
own="LowVoltageOutput"
other="LowVoltageInput"
toObject="..."
cable="7C6B12E5-0AC9-45B2-99EA-5C7C9D9F5A10"/>
```