I’m currently working on a projection setup for a theater festival. We were looking for a way to trigger the shutter of a projector via DMX or TCP IP to use it as a follower. What I found was PJLink standard which looks promising. I was wondering if anyone has ever used it to control projectors within TD?
It’s pretty easy to adapt in TD. I had the chance to play around with it a few hours ago and it worked straight ahead (we’re using Panasonic PT-D5700E DLP projectors btw). I had some misleadings with the string to byte conversion, but the whole think took about an hour or so to setup
I’m tired to code the command by hand everytime, so I decided to wrap it up in a sleek tox with grouping capabilities.
But…
Adapting the pjlink python library (btw, it’s in 1.1.1 version now) from pypi.python.org/pypi/pypjlink I ran into consistent hangs.
I’m posting a file. It just runs a small script to get a projector power. I tried with a real projector and without. I can’t seem to work it out what’s wrong. It just hangs on socket method readinto(b).
When you run the script dat (or just push a button), the TD will hang. When trying to terminate TD, it will propose to recover the process you should accept it. Then you will have the python console log.
I also put TCP/IP node in servermode with localhost ip and the correct pjlink port in order to see what it’s doing.
Resurrecting an old question, but thought this might be useful to someone if you don’t wish to disable your authentication. Put this code in tcpip1_callbacks and it will authenticate and then turn on the projector. Replace the pwd variable with your web interface password.
pwd = "panasonic"
resp = message.split(" ")
if resp[0] == "PJLINK" and resp[1] == "1":
import hashlib
s = ( resp[2]+pwd).encode('utf-8')
d = (hashlib.md5( s).hexdigest())
pjSocket1 = op('tcpip1')
pjSocket1.sendBytes(d,'%1POWR 1\r')