Skip to content
/ PJlink- Public

API to communicate with projectors through pj-link protocol

Notifications You must be signed in to change notification settings

TonilK/PJlink-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

PJlink-

API to communicate with projectors through pj-link protocol """ class Projector. класс для управления проектором по протоколу PJlink. Для инициализации необоходимо указать ip, порт выставлен по умолчанию 4352.

Пример инициализации для сетапа из 4 проекторов
    pr[0] = Projector('192.168.0.8')
    pr[1] = Projector('192.168.0.9')
    pr[2] = Projector('192.168.0.10')
    pr[3] = Projector('192.168.0.11')
            
    
Методы и атрибуты с префиксом '__', например self.__socket или __cmd_send() внутренние и подразумевается,
что пользователь ими не пользуется и не пытается поменять.

Пример сеанса связи: 
    if pr.open_connection():                                        # открыли соединение
        if not pr.set_shutter(1):                                   # Включили заслонку
            print("result of connect: 0x%x" % pr.getlasterror())
        res, lmp_inf = pr.get_lamp_info()                           # Запросили инфу о лампах
        if res:
            print('Lamp info: ', lmp_inf)
        else:
            print("Unable to get lamp info. Error code: 0x%x" % pr.getlasterror())
                
    else:
        print("result of connect: 0x%x" % pr.getlasterror())
    pr.close_connection()                                           # обязательно закрыли за собой дверь


Команды делятся на 2 типа: set и get.
Все команды возвращают True при получении от проектора подтверждения выполнения
команды(см. спецификацию PJlink) и False в противном случае. 

При получении False можно узнать причину и запросить код ошибки
c помощью метода getlasterror() (см. class ErrCode)

Команда set устанавливает какой либо параметр. Возвращает True/False
Пример управления shutter
    if not pr[2].set_shutter(0):
        print('Что-то пошло не так. Код ошибки: 0x%x' % pr[2].getlasterror())

Команда get запрашивает установленные параметры. Возвращает True и param или False и пустой объект param
Формат param зависит от конкретной команды, в основном это набор числовых параметров
    res, lmp_inf = pr.get_lamp_info()                           # Запросили инфу о лампах
    if res:
        print('Lamp1. State: %d. time: %d' % (lmp_inf[0][1], lmp_inf[0][0])) 
        print('Lamp2. State: %d. time: %d' % (lmp_inf[1][1], lmp_inf[1][0])) 

"""

About

API to communicate with projectors through pj-link protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages