improve serial hotplug (#389)

* - disable device when error indecates that the problem is not solvable on reconnect
- introduce a preOpenDelay of 2 seconds (currently value is hardcoded)

* rs232:
- make preOpenDelay available via webui
- fix preOpenDelay
- add basic usb serial detection

* - revert 3819ae7
- fix schema files

* make json checks compat with utf8+bom

* make shutdown effect a bit more flexible
This commit is contained in:
redPanther
2017-02-09 20:10:57 +01:00
committed by GitHub
parent 3819ae72ca
commit 170ad4f5db
26 changed files with 712 additions and 294 deletions

View File

@@ -1,68 +1,68 @@
{
"type":"object",
"script" : "candle.py",
"title":"edt_eff_candle_header_title",
"required":true,
"properties":{
"candles": {
"type": "string",
"title":"edt_eff_whichleds_title",
"enum" : ["all","all-together","list"],
"default" : "all",
"options" : {
"enum_titles" : ["edt_eff_enum_all", "edt_eff_enum_all-together", "edt_eff_enum_list"]
"type":"object",
"script" : "candle.py",
"title":"edt_eff_candle_header_title",
"required":true,
"properties":{
"candles": {
"type": "string",
"title":"edt_eff_whichleds_title",
"enum" : ["all","all-together","list"],
"default" : "all",
"options" : {
"enum_titles" : ["edt_eff_enum_all", "edt_eff_enum_all-together", "edt_eff_enum_list"]
},
"propertyOrder" : 1
},
"propertyOrder" : 1
"ledlist": {
"type": "string",
"title":"edt_eff_ledlist_title",
"default" : "1,11,21",
"propertyOrder" : 2
},
"color": {
"type": "array",
"title":"edt_eff_color_title",
"format":"colorpicker",
"default": [255,138,0],
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 3
},
"colorShift": {
"type": "number",
"title":"edt_eff_colorshift_title",
"default": 1,
"minimum" : 0,
"maximum": 30,
"append" : "edt_append_percent",
"propertyOrder" : 4
},
"brightness": {
"type": "number",
"title":"edt_eff_brightness_title",
"default": 100,
"minimum" : 1,
"maximum": 100,
"step" : 10,
"append" : "edt_append_percent",
"propertyOrder" : 5
},
"sleepTime": {
"type": "number",
"title":"edt_eff_sleeptime_title",
"default": 0.15,
"minimum" : 0.01,
"maximum": 1,
"step": 0.01,
"append" : "edt_append_s",
"propertyOrder" : 6
}
},
"ledlist": {
"type": "string",
"title":"edt_eff_ledlist_title",
"default" : "1,11,21",
"propertyOrder" : 2
},
"color": {
"type": "array",
"title":"edt_eff_color_title",
"format":"colorpicker",
"default": [255,138,0],
"items" : {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 3
},
"colorShift": {
"type": "number",
"title":"edt_eff_colorshift_title",
"default": 1,
"minimum" : 0,
"maximum": 30,
"append" : "edt_append_percent",
"propertyOrder" : 4
},
"brightness": {
"type": "number",
"title":"edt_eff_brightness_title",
"default": 100,
"minimum" : 1,
"maximum": 100,
"step" : 10,
"append" : "edt_append_percent",
"propertyOrder" : 5
},
"sleepTime": {
"type": "number",
"title":"edt_eff_sleeptime_title",
"default": 0.15,
"minimum" : 0.01,
"maximum": 1,
"step": 0.01,
"append" : "edt_append_s",
"propertyOrder" : 6
}
},
"additionalProperties": false
"additionalProperties": false
}

View File

@@ -1,78 +1,78 @@
{
"type":"object",
"script" : "clock.py",
"title":"edt_eff_clock_header_title",
"required":true,
"properties":{
{
"type": "object",
"script": "clock.py",
"title": "edt_eff_clock_header_title",
"required": true,
"properties": {
"offset": {
"type": "number",
"title":"edt_eff_offset_title",
"title": "edt_eff_offset_title",
"default": 0,
"append" : "edt_append_leds",
"propertyOrder" : 1
"append": "edt_append_leds",
"propertyOrder": 1
},
"hour-color": {
"type": "array",
"title":"edt_eff_colorHour_title",
"format":"colorpicker",
"default": [255,0,0],
"items" : {
"title": "edt_eff_colorHour_title",
"format": "colorpicker",
"default": [255, 0, 0],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 2
"propertyOrder": 2
},
"minute-color": {
"type": "array",
"title":"edt_eff_colorMinute_title",
"format":"colorpicker",
"default": [0,255,0],
"items" : {
"title": "edt_eff_colorMinute_title",
"format": "colorpicker",
"default": [0, 255, 0],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 3
"propertyOrder": 3
},
"second-color": {
"type": "array",
"title":"edt_eff_colorSecond_title",
"format":"colorpicker",
"default": [0,0,255],
"items" : {
"title": "edt_eff_colorSecond_title",
"format": "colorpicker",
"default": [0, 0, 255],
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
},
"minItems": 3,
"maxItems": 3,
"propertyOrder" : 4
"propertyOrder": 4
},
"hour-margin": {
"type": "number",
"title":"edt_eff_hourMargin_title",
"title": "edt_eff_hourMargin_title",
"default": 2,
"append" : "edt_append_leds",
"propertyOrder" : 5
"append": "edt_append_leds",
"propertyOrder": 5
},
"minute-margin": {
"type": "number",
"title":"edt_eff_minuteMargin_title",
"title": "edt_eff_minuteMargin_title",
"default": 1,
"append" : "edt_append_leds",
"propertyOrder" : 6
"append": "edt_append_leds",
"propertyOrder": 6
},
"second-margin": {
"type": "number",
"title":"edt_eff_secondMargin_title",
"title": "edt_eff_secondMargin_title",
"default": 0,
"append" : "edt_append_leds",
"propertyOrder" : 7
"append": "edt_append_leds",
"propertyOrder": 7
}
},
"additionalProperties": false

View File

@@ -1,4 +1,4 @@
{
{
"type":"object",
"script" : "pacman.py",
"title":"edt_eff_pacman_header_title",

View File

@@ -40,11 +40,23 @@
"maxItems": 3,
"propertyOrder" : 3
},
"initial-blink": {
"type": "boolean",
"title":"edt_eff_initial_blink_title",
"default": true,
"propertyOrder" : 4
},
"set-post-color": {
"type": "boolean",
"title":"edt_eff_set_post_color_title",
"default": true,
"propertyOrder" : 5
},
"shutdown-enabled": {
"type": "boolean",
"title":"edt_eff_enableshutdown_title",
"default": false,
"propertyOrder" : 4
"propertyOrder" : 6
}
},
"additionalProperties": false

View File

@@ -6,6 +6,8 @@
"speed" : 1.2,
"alarm-color" : [255,0,0],
"post-color" : [255,174,11],
"shutdown-enabled" : false
"shutdown-enabled" : false,
"initial-blink" : true,
"set-post-color" : true
}
}

View File

@@ -13,21 +13,25 @@ sleepTime = float(hyperion.args.get('speed', 1.0))*0.5
alarmColor = hyperion.args.get('alarm-color', (255,0,0))
postColor = hyperion.args.get('post-color', (255,174,11))
off = bool(hyperion.args.get('shutdown-enabled', False))
initialBlink = bool(hyperion.args.get('initial-blink', True))
setPostColor = bool(hyperion.args.get('set-post-color', True))
width = 12
height = 10
imageData = bytearray(height * width * (0,0,0))
# Start the write data loop
for i in range(6):
if hyperion.abort():
off = False
break
if i % 2:
hyperion.setColor(alarmColor[0], alarmColor[1], alarmColor[2])
else:
hyperion.setColor(0, 0, 0)
time.sleep(sleepTime)
if initialBlink:
for i in range(6):
if hyperion.abort():
off = False
break
if i % 2:
hyperion.setColor(alarmColor[0], alarmColor[1], alarmColor[2])
else:
hyperion.setColor(0, 0, 0)
time.sleep(sleepTime)
for y in range(height,0,-1):
if hyperion.abort():
@@ -39,11 +43,12 @@ for y in range(height,0,-1):
time.sleep(sleepTime)
time.sleep(1)
for y in range(height):
for x in range(width):
setPixel(x, y, postColor)
hyperion.setImage(width, height, imageData)
time.sleep(2)
if setPostColor:
for y in range(height):
for x in range(width):
setPixel(x, y, postColor)
hyperion.setImage(width, height, imageData)
time.sleep(2)
if off and not hyperion.abort():
subprocess.call("halt")