improvements+fixes to plugin recur screens, WJSendPlugin has a working recur screen too now

This commit is contained in:
Tristan Rowley
2020-02-09 15:56:09 +00:00
parent b7e8de6a76
commit fbfa919476
5 changed files with 78 additions and 24 deletions

View File

@@ -156,7 +156,7 @@ class SequencePlugin(Plugin):
def run_sequence(self, position):
raise NotImplementedError
from typing import Pattern
class ActionsPlugin(Plugin):
def __init__(self, plugin_collection):
super().__init__(plugin_collection)
@@ -168,12 +168,21 @@ class ActionsPlugin(Plugin):
]
def is_handled(self, method_name):
if isinstance(self, DisplayPlugin):
if method_name in self.get_display_modes():
return True
for a in self.parserlist:
if (a[0]==method_name):
return True
regex = a[0]
me = a[1]
#if not isinstance(regex, Pattern):
# continue
matches = re.match(regex, method_name)
if matches:
return True
@@ -182,6 +191,9 @@ class ActionsPlugin(Plugin):
for a in self.parserlist:
regex = a[0]
me = a[1]
#if not isinstance(regex, Pattern):
# continue
matches = re.search(regex, method_name)
if matches:

View File

@@ -468,9 +468,18 @@ class Display(object):
else:
selected_list.append('<{}>'.format(v[:2].lower()))
# 18 char to PURPLE : 18 - 29 ,18 after
if selected_list_index>4:
selected_list = selected_list[selected_list_index-4:len(selected_list)]
selected_list = ['--'] + selected_list
selected_string = ''.join(selected_list)
output = ('-' * (19 - (selected_list_index * 4))) + selected_string + ('-' * (18 - ((len(display_modes) - selected_list_index - 1) * 4)))
#if len(selected_string)<19:
# selected_string += '-'*(21-len(selected_string))
#selected_string = selected_string[:30]
#wid = 19 #int(2+((len(display_modes)/2)*4))
output = ('-' * ((19) - (selected_list_index * 4))) + \
selected_string + \
('-' * (18 - ((len(display_modes) - selected_list_index - 1) * 4)))
output = output[0:46]
return output
@staticmethod

View File

@@ -42,40 +42,44 @@
"control_change 48": {
"DEFAULT": ["set_the_shader_param_0_layer_offset_0_continuous","set_strobe_amount_continuous"],
"NAV_DETOUR": ["set_detour_speed_position_continuous"],
"MANIPULA": ["wj_set_colour_T_x","wj_set_position_N_x"]
"WJMXSEND": ["wj_set_position_N_x"],
"MANIPULA": ["set_variable_A"]
},
"control_change 49": {
"DEFAULT": ["set_the_shader_param_1_layer_offset_0_continuous","set_shader_speed_layer_0_amount"],
"NAV_DETOUR": ["set_detour_start_continuous"],
"MANIPULA": ["wj_set_colour_T_y","wj_set_position_N_y"]
"WJMXSEND": ["wj_set_position_N_y"],
"MANIPULA": ["f:sin(x*pi):|set_variable_SIN"]
},
"control_change 50": {
"DEFAULT": ["set_the_shader_param_2_layer_offset_0_continuous","set_shader_speed_layer_1_amount"],
"NAV_DETOUR": ["set_detour_end_continuous"]
"NAV_DETOUR": ["set_detour_end_continuous"],
"WJMXSEND": ["wj_set_colour_T_x"]
},
"control_change 51": {
"DEFAULT": ["set_the_shader_param_3_layer_offset_0_continuous","set_shader_speed_layer_2_amount"],
"NAV_DETOUR": ["set_detour_end_continuous"]
"WJMXSEND": ["wj_set_colour_T_y"]
},
"control_change 52": {
"DEFAULT": ["set_the_shader_param_0_layer_offset_1_continuous","set_param_0_layer_offset_0_modulation_level_continuous"],
"NAV_DETOUR": ["set_detour_speed_position_continuous"],
"MANIPULA": ["wj_set_mix"]
"WJMXSEND": ["wj_set_mix","wj_send_append_pad_2_VCG:T"]
},
"control_change 53": {
"DEFAULT": ["set_the_shader_param_1_layer_offset_1_continuous","set_param_1_layer_offset_0_modulation_level_continuous"],
"NAV_DETOUR": ["set_detour_start_continuous"],
"MANIPULA": ["wj_set_back_colour_x"]
"WJMXSEND": ["wj_set_back_colour_x","wj_set_back_wash_colour_x"]
},
"control_change 54": {
"DEFAULT": ["set_the_shader_param_2_layer_offset_1_continuous","set_param_2_layer_offset_0_modulation_level_continuous"],
"NAV_DETOUR": ["set_detour_end_continuous"],
"MANIPULA": ["wj_set_back_colour_y"]
"WJMXSEND": ["wj_set_back_colour_y","wj_set_back_wash_colour_y"]
},
"control_change 55": {
"DEFAULT": ["set_the_shader_param_3_layer_offset_1_continuous","set_param_3_layer_offset_0_modulation_level_continuous"],
"NAV_DETOUR": ["set_detour_end_continuous"],
"MANIPULA": ["wj_set_back_colour_z"]
"WJMXSEND": ["wj_set_back_colour_z","wj_set_back_wash_colour_z"]
},
"control_change 56": {
"DEFAULT": ["set_the_shader_param_0_layer_offset_2_continuous"],

View File

@@ -56,7 +56,6 @@ class ManipulatePlugin(ActionsPlugin,DisplayPlugin):
( r"^set_variable_([a-zA-Z0-9]+)$", self.set_variable ),
( r"^([A-Z0-9]+)>(.*)$", self.recall_variable ), # recall variable and pipe into righthand side eg ```VAR1>invert|set_the_shader_.....```
( r"^(.*)>\&(.*)$", self.run_multi ), # pick up piped commands that duplicate a chain of values last
( "MANIPULA", None )
]
def show_plugin(self, display, display_mode):
@@ -70,10 +69,10 @@ class ManipulatePlugin(ActionsPlugin,DisplayPlugin):
def get_display_modes(self):
return ["MANIPULA",None] #"NAV_MANIPULATE"]
return ["MANIPULA","NAV_MANI"] #"NAV_MANIPULATE"]
def run_multi(self, action1, action2, value):
print("multi running %s and %s with value %s" % (action1, action2, value))
print("ManipulatePlugin>> multi-running '%s' and '%s' with value %s" % (action1, action2, value))
self.pc.actions.call_method_name(action1, value)
self.pc.actions.call_method_name(action2, value)
@@ -89,20 +88,20 @@ class ManipulatePlugin(ActionsPlugin,DisplayPlugin):
def formula(self, formula, action, value):
self.variables['x'] = value
print("evaluating formula `%s` with value `%s`" % (formula, value))
print("ManipulatePlugin>> evaluating formula `%s` with value `%s`" % (formula, value))
value = eval(formula, globals(), self.variables)
print("got evaluated value `%s`" % value)
print("ManipulatePlugin>> got evaluated value `%s`" % value)
self.pc.actions.call_method_name(
action, value
)
def set_variable(self, var_name, value):
print("set_variable (%s) to %s" % (var_name, value))
print("ManipulatePlugin>> set_variable (%s) to %s" % (var_name, value))
self.variables[var_name] = value
def recall_variable(self, var_name, action, *args):
print ("recall_variable (%s) as %s" % (var_name,args))
print ("ManipulatePlugin>> recall_variable (%s) as %s" % (var_name,args))
self.pc.actions.call_method_name(
action, self.variables.get(var_name)# + list(args)
)
@@ -118,14 +117,14 @@ class ManipulatePlugin(ActionsPlugin,DisplayPlugin):
tail, value
)"""
def pipe(self, left, right, value):
"""def pipe(self, left, right, value):
# ??
print("pipe calling left '%s' and right '%s', both with value '%s'" % (left, right, value))
print("ManipulatePlugin>> pipe calling left '%s' and right '%s', both with value '%s'" % (left, right, value))
self.pc.actions.call_method_name(
left, value
)
self.pc.actions.call_method_name(
right, value
)
)"""

View File

@@ -1,10 +1,10 @@
import serial
from serial import Serial
import data_centre.plugin_collection
from data_centre.plugin_collection import ActionsPlugin, SequencePlugin
from data_centre.plugin_collection import ActionsPlugin, SequencePlugin, DisplayPlugin
import threading
class WJSendPlugin(ActionsPlugin,SequencePlugin):
class WJSendPlugin(ActionsPlugin,SequencePlugin,DisplayPlugin):
disabled = False#True
ser = None
# from http://depot.univ-nc.nc/sources/boxtream-0.9999/boxtream/switchers/panasonic.py
@@ -54,6 +54,19 @@ class WJSendPlugin(ActionsPlugin,SequencePlugin):
import traceback
traceback.print_exc()
def show_plugin(self, display, display_mode):
from tkinter import Text, END
#super(DisplayPlugin).show_plugin(display, display_mode)
#print("show plugin?")
display.display_text.insert(END, '{} \n'.format(display.body_title))
display.display_text.insert(END, "test from WJSendPlugin!\n\n")
for queue, last in self.last.items():
display.display_text.insert(END, "last %s:\t%s\n" % (queue,self.last.get(queue)))
def get_display_modes(self):
return ["WJMXSEND","NAV_WJMX"]
@property
def parserlist(self):
return [
@@ -61,10 +74,11 @@ class WJSendPlugin(ActionsPlugin,SequencePlugin):
( r"^wj_send_serial_([0-9a-zA-Z:]*)$", self.send_serial_string ),
( r"^wj_set_colour_([A|B|T])_([x|y])$", self.set_colour ),
( r"^wj_set_back_colour_([x|y|z])$", self.set_back_colour ),
( r"^wj_set_back_wash_colour_([x|y|z])$", self.set_back_wash_colour ),
( r"^wj_set_position_([N|L])_([x|y])$", self.set_position ),
( r"^wj_set_mix$", self.set_mix ),
( r"^wj_send_append_pad_([0-9]*)_(([A-Z:[0-9a-zA-Z])$", self.send_append_pad ),
( r"^wj_send_append_([A-Z:[0-9a-zA-Z])$", self.send_append ),
( r"^wj_send_append_pad_([0-9]*)_([[:0-9a-zA-Z]*)$", self.send_append_pad ),
( r"^wj_send_append_([:0-9a-zA-Z]*)$", self.send_append ),
]
def send_serial_string(self, string):
@@ -128,6 +142,22 @@ class WJSendPlugin(ActionsPlugin,SequencePlugin):
output = "VBM:{:02X}{:02X}{:02X}".format(self.back_colour_x,self.back_colour_y,self.back_colour_z) #,random.randint(0,255))
self.send('VBM', output)
back_wash_colour_x = 127
back_wash_colour_y = 127
back_wash_colour_z = 127
def set_back_wash_colour(self, dim, value):
# chan can be A, B or T (both)
if dim=='x':
self.back_wash_colour_x = int(255*value)
elif dim=='y':
self.back_wash_colour_y = int(255*value)
elif dim=='z':
self.back_wash_colour_z = int(255*value)
output = "VBW:{:02X}{:02X}{:02X}".format(self.back_wash_colour_x,self.back_wash_colour_y,self.back_wash_colour_z) #,random.randint(0,255))
self.send('VBW', output)
position_x = 127
position_y = 127
def set_position(self, mode, dim, value):