diff --git a/config/hyperion.config.json b/config/hyperion.config.json index 8a8f6065..9f933ecb 100644 --- a/config/hyperion.config.json +++ b/config/hyperion.config.json @@ -2,390 +2,390 @@ // Generated by: HyperCon (The Hyperion deamon configuration file builder { - /// Device configuration contains the following fields: - /// * 'name' : The user friendly name of the device (only used for display purposes) - /// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'test' and 'none') - /// * 'output' : The output specification depends on selected device - /// - 'ws2801' this is the device (eg '/dev/spidev0.0') - /// - 'test' this is the file used to write test output (eg '/home/pi/hyperion.out') - /// * 'rate' : The baudrate of the output to the device (only applicable for 'ws2801') - /// * 'bgr-output' : Use BGR output instead of RGB (reverse red and blue). - "device" : - { - "name" : "MyPi", - "type" : "ws2801", - "output" : "/dev/spidev0.0", - "rate" : 1000000, - "bgr-output" : false - }, + /// Device configuration contains the following fields: + /// * 'name' : The user friendly name of the device (only used for display purposes) + /// * 'type' : The type of the device or leds (known types for now are 'ws2801', 'ldp6803', 'test' and 'none') + /// * 'output' : The output specification depends on selected device + /// - 'ws2801' this is the device (eg '/dev/spidev0.0') + /// - 'test' this is the file used to write test output (eg '/home/pi/hyperion.out') + /// * 'rate' : The baudrate of the output to the device (only applicable for 'ws2801') + /// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.). + "device" : + { + "name" : "MyPi", + "type" : "ws2801", + "output" : "/dev/spidev0.0", + "rate" : 1000000, + "colorOrder" : "rgb" + }, - /// Color manipulation configuration used to tune the output colors to specific surroundings. Contains the following fields: - /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following tuning parameters: - /// - 'saturationGain' The gain adjustement of the saturation - /// - 'valueGain' The gain adjustement of the value - /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the following tuning parameters for each channel: - /// - 'threshold' The minimum required input value for the channel to be on (else zero) - /// - 'gamma' The gamma-curve correction factor - /// - 'blacklevel' The lowest possible value (when the channel is black) - /// - 'whitelevel' The highest possible value (when the channel is white) - /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning parameters: - /// - 'type' The type of smoothing algorithm ('linear' or 'none') - /// - 'time_ms' The time constant for smoothing algorithm in milliseconds - /// - 'updateFrequency' The update frequency of the leds in Hz - "color" : - { - "hsv" : - { - "saturationGain" : 1.0000, - "valueGain" : 1.5000 - }, - "red" : - { - "threshold" : 0.1000, - "gamma" : 2.0000, - "blacklevel" : 0.0000, - "whitelevel" : 0.8000 - }, - "green" : - { - "threshold" : 0.1000, - "gamma" : 2.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 - }, - "blue" : - { - "threshold" : 0.1000, - "gamma" : 2.0000, - "blacklevel" : 0.0000, - "whitelevel" : 1.0000 - }, - "smoothing" : - { - "type" : "none", - "time_ms" : 200, - "updateFrequency" : 20.0000 - } - }, + /// Color manipulation configuration used to tune the output colors to specific surroundings. Contains the following fields: + /// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following tuning parameters: + /// - 'saturationGain' The gain adjustement of the saturation + /// - 'valueGain' The gain adjustement of the value + /// * 'red'/'green'/'blue' : The manipulation in the Red-Green-Blue color domain with the following tuning parameters for each channel: + /// - 'threshold' The minimum required input value for the channel to be on (else zero) + /// - 'gamma' The gamma-curve correction factor + /// - 'blacklevel' The lowest possible value (when the channel is black) + /// - 'whitelevel' The highest possible value (when the channel is white) + /// * 'smoothing' : Smoothing of the colors in the time-domain with the following tuning parameters: + /// - 'type' The type of smoothing algorithm ('linear' or 'none') + /// - 'time_ms' The time constant for smoothing algorithm in milliseconds + /// - 'updateFrequency' The update frequency of the leds in Hz + "color" : + { + "hsv" : + { + "saturationGain" : 1.0000, + "valueGain" : 1.5000 + }, + "red" : + { + "threshold" : 0.1000, + "gamma" : 2.0000, + "blacklevel" : 0.0000, + "whitelevel" : 0.8000 + }, + "green" : + { + "threshold" : 0.1000, + "gamma" : 2.0000, + "blacklevel" : 0.0000, + "whitelevel" : 1.0000 + }, + "blue" : + { + "threshold" : 0.1000, + "gamma" : 2.0000, + "blacklevel" : 0.0000, + "whitelevel" : 1.0000 + }, + "smoothing" : + { + "type" : "none", + "time_ms" : 200, + "updateFrequency" : 20.0000 + } + }, - /// The configuration for each individual led. This contains the specification of the area - /// averaged of an input image for each led to determine its color. Each item in the list - /// contains the following fields: - /// * index: The index of the led. This determines its location in the string of leds; zero - /// being the first led. - /// * hscan: The fractional part of the image along the horizontal used for the averaging - /// (minimum and maximum inclusive) - /// * vscan: The fractional part of the image along the vertical used for the averaging - /// (minimum and maximum inclusive) - "leds" : - [ - { - "index" : 0, - "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 1, - "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 2, - "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 3, - "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 4, - "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 5, - "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 6, - "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 7, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 8, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 9, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } - }, - { - "index" : 10, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } - }, - { - "index" : 11, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } - }, - { - "index" : 12, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } - }, - { - "index" : 13, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } - }, - { - "index" : 14, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } - }, - { - "index" : 15, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } - }, - { - "index" : 16, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 17, - "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 18, - "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 19, - "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 20, - "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 21, - "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 22, - "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 23, - "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 24, - "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 25, - "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 26, - "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 27, - "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 28, - "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 29, - "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 30, - "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 31, - "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 32, - "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 33, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } - }, - { - "index" : 34, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } - }, - { - "index" : 35, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } - }, - { - "index" : 36, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } - }, - { - "index" : 37, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } - }, - { - "index" : 38, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } - }, - { - "index" : 39, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } - }, - { - "index" : 40, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } - }, - { - "index" : 41, - "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 42, - "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 43, - "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 44, - "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 45, - "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 46, - "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 47, - "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 48, - "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - }, - { - "index" : 49, - "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, - "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } - } - ], + /// The configuration for each individual led. This contains the specification of the area + /// averaged of an input image for each led to determine its color. Each item in the list + /// contains the following fields: + /// * index: The index of the led. This determines its location in the string of leds; zero + /// being the first led. + /// * hscan: The fractional part of the image along the horizontal used for the averaging + /// (minimum and maximum inclusive) + /// * vscan: The fractional part of the image along the vertical used for the averaging + /// (minimum and maximum inclusive) + "leds" : + [ + { + "index" : 0, + "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 1, + "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 2, + "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 3, + "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 4, + "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 5, + "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 6, + "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 7, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 8, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 9, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } + }, + { + "index" : 10, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } + }, + { + "index" : 11, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } + }, + { + "index" : 12, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } + }, + { + "index" : 13, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } + }, + { + "index" : 14, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } + }, + { + "index" : 15, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } + }, + { + "index" : 16, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 17, + "hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 18, + "hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 19, + "hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 20, + "hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 21, + "hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 22, + "hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 23, + "hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 24, + "hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 25, + "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 26, + "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 27, + "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 28, + "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 29, + "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 30, + "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 31, + "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 32, + "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 33, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 } + }, + { + "index" : 34, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 } + }, + { + "index" : 35, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 } + }, + { + "index" : 36, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 } + }, + { + "index" : 37, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 } + }, + { + "index" : 38, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 } + }, + { + "index" : 39, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 } + }, + { + "index" : 40, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 } + }, + { + "index" : 41, + "hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 42, + "hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 43, + "hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 44, + "hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 45, + "hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 46, + "hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 47, + "hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 48, + "hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + }, + { + "index" : 49, + "hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 }, + "vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 } + } + ], - /// The black border configuration, contains the following items: - /// * enable : true if the detector should be activated - "blackborderdetector" : - { - "enable" : true - }, + /// The black border configuration, contains the following items: + /// * enable : true if the detector should be activated + "blackborderdetector" : + { + "enable" : true + }, - /// The boot-sequence configuration, contains the following items: - /// * type : The type of the boot-sequence ('rainbow', 'knight_rider', 'none') - /// * duration_ms : The length of the boot-sequence [ms] - "bootsequence" : - { - "type" : "Rainbow", - "duration_ms" : 3000 - }, + /// The boot-sequence configuration, contains the following items: + /// * type : The type of the boot-sequence ('rainbow', 'knight_rider', 'none') + /// * duration_ms : The length of the boot-sequence [ms] + "bootsequence" : + { + "type" : "Rainbow", + "duration_ms" : 3000 + }, - /// The configuration for the frame-grabber, contains the following items: - /// * width : The width of the grabbed frames [pixels] - /// * height : The height of the grabbed frames [pixels] - /// * frequency_Hz : The frequency of the frame grab [Hz] - "framegrabber" : - { - "width" : 64, - "height" : 64, - "frequency_Hz" : 10.0 - }, + /// The configuration for the frame-grabber, contains the following items: + /// * width : The width of the grabbed frames [pixels] + /// * height : The height of the grabbed frames [pixels] + /// * frequency_Hz : The frequency of the frame grab [Hz] + "framegrabber" : + { + "width" : 64, + "height" : 64, + "frequency_Hz" : 10.0 + }, - /// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: - /// * xbmcAddress : The IP address of the XBMC-host - /// * xbmcTcpPort : The TCP-port of the XBMC-server - /// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback - /// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show - /// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback - /// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu - "xbmcVideoChecker" : - { - "xbmcAddress" : "127.0.0.1", - "xbmcTcpPort" : 9090, - "grabVideo" : true, - "grabPictures" : true, - "grabAudio" : true, - "grabMenu" : false - }, + /// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields: + /// * xbmcAddress : The IP address of the XBMC-host + /// * xbmcTcpPort : The TCP-port of the XBMC-server + /// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback + /// * grabPictures : Flag indicating that the frame-grabber is on(true) during picture show + /// * grabAudio : Flag indicating that the frame-grabber is on(true) during audio playback + /// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu + "xbmcVideoChecker" : + { + "xbmcAddress" : "127.0.0.1", + "xbmcTcpPort" : 9090, + "grabVideo" : true, + "grabPictures" : true, + "grabAudio" : true, + "grabMenu" : false + }, - /// The configuration of the Json server which enables the json remote interface - /// * port : Port at which the json server is started - "jsonServer" : - { - "port" : 19444 - }, + /// The configuration of the Json server which enables the json remote interface + /// * port : Port at which the json server is started + "jsonServer" : + { + "port" : 19444 + }, - /// The configuration of the Proto server which enables the protobuffer remote interface - /// * port : Port at which the protobuffer server is started - "protoServer" : - { - "port" : 19445 - } + /// The configuration of the Proto server which enables the protobuffer remote interface + /// * port : Port at which the protobuffer server is started + "protoServer" : + { + "port" : 19445 + } } diff --git a/deploy/HyperCon.jar.REMOVED.git-id b/deploy/HyperCon.jar.REMOVED.git-id index d20b95cb..4816c9b1 100644 --- a/deploy/HyperCon.jar.REMOVED.git-id +++ b/deploy/HyperCon.jar.REMOVED.git-id @@ -1 +1 @@ -6f2aab422e3d1b03080de92c3e3aea9b270a3e9b \ No newline at end of file +5a45be79a986ebe2dde72420862801608de41fa2 \ No newline at end of file diff --git a/deploy/hyperion-remote b/deploy/hyperion-remote index 5d5eea63..1d39d89b 100755 Binary files a/deploy/hyperion-remote and b/deploy/hyperion-remote differ diff --git a/deploy/hyperiond.REMOVED.git-id b/deploy/hyperiond.REMOVED.git-id index a9cf374e..96866a37 100644 --- a/deploy/hyperiond.REMOVED.git-id +++ b/deploy/hyperiond.REMOVED.git-id @@ -1 +1 @@ -e027a9a48c14dcffacb9539ede8ddca32cba2171 \ No newline at end of file +632c368d0a5ce42aff067c6ba5f63dbe108dddc9 \ No newline at end of file diff --git a/include/hyperion/Hyperion.h b/include/hyperion/Hyperion.h index 7718f205..42ce51df 100644 --- a/include/hyperion/Hyperion.h +++ b/include/hyperion/Hyperion.h @@ -46,6 +46,12 @@ public: SATURATION_GAIN, VALUE_GAIN, THRESHOLD, GAMMA, BLACKLEVEL, WHITELEVEL }; + /// Enumeration containing the possible orders of device color byte data + enum ColorOrder + { + ORDER_RGB, ORDER_RBG, ORDER_GRB, ORDER_BRG, ORDER_GBR, ORDER_BGR + }; + /// /// Constructs the Hyperion instance based on the given Json configuration /// @@ -136,6 +142,7 @@ public: const InputInfo& getPriorityInfo(const int priority) const; static LedDevice * createDevice(const Json::Value & deviceConfig); + static ColorOrder createColorOrder(const Json::Value & deviceConfig); static LedString createLedString(const Json::Value & ledsConfig); static HsvTransform * createHsvTransform(const Json::Value & hsvConfig); static ColorTransform * createColorTransform(const Json::Value & colorConfig); @@ -172,8 +179,8 @@ private: /// The BLUE-Channel (RGB) transform ColorTransform * _blueTransform; - /// Flag indicating if the output should be BGR (red and blue reversed) - bool _haveBgrOutput; + /// Value with the desired color byte order + ColorOrder _colorOrder; /// The actual LedDevice LedDevice * _device; diff --git a/libsrc/hyperion/Hyperion.cpp b/libsrc/hyperion/Hyperion.cpp index bb26103b..4c3aa840 100644 --- a/libsrc/hyperion/Hyperion.cpp +++ b/libsrc/hyperion/Hyperion.cpp @@ -60,6 +60,47 @@ LedDevice* Hyperion::createDevice(const Json::Value& deviceConfig) return device; } +Hyperion::ColorOrder Hyperion::createColorOrder(const Json::Value &deviceConfig) +{ + // deprecated: force BGR when the deprecated flag is present and set to true + if (deviceConfig.get("bgr-output", false).asBool()) + { + return ORDER_BGR; + } + + std::string order = deviceConfig.get("colorOrder", "rgb").asString(); + if (order == "rgb") + { + return ORDER_RGB; + } + else if (order == "bgr") + { + return ORDER_BGR; + } + else if (order == "rbg") + { + return ORDER_RBG; + } + else if (order == "brg") + { + return ORDER_BRG; + } + else if (order == "gbr") + { + return ORDER_GBR; + } + else if (order == "grb") + { + return ORDER_GRB; + } + else + { + std::cout << "Unknown color order defined (" << order << "). Using RGB." << std::endl; + } + + return ORDER_RGB; +} + HsvTransform * Hyperion::createHsvTransform(const Json::Value & hsvConfig) { const double saturationGain = hsvConfig.get("saturationGain", 1.0).asDouble(); @@ -143,6 +184,7 @@ LedDevice * Hyperion::createColorSmoothing(const Json::Value & smoothingConfig, return ledDevice; } + Hyperion::Hyperion(const Json::Value &jsonConfig) : _ledString(createLedString(jsonConfig["leds"])), _muxer(_ledString.leds().size()), @@ -150,7 +192,7 @@ Hyperion::Hyperion(const Json::Value &jsonConfig) : _redTransform(createColorTransform(jsonConfig["color"]["red"])), _greenTransform(createColorTransform(jsonConfig["color"]["green"])), _blueTransform(createColorTransform(jsonConfig["color"]["blue"])), - _haveBgrOutput(jsonConfig["device"].get("bgr-output", false).asBool()), + _colorOrder(createColorOrder(jsonConfig["device"])), _device(createDevice(jsonConfig["device"])), _timer() { @@ -366,9 +408,37 @@ void Hyperion::update() color.green = _greenTransform->transform(color.green); color.blue = _blueTransform->transform(color.blue); - if (_haveBgrOutput) + // correct the color byte order + switch (_colorOrder) { + case ORDER_RGB: + // leave as it is + break; + case ORDER_BGR: std::swap(color.red, color.blue); + break; + case ORDER_RBG: + std::swap(color.green, color.blue); + break; + case ORDER_GRB: + std::swap(color.red, color.green); + break; + case ORDER_GBR: + { + uint8_t temp = color.red; + color.red = color.green; + color.green = color.blue; + color.blue = temp; + break; + } + case ORDER_BRG: + { + uint8_t temp = color.red; + color.red = color.blue; + color.blue = color.green; + color.green = temp; + break; + } } } diff --git a/libsrc/hyperion/LedDeviceLdp6803.cpp b/libsrc/hyperion/LedDeviceLdp6803.cpp index df0c0264..11c6a246 100644 --- a/libsrc/hyperion/LedDeviceLdp6803.cpp +++ b/libsrc/hyperion/LedDeviceLdp6803.cpp @@ -20,31 +20,23 @@ LedDeviceLdp6803::LedDeviceLdp6803(const std::string& outputDevice, const unsign int LedDeviceLdp6803::write(const std::vector &ledValues) { // Reconfigure if the current connfiguration does not match the required configuration - if (ledValues.size() != _ledBuffer.size()) + if (4 + 2*ledValues.size() != _ledBuffer.size()) { - // Initialise the buffer with all 'black' values - _ledBuffer.resize(ledValues.size() + 2, 0x80); - _ledBuffer[0] = 0; - _ledBuffer[1] = 0; + // Initialise the buffer + _ledBuffer.resize(4 + 2*ledValues.size(), 0x00); } - // Copy the colors from the RgbColor vector to the Ldp6803Rgb vector + // Copy the colors from the RgbColor vector to the Ldp6803 data vector for (unsigned iLed=0; iLed> 3); - - _ledBuffer[iLed + 2] = packedRgb; + _ledBuffer[4 + 2 * iLed] = 0x80 | ((rgb.red & 0xf8) >> 1) | (rgb.green >> 6); + _ledBuffer[5 + 2 * iLed] = ((rgb.green & 0x38) << 2) | (rgb.blue >> 3); } // Write the data - const unsigned bufCnt = _ledBuffer.size() * sizeof(short); - const char * bufPtr = reinterpret_cast(_ledBuffer.data()); - if (latch(bufCnt, bufPtr, 0) < 0) + if (writeBytes(_ledBuffer.size(), _ledBuffer.data()) < 0) { return -1; } diff --git a/libsrc/hyperion/LedDeviceLdp6803.h b/libsrc/hyperion/LedDeviceLdp6803.h index ee57e1e5..096468c2 100644 --- a/libsrc/hyperion/LedDeviceLdp6803.h +++ b/libsrc/hyperion/LedDeviceLdp6803.h @@ -6,12 +6,12 @@ /// /// Implementation of the LedDevice interface for writing to LDP6803 led device. /// -/// 00000000 00000000 00000000 00000000 1XXXXXYY YYYZZZZZ 1XXXXXYY YYYZZZZZ ... +/// 00000000 00000000 00000000 00000000 1RRRRRGG GGGBBBBB 1RRRRRGG GGGBBBBB ... /// |---------------------------------| |---------------| |---------------| /// 32 zeros to start the frame Led1 Led2 ... /// /// For each led, the first bit is always 1, and then you have 5 bits each for red, green and blue -/// (X, Y and Z in the above illustration) making 16 bits per led. Total bits = 32 + (16 x number of +/// (R, G and B in the above illustration) making 16 bits per led. Total bytes = 4 + (2 x number of /// leds) /// class LedDeviceLdp6803 : public LedSpiDevice @@ -20,7 +20,7 @@ public: /// /// Constructs the LedDevice for a string containing leds of the type LDP6803 /// - /// @param[in] outputDevice The name of the output device (eg '/etc/SpiDev.0.0') + /// @param[in] outputDevice The name of the output device (eg '/dev/spidev0.0') /// @param[in] baudrate The used baudrate for writing to the output device /// LedDeviceLdp6803(const std::string& outputDevice, const unsigned baudrate); @@ -38,5 +38,5 @@ public: private: /// The buffer containing the packed RGB values - std::vector _ledBuffer; + std::vector _ledBuffer; }; diff --git a/libsrc/hyperion/LedDeviceWs2801.cpp b/libsrc/hyperion/LedDeviceWs2801.cpp index 2c95e80e..05d06119 100644 --- a/libsrc/hyperion/LedDeviceWs2801.cpp +++ b/libsrc/hyperion/LedDeviceWs2801.cpp @@ -12,7 +12,7 @@ #include "LedDeviceWs2801.h" LedDeviceWs2801::LedDeviceWs2801(const std::string& outputDevice, const unsigned baudrate) : - LedSpiDevice(outputDevice, baudrate), + LedSpiDevice(outputDevice, baudrate, 500000), mLedCount(0) { // empty @@ -23,10 +23,9 @@ int LedDeviceWs2801::write(const std::vector &ledValues) mLedCount = ledValues.size(); const unsigned dataLen = ledValues.size() * sizeof(RgbColor); - const char * dataPtr = reinterpret_cast(ledValues.data()); + const uint8_t * dataPtr = reinterpret_cast(ledValues.data()); - const int retVal = latch(dataLen, dataPtr, 500000); - return retVal; + return writeBytes(dataLen, dataPtr); } int LedDeviceWs2801::switchOff() diff --git a/libsrc/hyperion/LedSpiDevice.cpp b/libsrc/hyperion/LedSpiDevice.cpp index 7c99b6fa..a4c7125c 100644 --- a/libsrc/hyperion/LedSpiDevice.cpp +++ b/libsrc/hyperion/LedSpiDevice.cpp @@ -12,9 +12,10 @@ #include "LedSpiDevice.h" -LedSpiDevice::LedSpiDevice(const std::string& outputDevice, const unsigned baudrate) : +LedSpiDevice::LedSpiDevice(const std::string& outputDevice, const unsigned baudrate, const int latchTime_ns) : mDeviceName(outputDevice), mBaudRate_Hz(baudrate), + mLatchTime_ns(latchTime_ns), mFid(-1) { memset(&spi, 0, sizeof(spi)); @@ -56,30 +57,28 @@ int LedSpiDevice::open() return 0; } -int LedSpiDevice::latch(const unsigned len, const char * vec, const int latchTime_ns) +int LedSpiDevice::writeBytes(const unsigned size, const uint8_t * data) { - if (mFid < 0) { return -1; } - spi.tx_buf = __u64(vec); - spi.len = __u32(len); + spi.tx_buf = __u64(data); + spi.len = __u32(size); int retVal = ioctl(mFid, SPI_IOC_MESSAGE(1), &spi); - if (retVal == 0 && latchTime_ns > 0) + if (retVal == 0 && mLatchTime_ns > 0) { // The 'latch' time for latching the shifted-value into the leds timespec latchTime; latchTime.tv_sec = 0; - latchTime.tv_nsec = latchTime_ns; + latchTime.tv_nsec = mLatchTime_ns; // Sleep to latch the leds (only if write succesfull) nanosleep(&latchTime, NULL); } return retVal; - } diff --git a/libsrc/hyperion/LedSpiDevice.h b/libsrc/hyperion/LedSpiDevice.h index bdeb9b38..51d03bfb 100644 --- a/libsrc/hyperion/LedSpiDevice.h +++ b/libsrc/hyperion/LedSpiDevice.h @@ -18,7 +18,7 @@ public: /// @param[in] outputDevice The name of the output device (eg '/etc/SpiDev.0.0') /// @param[in] baudrate The used baudrate for writing to the output device /// - LedSpiDevice(const std::string& outputDevice, const unsigned baudrate); + LedSpiDevice(const std::string& outputDevice, const unsigned baudrate, const int latchTime_ns = -1); /// /// Destructor of the LedDevice; closes the output device if it is open @@ -37,20 +37,22 @@ protected: * Writes the given bytes/bits to the SPI-device and sleeps the latch time to ensure that the * values are latched. * - * @param[in[ len The length of the data - * @param[in] vec The data + * @param[in[ size The length of the data + * @param[in] data The data * @param[in] latchTime_ns The latch-time to latch in the values across the SPI-device (negative * means no latch required) [ns] * * @return Zero on succes else negative */ - int latch(const unsigned len, const char * vec, const int latchTime_ns); + int writeBytes(const unsigned size, const uint8_t *data); private: /// The name of the output device const std::string mDeviceName; /// The used baudrate of the output device const int mBaudRate_Hz; + /// The time which the device should be untouched after a write + const int mLatchTime_ns; /// The File Identifier of the opened output device (or -1 if not opened) int mFid; diff --git a/libsrc/hyperion/hyperion.schema.json b/libsrc/hyperion/hyperion.schema.json index 31683d5d..7cd24ef7 100644 --- a/libsrc/hyperion/hyperion.schema.json +++ b/libsrc/hyperion/hyperion.schema.json @@ -23,7 +23,11 @@ "required" : true, "minimum" : 0 }, - "bgr-output" : { + "colorOrder" : { + "type" : "string", + "required" : false + }, + "bgr-output" : { // deprecated "type" : "boolean", "required" : false } diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/LedString.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/LedString.java index 7c343e06..1c96616d 100644 --- a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/LedString.java +++ b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/LedString.java @@ -21,6 +21,7 @@ public class LedString { /** THe configuration of the 'physical' led frame */ public LedFrameConstruction mLedFrameConfig = new LedFrameConstruction(); + /** The configuration of the image processing */ public ImageProcessConfig mProcessConfig = new ImageProcessConfig(); diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/gui/DevicePanel.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/gui/DevicePanel.java index ae8b64be..4d8b0f7d 100644 --- a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/gui/DevicePanel.java +++ b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/gui/DevicePanel.java @@ -7,8 +7,8 @@ import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JPanel; +import org.hyperion.hypercon.spec.ColorByteOrder; import org.hyperion.hypercon.spec.DeviceConfig; -import org.hyperion.hypercon.spec.RgbByteOrder; public class DevicePanel extends JPanel { @@ -21,7 +21,7 @@ public class DevicePanel extends JPanel { private JComboBox mBaudrateCombo; private JLabel mRgbLabel; - private JComboBox mRgbCombo; + private JComboBox mRgbCombo; public DevicePanel(DeviceConfig pDeviceConfig) { super(); @@ -52,8 +52,8 @@ public class DevicePanel extends JPanel { mRgbLabel = new JLabel("RGB Byte Order"); add(mRgbLabel); - mRgbCombo = new JComboBox<>(RgbByteOrder.values()); - mRgbCombo.setSelectedItem(mDeviceConfig.mRgbByteOrder); + mRgbCombo = new JComboBox<>(ColorByteOrder.values()); + mRgbCombo.setSelectedItem(mDeviceConfig.mColorByteOrder); mRgbCombo.addActionListener(mActionListener); add(mRgbCombo); } @@ -63,7 +63,7 @@ public class DevicePanel extends JPanel { public void actionPerformed(ActionEvent e) { mDeviceConfig.mOutput = (String)mOutputCombo.getSelectedItem(); mDeviceConfig.mBaudrate = (Integer)mBaudrateCombo.getSelectedItem(); - mDeviceConfig.mRgbByteOrder = (RgbByteOrder)mRgbCombo.getSelectedItem(); + mDeviceConfig.mColorByteOrder = (ColorByteOrder)mRgbCombo.getSelectedItem(); } }; } diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/ColorByteOrder.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/ColorByteOrder.java new file mode 100644 index 00000000..c301ffc9 --- /dev/null +++ b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/ColorByteOrder.java @@ -0,0 +1,5 @@ +package org.hyperion.hypercon.spec; + +public enum ColorByteOrder { + RGB, RBG, BRG, BGR, GRB, GBR +} diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/DeviceConfig.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/DeviceConfig.java index ae8607c7..cb3492c8 100644 --- a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/DeviceConfig.java +++ b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/DeviceConfig.java @@ -1,21 +1,20 @@ package org.hyperion.hypercon.spec; - /** * The device specific configuration */ public class DeviceConfig { /** The name of the device */ - public String mName = "MyPi"; + public String mName = "MyPi"; /** The type specification of the device */ - public DeviceType mType = DeviceType.ws2801; + public DeviceType mType = DeviceType.ws2801; /** The device 'file' name */ - public String mOutput = "/dev/spidev0.0"; + public String mOutput = "/dev/spidev0.0"; /** The baudrate of the device */ - public int mBaudrate = 1000000; - /** Ordering of the rgb-color channels */ - public RgbByteOrder mRgbByteOrder = RgbByteOrder.rbg; + public int mBaudrate = 1000000; + /** The order of the color bytes */ + public ColorByteOrder mColorByteOrder = ColorByteOrder.RGB; /** * Creates the JSON string of the configuration as used in the Hyperion daemon configfile @@ -32,7 +31,7 @@ public class DeviceConfig { strBuf.append("\t/// - 'ws2801' this is the device (eg '/dev/spidev0.0')\n"); strBuf.append("\t/// - 'test' this is the file used to write test output (eg '/home/pi/hyperion.out')\n"); strBuf.append("\t/// * 'rate' : The baudrate of the output to the device (only applicable for 'ws2801')\n"); - strBuf.append("\t/// * 'colorOrder' : The order of the byte color channel (rgb, rbg, bgr, brg, gbr, grb).\n"); + strBuf.append("\t/// * 'colorOrder' : The order of the color bytes ('rgb', 'rbg', 'bgr', etc.).\n"); strBuf.append("\t\"device\" :\n"); strBuf.append("\t{\n"); @@ -41,11 +40,10 @@ public class DeviceConfig { strBuf.append("\t\t\"type\" : \"").append(mType.name()).append("\",\n"); strBuf.append("\t\t\"output\" : \"").append(mOutput).append("\",\n"); strBuf.append("\t\t\"rate\" : ").append(mBaudrate).append(",\n"); - strBuf.append("\t\t\"colorOrder\" : ").append(mRgbByteOrder.name()).append("\n"); + strBuf.append("\t\t\"colorOrder\" : \"").append(mColorByteOrder.name().toLowerCase()).append("\"\n"); strBuf.append("\t}"); return strBuf.toString(); } - } diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/RgbByteOrder.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/RgbByteOrder.java deleted file mode 100644 index baa46b8a..00000000 --- a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/spec/RgbByteOrder.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.hyperion.hypercon.spec; - -public enum RgbByteOrder { - rgb, - rbg, - grb, - gbr, - brg, - bgr; - -} diff --git a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/test/TesConfigWriter.java b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/test/TesConfigWriter.java index 4de723af..11a842ff 100644 --- a/src/config-tool/ConfigTool/src/org/hyperion/hypercon/test/TesConfigWriter.java +++ b/src/config-tool/ConfigTool/src/org/hyperion/hypercon/test/TesConfigWriter.java @@ -1,13 +1,13 @@ package org.hyperion.hypercon.test; import org.hyperion.hypercon.ConfigurationFile; +import org.hyperion.hypercon.spec.ColorByteOrder; import org.hyperion.hypercon.spec.ColorConfig; import org.hyperion.hypercon.spec.DeviceConfig; import org.hyperion.hypercon.spec.DeviceType; import org.hyperion.hypercon.spec.ImageProcessConfig; import org.hyperion.hypercon.spec.LedFrameConstruction; import org.hyperion.hypercon.spec.MiscConfig; -import org.hyperion.hypercon.spec.RgbByteOrder; public class TesConfigWriter { @@ -19,7 +19,7 @@ public class TesConfigWriter { MiscConfig miscConfig = new MiscConfig(); deviceConfig.mBaudrate = 4800; - deviceConfig.mRgbByteOrder = RgbByteOrder.bgr; + deviceConfig.mColorByteOrder = ColorByteOrder.BGR; deviceConfig.mName = "DAG"; deviceConfig.mOutput = "/dev/null"; deviceConfig.mType = DeviceType.ldp6803;