A pothos block that can execute dynamic python script!
import dynacode
class MySwitcher(dynacode.DynaProxy):
def init(self):
self.registerSignal('paramChanged')
self.param = None
def work(self):
op = self.param
#forward buffer
if self.input(0).elements():
out0 = self.output(op).buffer()
in0 = self.input(0).buffer()
n = min(len(out0), len(in0))
out0[:n] = in0[:n]
self.input(0).consume(n)
self.output(op).produce(n)
def activate(self):
print('WoW, activate called!')
self.paramChanged('haha')
def deactivate(self):
print('WoW, deactivate called!')
self.paramChanged('end')
@dynacode.signal_slot
def setDynamicParam(self, param):
print('param is {0}, value={1}'.format(type(param), param))
self.param = param
If we want to register a signal slot, we can simply add a @dynacode.signal_slot decoration to an exist method.