bitfocus / companion-module-requests

Repository for tracking module requests
96 stars 10 forks source link

Module Request: Leader LV 5333 Multi SDI Monitor #11

Open dmeledon opened 4 years ago

dmeledon commented 4 years ago

Describe the feature Support for remote commands and remote status from Leader 5333

Is this platform dependent (windows, mac, ..)? No, device uses telnet

If documentation is required to implement, do you know where to find it? lv5333_e_2_18.pdf Page 171 of the attached manual.

Usecases Useful for changing modes as part of batch actions when performing tasks which require a different analysis view on the Leader (for example adjusting exposure (switch to waveform) or white balance (switch to vector scope)).

stephenlatty commented 1 year ago

I'd also suggest compatibility with the Leader LV5350, a similar but newer reference multi SDI monitor to the LV5333. The monitor has waveform, vector scope monitoring for multiple inputs. It also has a feature to screen capture and play back the capture to compare with the current input which would be a great function for Companion Module (Stream Deck) use.

strawberrydit commented 1 year ago

I would also like to offer that I have these monitors and would test any module software if needed. I do not have the 5350 but I want to see it supported as well. If anyone is going to implement this, please get in touch at michael@strawberrycolor.com because I have implemented remote control already on these units within bash, expect and python.

strawberrydit commented 1 year ago

Below is python3 with telnetlib and this code not only can make a change, it is a toggle for any setting that has two states - This will switch backlight from high to low or the reverse. Thsi works for both LV5330 and LV5333, you just change the MODEL variable to LV5330,. Almost all commands are the same between these two monitors. 5350 is a completely different machine unfortunately.

`#!/usr/bin/env python3

MAKE VARIABLES

HOST = 192.168.1.2 MODEL = LV5333

LOGIN TO THE MONITOR

import telnetlib tn = telnetlib.Telnet() tn.open(HOST) tn.read_until(b"login: ", timeout=5) tn.write(MODEL.encode("ascii")+b"\r") tn.read_until(b"Password: ", timeout=5) tn.write(MODEL.encode("ascii")+b"\r")

GET THE CURRENT STATE OF THE MONITOR

tn.read_until(MODEL.encode("ascii")+b">", timeout=5) tn.write(b"SYSTEM:DISPLAY:BACKLIGHT ?\r")

GET RESPONSE AND CONVERT TO UTF8

STATEBYTES = tn.read_until(MODEL.encode("ascii")+b">", timeout=5) STATE = STATEBYTES.decode()

PERFORM TOGGLE LOGIC

if 'HIGH' in STATE: tn.write(b"SYSTEM:DISPLAY:BACKLIGHT LOW\r") if 'LOW' in STATE: tn.write(b"SYSTEM:DISPLAY:BACKLIGHT HIGH\r")

LOGOUT

tn.read_until(MODEL.encode("ascii")+b">", timeout=5) tn.write(b"bye\r") tn.read_until(b"Connection closed by foreign host.", timeout=5) tn.close()

END OF SCRIPT`