mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
Added some extra checks to be more tolerant for configration faults
Former-commit-id: 5061311d8116f848f36808f2c77dcff011ceb571
This commit is contained in:
parent
d50aec63f7
commit
64b9316a04
@ -2,371 +2,371 @@
|
|||||||
// Generated by: HyperCon (The Hyperion deamon configuration file builder
|
// Generated by: HyperCon (The Hyperion deamon configuration file builder
|
||||||
|
|
||||||
{
|
{
|
||||||
/// Device configuration contains the following fields:
|
/// Device configuration contains the following fields:
|
||||||
/// * 'name' : The user friendly name of the device (only used for display purposes)
|
/// * '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')
|
/// * '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
|
/// * 'output' : The output specification depends on selected device
|
||||||
/// - 'ws2801' this is the device (eg '/dev/spidev0.0')
|
/// - 'ws2801' this is the device (eg '/dev/spidev0.0')
|
||||||
/// - 'test' this is the file used to write test output (eg '/home/pi/hyperion.out')
|
/// - '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')
|
/// * 'rate' : The baudrate of the output to the device (only applicable for 'ws2801')
|
||||||
"device" :
|
"device" :
|
||||||
{
|
{
|
||||||
"name" : "MyPi",
|
"name" : "MyPi",
|
||||||
"type" : "ws2801",
|
"type" : "ws2801",
|
||||||
"output" : "/dev/spidev0.0",
|
"output" : "/dev/spidev0.0",
|
||||||
"rate" : 1000000
|
"rate" : 1000000
|
||||||
},
|
},
|
||||||
|
|
||||||
/// Color manipulation configuration used to tune the output colors to specific surroundings. Contains the following fields:
|
/// 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:
|
/// * 'hsv' : The manipulation in the Hue-Saturation-Value color domain with the following tuning parameters:
|
||||||
/// - 'saturationGain' The gain adjustement of the saturation
|
/// - 'saturationGain' The gain adjustement of the saturation
|
||||||
/// - 'valueGain' The gain adjustement of the value
|
/// - '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:
|
/// * '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)
|
/// - 'threshold' The minimum required input value for the channel to be on (else zero)
|
||||||
/// - 'gamma' The gamma-curve correction factor
|
/// - 'gamma' The gamma-curve correction factor
|
||||||
/// - 'blacklevel' The lowest possible value (when the channel is black)
|
/// - 'blacklevel' The lowest possible value (when the channel is black)
|
||||||
/// - 'whitelevel' The highest possible value (when the channel is white)
|
/// - 'whitelevel' The highest possible value (when the channel is white)
|
||||||
"color" :
|
"color" :
|
||||||
{
|
{
|
||||||
"hsv" :
|
"hsv" :
|
||||||
{
|
{
|
||||||
"saturationGain" : 1.0000,
|
"saturationGain" : 1.0000,
|
||||||
"valuGain" : 1.5000
|
"valueGain" : 1.5000
|
||||||
},
|
},
|
||||||
"red" :
|
"red" :
|
||||||
{
|
{
|
||||||
"threshold" : 0.1000,
|
"threshold" : 0.1000,
|
||||||
"gamma" : 2.0000,
|
"gamma" : 2.0000,
|
||||||
"blacklevel" : 0.0000,
|
"blacklevel" : 0.0000,
|
||||||
"whitelevel" : 0.8000
|
"whitelevel" : 0.8000
|
||||||
},
|
},
|
||||||
"green" :
|
"green" :
|
||||||
{
|
{
|
||||||
"threshold" : 0.1000,
|
"threshold" : 0.1000,
|
||||||
"gamma" : 2.0000,
|
"gamma" : 2.0000,
|
||||||
"blacklevel" : 0.0000,
|
"blacklevel" : 0.0000,
|
||||||
"whitelevel" : 1.0000
|
"whitelevel" : 1.0000
|
||||||
},
|
},
|
||||||
"blue" :
|
"blue" :
|
||||||
{
|
{
|
||||||
"threshold" : 0.1000,
|
"threshold" : 0.1000,
|
||||||
"gamma" : 2.0000,
|
"gamma" : 2.0000,
|
||||||
"blacklevel" : 0.0000,
|
"blacklevel" : 0.0000,
|
||||||
"whitelevel" : 1.0000
|
"whitelevel" : 1.0000
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/// The configuration for each individual led. This contains the specification of the area
|
/// 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
|
/// averaged of an input image for each led to determine its color. Each item in the list
|
||||||
/// contains the following fields:
|
/// contains the following fields:
|
||||||
/// * index: The index of the led. This determines its location in the string of leds; zero
|
/// * index: The index of the led. This determines its location in the string of leds; zero
|
||||||
/// being the first led.
|
/// being the first led.
|
||||||
/// * hscan: The fractional part of the image along the horizontal used for the averaging
|
/// * hscan: The fractional part of the image along the horizontal used for the averaging
|
||||||
/// (minimum and maximum inclusive)
|
/// (minimum and maximum inclusive)
|
||||||
/// * vscan: The fractional part of the image along the vertical used for the averaging
|
/// * vscan: The fractional part of the image along the vertical used for the averaging
|
||||||
/// (minimum and maximum inclusive)
|
/// (minimum and maximum inclusive)
|
||||||
"leds" :
|
"leds" :
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"index" : 0,
|
"index" : 0,
|
||||||
"hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 },
|
"hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 1,
|
"index" : 1,
|
||||||
"hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 },
|
"hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 2,
|
"index" : 2,
|
||||||
"hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 },
|
"hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 3,
|
"index" : 3,
|
||||||
"hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 },
|
"hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 4,
|
"index" : 4,
|
||||||
"hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 },
|
"hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 5,
|
"index" : 5,
|
||||||
"hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 },
|
"hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 6,
|
"index" : 6,
|
||||||
"hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 },
|
"hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 7,
|
"index" : 7,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 8,
|
"index" : 8,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 9,
|
"index" : 9,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 10,
|
"index" : 10,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 }
|
"vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 11,
|
"index" : 11,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 }
|
"vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 12,
|
"index" : 12,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 }
|
"vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 13,
|
"index" : 13,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 }
|
"vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 14,
|
"index" : 14,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 }
|
"vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 15,
|
"index" : 15,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 16,
|
"index" : 16,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0500 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 17,
|
"index" : 17,
|
||||||
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 },
|
"hscan" : { "minimum" : 0.0000, "maximum" : 0.0625 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 18,
|
"index" : 18,
|
||||||
"hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 },
|
"hscan" : { "minimum" : 0.0625, "maximum" : 0.1250 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 19,
|
"index" : 19,
|
||||||
"hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 },
|
"hscan" : { "minimum" : 0.1250, "maximum" : 0.1875 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 20,
|
"index" : 20,
|
||||||
"hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 },
|
"hscan" : { "minimum" : 0.1875, "maximum" : 0.2500 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 21,
|
"index" : 21,
|
||||||
"hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 },
|
"hscan" : { "minimum" : 0.2500, "maximum" : 0.3125 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 22,
|
"index" : 22,
|
||||||
"hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 },
|
"hscan" : { "minimum" : 0.3125, "maximum" : 0.3750 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 23,
|
"index" : 23,
|
||||||
"hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 },
|
"hscan" : { "minimum" : 0.3750, "maximum" : 0.4375 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 24,
|
"index" : 24,
|
||||||
"hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 },
|
"hscan" : { "minimum" : 0.4375, "maximum" : 0.5000 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 25,
|
"index" : 25,
|
||||||
"hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 },
|
"hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 26,
|
"index" : 26,
|
||||||
"hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 },
|
"hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 27,
|
"index" : 27,
|
||||||
"hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 },
|
"hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 28,
|
"index" : 28,
|
||||||
"hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 },
|
"hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 29,
|
"index" : 29,
|
||||||
"hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 },
|
"hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 30,
|
"index" : 30,
|
||||||
"hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 },
|
"hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 31,
|
"index" : 31,
|
||||||
"hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 },
|
"hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 32,
|
"index" : 32,
|
||||||
"hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 33,
|
"index" : 33,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.0800 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 34,
|
"index" : 34,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 }
|
"vscan" : { "minimum" : 0.0000, "maximum" : 0.1429 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 35,
|
"index" : 35,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 }
|
"vscan" : { "minimum" : 0.1429, "maximum" : 0.2857 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 36,
|
"index" : 36,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 }
|
"vscan" : { "minimum" : 0.2857, "maximum" : 0.4286 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 37,
|
"index" : 37,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 }
|
"vscan" : { "minimum" : 0.4286, "maximum" : 0.5714 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 38,
|
"index" : 38,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 }
|
"vscan" : { "minimum" : 0.5714, "maximum" : 0.7143 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 39,
|
"index" : 39,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 }
|
"vscan" : { "minimum" : 0.7143, "maximum" : 0.8571 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 40,
|
"index" : 40,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.8571, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 41,
|
"index" : 41,
|
||||||
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9500, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 42,
|
"index" : 42,
|
||||||
"hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 },
|
"hscan" : { "minimum" : 0.9375, "maximum" : 1.0000 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 43,
|
"index" : 43,
|
||||||
"hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 },
|
"hscan" : { "minimum" : 0.8750, "maximum" : 0.9375 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 44,
|
"index" : 44,
|
||||||
"hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 },
|
"hscan" : { "minimum" : 0.8125, "maximum" : 0.8750 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 45,
|
"index" : 45,
|
||||||
"hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 },
|
"hscan" : { "minimum" : 0.7500, "maximum" : 0.8125 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 46,
|
"index" : 46,
|
||||||
"hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 },
|
"hscan" : { "minimum" : 0.6875, "maximum" : 0.7500 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 47,
|
"index" : 47,
|
||||||
"hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 },
|
"hscan" : { "minimum" : 0.6250, "maximum" : 0.6875 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 48,
|
"index" : 48,
|
||||||
"hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 },
|
"hscan" : { "minimum" : 0.5625, "maximum" : 0.6250 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"index" : 49,
|
"index" : 49,
|
||||||
"hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 },
|
"hscan" : { "minimum" : 0.5000, "maximum" : 0.5625 },
|
||||||
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
"vscan" : { "minimum" : 0.9200, "maximum" : 1.0000 }
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
||||||
/// The boot-sequence configuration, contains the following items:
|
/// The boot-sequence configuration, contains the following items:
|
||||||
/// * type : The type of the boot-sequence ('rainbow', 'knight_rider', 'none')
|
/// * type : The type of the boot-sequence ('rainbow', 'knight_rider', 'none')
|
||||||
/// * duration_ms : The length of the boot-sequence [ms]
|
/// * duration_ms : The length of the boot-sequence [ms]
|
||||||
"bootsequence" :
|
"bootsequence" :
|
||||||
{
|
{
|
||||||
"type" : "Rainbow",
|
"type" : "Rainbow",
|
||||||
"duration_ms" : 3000
|
"duration_ms" : 3000
|
||||||
},
|
},
|
||||||
|
|
||||||
/// The configuration for the frame-grabber, contains the following items:
|
/// The configuration for the frame-grabber, contains the following items:
|
||||||
/// * width : The width of the grabbed frames [pixels]
|
/// * width : The width of the grabbed frames [pixels]
|
||||||
/// * height : The height of the grabbed frames [pixels]
|
/// * height : The height of the grabbed frames [pixels]
|
||||||
/// * frequency_Hz : The frequency of the frame grab [Hz]
|
/// * frequency_Hz : The frequency of the frame grab [Hz]
|
||||||
"framegrabber" :
|
"framegrabber" :
|
||||||
{
|
{
|
||||||
"width" : 64,
|
"width" : 64,
|
||||||
"height" : 64,
|
"height" : 64,
|
||||||
"frequency_Hz" : 10.0
|
"frequency_Hz" : 10.0
|
||||||
},
|
},
|
||||||
|
|
||||||
/// The configuration of the XBMC connection used to enable and disable the frame-grabber. Contains the following fields:
|
/// 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
|
/// * xbmcAddress : The IP address of the XBMC-host
|
||||||
/// * xbmcTcpPort : The TCP-port of the XBMC-server
|
/// * xbmcTcpPort : The TCP-port of the XBMC-server
|
||||||
/// * grabVideo : Flag indicating that the frame-grabber is on(true) during video playback
|
/// * 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
|
/// * 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
|
/// * 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
|
/// * grabMenu : Flag indicating that the frame-grabber is on(true) in the XBMC menu
|
||||||
"xbmcVideoChecker" :
|
"xbmcVideoChecker" :
|
||||||
{
|
{
|
||||||
"xbmcAddress" : "127.0.0.1",
|
"xbmcAddress" : "127.0.0.1",
|
||||||
"xbmcTcpPort" : 9090,
|
"xbmcTcpPort" : 9090,
|
||||||
"grabVideo" : true,
|
"grabVideo" : true,
|
||||||
"grabPictures" : true,
|
"grabPictures" : true,
|
||||||
"grabAudio" : true,
|
"grabAudio" : true,
|
||||||
"grabMenu" : false
|
"grabMenu" : false
|
||||||
},
|
},
|
||||||
|
|
||||||
/// The configuration of the Json server which enables the json remote interface
|
/// The configuration of the Json server which enables the json remote interface
|
||||||
/// * port : Port at which the json server is started
|
/// * port : Port at which the json server is started
|
||||||
"jsonServer" :
|
"jsonServer" :
|
||||||
{
|
{
|
||||||
"port" : 19444
|
"port" : 19444
|
||||||
},
|
},
|
||||||
|
|
||||||
/// The configuration of the Proto server which enables the protobuffer remote interface
|
/// The configuration of the Proto server which enables the protobuffer remote interface
|
||||||
/// * port : Port at which the protobuffer server is started
|
/// * port : Port at which the protobuffer server is started
|
||||||
"protoServer" :
|
"protoServer" :
|
||||||
{
|
{
|
||||||
"port" : 19445
|
"port" : 19445
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
cf974e6aa1ff2a7194ce2b82fd5da5fa2373676a
|
eec9520a7c9861d27e5944da29ba31a5fcee41eb
|
@ -71,6 +71,16 @@ LedString Hyperion::createLedString(const Json::Value& ledsConfig)
|
|||||||
led.minY_frac = std::max(0.0, std::min(1.0, vscanConfig["minimum"].asDouble()));
|
led.minY_frac = std::max(0.0, std::min(1.0, vscanConfig["minimum"].asDouble()));
|
||||||
led.maxY_frac = std::max(0.0, std::min(1.0, vscanConfig["maximum"].asDouble()));
|
led.maxY_frac = std::max(0.0, std::min(1.0, vscanConfig["maximum"].asDouble()));
|
||||||
|
|
||||||
|
// Fix if the user swapped min and max
|
||||||
|
if (led.minX_frac > led.maxX_frac)
|
||||||
|
{
|
||||||
|
std::swap(led.minX_frac, led.maxX_frac);
|
||||||
|
}
|
||||||
|
if (led.minY_frac > led.maxY_frac)
|
||||||
|
{
|
||||||
|
std::swap(led.minY_frac, led.maxY_frac);
|
||||||
|
}
|
||||||
|
|
||||||
ledString.leds().push_back(led);
|
ledString.leds().push_back(led);
|
||||||
}
|
}
|
||||||
return ledString;
|
return ledString;
|
||||||
|
@ -85,6 +85,11 @@ void ImageToLedsMap::getMeanLedColor(const RgbImage & image, std::vector<RgbColo
|
|||||||
|
|
||||||
RgbColor ImageToLedsMap::calcMeanColor(const RgbImage & image, const std::vector<unsigned> & colors) const
|
RgbColor ImageToLedsMap::calcMeanColor(const RgbImage & image, const std::vector<unsigned> & colors) const
|
||||||
{
|
{
|
||||||
|
if (colors.size() == 0)
|
||||||
|
{
|
||||||
|
return RgbColor::BLACK;
|
||||||
|
}
|
||||||
|
|
||||||
// Accumulate the sum of each seperate color channel
|
// Accumulate the sum of each seperate color channel
|
||||||
uint_fast16_t cummRed = 0;
|
uint_fast16_t cummRed = 0;
|
||||||
uint_fast16_t cummGreen = 0;
|
uint_fast16_t cummGreen = 0;
|
||||||
|
@ -83,10 +83,11 @@ int main(int argc, char** argv)
|
|||||||
if (config.isMember("bootsequence"))
|
if (config.isMember("bootsequence"))
|
||||||
{
|
{
|
||||||
bootSequence = BootSequenceFactory::createBootSequence(&hyperion, config["bootsequence"]);
|
bootSequence = BootSequenceFactory::createBootSequence(&hyperion, config["bootsequence"]);
|
||||||
|
|
||||||
if (bootSequence != nullptr)
|
if (bootSequence != nullptr)
|
||||||
{
|
{
|
||||||
bootSequence->start();
|
bootSequence->start();
|
||||||
|
std::cout << "Boot sequence created and started" << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +153,7 @@ int main(int argc, char** argv)
|
|||||||
|
|
||||||
// run the application
|
// run the application
|
||||||
int rc = app.exec();
|
int rc = app.exec();
|
||||||
std::cout << "Application closed" << std::endl;
|
std::cout << "Application closed with code " << rc << std::endl;
|
||||||
|
|
||||||
// Clear all colors (switchting off all leds)
|
// Clear all colors (switchting off all leds)
|
||||||
hyperion.clearall();
|
hyperion.clearall();
|
||||||
|
Loading…
Reference in New Issue
Block a user