Some of you may know the PJ-Link protocol to send commands via ethernet to a Projektor. If you don't know, here is the website to get more about this protocol.
PJ-Link is limit to basic commands like shutter on/off, power on/off, status request and input source. The good thing, it works on different projectors.
I had a Panasonic PT-RZ 120 projector and want to have more control in Touchdesigner. I found a TCP List from Panasonic for this projector.
So I build a 'Customize Component' for Touchdesigner. A 'base' with a extention.
Thanks to Matthew Ragan for the helpful explanation on this topic.
Inside the 'base' is a 'TCP/IN dat' were you have to set the IP Adress and Port for the projector.
So now you only need to send command via a 'Text dat':
mes = command
# command you have to replace your wanted command
# 'OSH:1' for example for shutter on
n = op('tcpip1')
n.send('00' + mes + '\r')
As I sad, I made a extention, so my 'Text dat' looked like this:
class PTRZ120:
def init(self):
print( 'PTRZ120 init' )
return
def ShutterON(self):
print('PTRZ120 Shutter ON')
mes = 'OSH:1'
n = op('tcpip1')
n.send('00' + mes + '\r')
return
def ShutterOFF(self):
print('PTRZ120 Shutter OFF')
mes = 'OSH:0'
n = op('tcpip1')
n.send('00' + mes + '\r')
return
def PowerON(self):
print('PTRZ120 Power ON')
mes = 'PON'
n = op('tcpip1')
n.send('00' + mes + '\r')
return
def PowerOFF(self):
print('PTRZ120 Power OFF')
mes = 'POF'
n = op('tcpip1')
n.send('00' + mes + '\r')
return
def Command(self, command):
print('PTRZ120 CustomCommand'+ '/' + command)
mes = command
n = op('tcpip1')
n.send('00' + mes + '\r')
Be aware that there is a time limit for the projector to recieve TCP I guess it was about 500ms.
Here you found my Component on GitHub
Cheers
Comments