open-fixture-library icon indicating copy to clipboard operation
open-fixture-library copied to clipboard

Add fixture `cameo/otos-b5`

Open FloEdelmann opened this issue 2 weeks ago • 1 comments

  • Update manufacturers.json
  • Add fixture cameo/otos-b5

Fixture warnings / errors

  • cameo/otos-b5
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/0/brightnessEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/1/brightnessEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim/capabilities/2/brightnessEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceStart 0 must be equal to one of [near, far]
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceEnd 1 must be equal to one of [near, far]
    • ❌ File does not match schema: fixture/availableChannels/Focus1/capability/distanceEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleStart "0rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleStart "0rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleStart "0rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleEnd "90rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleEnd "90rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism1 Pos/capabilities/0/angleEnd "90rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleStart "0rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleStart "0rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleStart "0rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleEnd "90rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleEnd "90rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/0/angleEnd "90rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleStart "83.33333333333333rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleStart "83.33333333333333rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleStart "83.33333333333333rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleEnd "0.16666666666666669rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleEnd "0.16666666666666669rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/1/angleEnd "0.16666666666666669rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/2/angle "stop" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/2/angle "stop" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/2/angle "stop" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleStart "-0.16666666666666669rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleStart "-0.16666666666666669rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleStart "-0.16666666666666669rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleEnd "-83.33333333333333rpm" must match pattern "^-?[0-9]+(.[0-9]+)?deg$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleEnd "-83.33333333333333rpm" must match pattern "^-?[0-9]+(.[0-9]+)?%$"
    • ❌ File does not match schema: fixture/availableChannels/Prism2 Pos/capabilities/3/angleEnd "-83.33333333333333rpm" must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityStart 0 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityEnd 1 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/0/frostIntensityEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityStart 0 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityEnd 1 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/1/frostIntensityEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityStart 0 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityEnd 1 must be equal to one of [off, low, high]
    • ❌ File does not match schema: fixture/availableChannels/Frost1/capabilities/2/frostIntensityEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/1 (type: Unknown (BlackoutMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/2 (type: Unknown (BlackoutMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/3 (type: Unknown (BlackoutMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/4 (type: Unknown (BlackoutMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/19 (type: Unknown (PanTiltMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/20 (type: Unknown (PanTiltMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/21 (type: Unknown (PanTiltMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/22 (type: Unknown (PanTiltMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/23 (type: Unknown (PanTiltMode)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/29 (type: Unknown (DisplayIntensity)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/30 (type: Unknown (DisplayIntensity)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Ctrl1/capabilities/31 (type: Unknown (DisplayIntensity)) value of tag "type" must be in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/0/brightnessEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/1/brightnessEnd 1 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessStart 0 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessStart 0 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessStart 0 must match exactly one schema in oneOf
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessEnd 1 must be string
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessEnd 1 must be equal to one of [off, dark, bright]
    • ❌ File does not match schema: fixture/availableChannels/Dim 2/capabilities/2/brightnessEnd 1 must match exactly one schema in oneOf
    • ⚠️ Please add fixture categories.
    • ⚠️ Please add relevant links to the fixture.
    • ⚠️ Please add physical data to the fixture.

Thank you **Anonymous **!

FloEdelmann avatar Dec 08 '25 14:12 FloEdelmann

Export files validity

(Output of test script tests/github/exports-valid.js.)

Test the exported files of selected fixtures against the plugins' export tests. You can run a plugin's export tests by executing: $ node cli/run-export-test.js -p <plugin name> <fixtures>

✔️ cameo / otos-b5: d-light / attributes-correctness
  • ✔️ cameo/otos-b5-23CH Extended.xml
  • ✔️ cameo/otos-b5-19CH Standard.xml
  • ✔️ cameo/otos-b5-17CH Basic.xml
cameo / otos-b5: dmxcontrol3 / channel-numbers
  • ❌ cameo-otos-b5-23CH-Extended.xmlChannel 5 "Dim" is missing capabilities. Used ranges: 0…255, 255
    Channel 14 "C1" is missing capabilities. Used ranges: 0, 2, 5…6, 11, 17…18, 23, 30, 35, 42, 47, 54, 59, 66, 71, 78, 83, 90, 95, 102, 107, 114, 119, 126, 131, 138, 143, 150, 155, 162, 167, 174, 183, 192…255, 224
    Channel 16 "G1" is missing capabilities. Used ranges: 0…3, 6, 9…11, 13…14, 17, 21…23, 25…26, 29, 33…35, 37…38, 41, 45…47, 49…50, 53, 57…59, 61…62, 65, 69…71, 73…74, 77, 81…83, 85…86, 89, 93…95, 97…98, 101, 105…107, 109…110, 113, 117…118, 124, 131…255
  • ❌ cameo-otos-b5-19CH-Standard.xmlChannel 5 "Dim" is missing capabilities. Used ranges: 0…255, 255
    Channel 11 "C1" is missing capabilities. Used ranges: 0, 2, 5…6, 11, 17…18, 23, 29…30, 35, 41…42, 47, 53…54, 59, 65…66, 71, 77…78, 83, 89…90, 95, 101…102, 107, 113…114, 119, 125…126, 131, 137…138, 143, 149…150, 155, 161…162, 167, 173…174, 183, 192…255
    Channel 12 "G1" is missing capabilities. Used ranges: 0…3, 6, 9…11, 13…14, 17, 21…23, 25…26, 29, 33…35, 37…38, 41, 45…47, 49…50, 53, 57…59, 61…62, 65, 69…71, 73…74, 77, 81…83, 85…86, 89, 93…95, 97…98, 101, 105…107, 109…110, 113, 117…118, 124, 131…255
  • ❌ cameo-otos-b5-17CH-Basic.xmlChannel 10 "C1" is missing capabilities. Used ranges: 0, 2, 5…6, 11, 17…18, 23, 29…30, 35, 41…42, 47, 53…54, 59, 65…66, 71, 77…78, 83, 89…90, 95, 101…102, 107, 113…114, 119, 125…126, 131, 137…138, 143, 149…150, 155, 161…162, 167, 173…174, 183, 192…255
    Channel 11 "G1" is missing capabilities. Used ranges: 0…3, 6, 9…11, 13…14, 17, 21…23, 25…26, 29, 33…35, 37…38, 41, 45…47, 49…50, 53, 57…59, 61…62, 65, 69…71, 73…74, 77, 81…83, 85…86, 89, 93…95, 97…98, 101, 105…107, 109…110, 113, 117…118, 124, 131…255
cameo / otos-b5: dragonframe / json-schema-conformity
  • ❌ cameo/otos-b5.jsonfixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be string
    fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be string
    fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must be equal to one of [off, dark, bright]
    fixture/availableChannels/Dim/capabilities/0/brightnessStart 0 must match exactly one schema in oneOf
    fixture/availableChannels/Dim/capabilities/0 (type: Intensity) must match "then" schema
  • ✔️ manufacturers.json
✔️ cameo / otos-b5: millumin / json-schema-conformity
  • ✔️ cameo/otos-b5.json
cameo / otos-b5: qlcplus_4.12.2 / fixture-tool-validation
  • ❌ fixtures/cameo-Otos-B5.qxfNamespace(map=False, convert=None, validate=['.']) Starting validation ./manufacturer/fixture.qxf:Dim/Intensity 0…1 (Open): Overlapping values detected 255/255 ./manufacturer/fixture.qxf:Dim/Intensity 0…1 (Open): Non contiguous range detected 255/255 ./manufacturer/fixture.qxf:C/Cyan off…bright (Open): Overlapping values detected 255/255 ./manufacturer/fixture.qxf:C/Cyan off…bright (Open): Non contiguous range detected 255/255 ./manufacturer/fixture.qxf:M/Magenta off…bright (Open): Overlapping values detected 255/255 ./manufacturer/fixture.qxf:M/Magenta off…bright (Open): Non contiguous range detected 255/255 ./manufacturer/fixture.qxf:Y/Yellow off…bright (Open): Overlapping values detected 255/255 ./manufacturer/fixture.qxf:Y/Yellow off…bright (Open): Non contiguous range detected 255/255 ./manufacturer/fixture.qxf:C1/Color Wheel rotation stop (Stop): Overlapping values detected 224/224 ./manufacturer/fixture.qxf:C1/Color Wheel rotation stop (Stop): Non contiguous range detected 224/224 ./manufacturer/fixture.qxf: Invalid physical dimensions detected 1 definitions processed. 11 errors detected
cameo / otos-b5: qlcplus_4.12.2 / xsd-schema-conformity
  • ❌ fixtures/cameo-Otos-B5.qxfElement '{http://www.qlcplus.org/FixtureDefinition}Dimensions', attribute 'Weight': [facet 'minExclusive'] The value '0' must be greater than '0'.
    Element '{http://www.qlcplus.org/FixtureDefinition}Dimensions', attribute 'Width': '0' is not a valid value of the atomic type 'xs:positiveInteger'.
    Element '{http://www.qlcplus.org/FixtureDefinition}Dimensions', attribute 'Height': '0' is not a valid value of the atomic type 'xs:positiveInteger'.
    Element '{http://www.qlcplus.org/FixtureDefinition}Dimensions', attribute 'Depth': '0' is not a valid value of the atomic type 'xs:positiveInteger'.

github-actions[bot] avatar Dec 08 '25 14:12 github-actions[bot]

This is an very long mapping, because it's an automatic GDTF conversion. Every color channel is (pointlessly) broken into 3 capabilities. Every range seems to go from "0" to "1", even where this makes no sense. I looked at the gobo wheel, and the values are all wrong.

Good news: there is a great DMX mapping table on the Cameo webpage, so someone could definitely add this fixture. It may be easier to start from scratch, though.

kengruven avatar Dec 12 '25 18:12 kengruven