remote_sdk

advertisement
Доступ к функциям программы “DSC Remote Control”
1. Формат файлов макрокоманд
Файл макрокоманд - текстовый файл, каждая строка которого задает одну
макрокоманду. Допускаются пустые строки и комментарии. Комментарии
начинаются с символа точка с запятой. Макрокоманды выполняются программой
последовательно, при этом комментарии и пустые строки пропускаются.
Каждая макрокоманда имеет вид: команда(параметр)
Список макрокоманд
Команда
Параметр
PUSH
Кнопка пульта
ON
Кнопка пульта
OFF
Кнопка пульта
HOLD
Кнопка пульта
RELEASE
Кнопка пульта
PAUSE
Длительность
Описание
Имитирует однократное нажатие
соответствующей кнопки пульта.
Имитирует включение соответствующей
кнопки пульта. Если кнопка уже включена,
ничего не делает.
Имитирует отключение соответствующей
кнопки пульта. Если кнопка уже
выключена, ничего не делает.
Имитирует нажатие соответствующей
кнопки пульта. Кнопка остается нажатой до
выполнения команды RELEASE.
Имитирует отпускание соответствующей
кнопки пульта.
Выполнение файла макрокоманд
приостанавливается на заданное
количество секунд.
Названия кнопок для каждой модели виртуального пульта, содержатся в файле
skins.ini, в параметрах BtnTxt__N.
Пример файла макрокоманд (macro.txt):
; подготовка пульта
push(FAST)
push(FAST)
pause(1)
;
; отключение логотипов и часов
off(LOGO1)
off(LOGO2)
off(CLOCK)
;
; пауза 5 сек
pause(5)
;
; включение оcновного логотипа
on(LOGO1)
;
; установка режимов
off(FAST)
on(EFFECT3)
;
; смена слайдов
on(PIC1)
push(AUTO)
pause(2)
on(PIC2)
push(AUTO)
pause(2)
on(PIC3)
push(AUTO)
pause(2)
on(PIC4)
push(AUTO)
pause(2)
;
; закрытие программы
on(IN1)
push(CUT)
push(CLOSE)
2. Запуск макрокоманд из командной строки
Есть возможность указывать программе файл макрокоманд в командной строке.
При этом, если программа уже была запущена – файл немедленно передается ей
на исполнение. Формат командной строки:
Remote.exe [путь\файл.txt]
3. Программный интерфейс
Программа “DSC Remote Control” может принимать и выполнять команды,
посылаемые из других Windows-приложений. Для этого используется механизм
передачи сообщений WM_COPYDATA.
Для передачи команды, в вызывающей программе нужно сделать следующее:
A. Найти хэндл окна программы “DSC Remote Control”:
HWND hRemoteWnd = FindWindow(NULL,”DSC Remote Control”);
B. Заполнить структуру COPYDATASTRUCT, в соответствии с описанием:
struct RVRemoteCmdData
{
int
m_nCmd;
char
m_sData[_MAX_PATH];
};
RVRemoteCmdData rRec;
COPYDATASTRUCT rCD;
rCD.dwData = nOperation;
rCD.cbData = sizeof(rRec);
rCD.lpData = (void*)(&rRec);
nOperation
m_nCmd
m_sData
1
0
Кнопка пульта
1
1
Кнопка пульта
1
2
Кнопка пульта
1
3
2
-
-
-
Кнопка или
индикатор пульта
Имя файла
макрокоманд
-
Описание
Имитирует однократное
нажатие соответствующей
кнопки пульта.
Имитирует включение
соответствующей кнопки
пульта. Если кнопка уже
включена, ничего не делает.
Имитирует отключение
соответствующей кнопки
пульта. Если кнопка уже
выключена, ничего не
делает.
Запрашивает состояние
светодиодной индикации.
Запускает файл макрокоманд
на исполнение.
Зарезервировано.
C. Вызвать функцию SendMessage() и проанализировать возвращаемое значение
(hCtrlWnd – хэндл главного окна вызывающей программы):
LRESULT nRet = SendMessage(hRemoteWnd, WM_COPYDATA,
(WPARAM)hCtrlWnd,(LPARAM)(&rCD));
nOperation
m_nCmd
1
0…3
1
3
2
-
Возвращаемое значение (nRet)
0 – ошибка выполнения команды
1 – команда выполнена успешно
0 – ошибка выполнения команды
1 – индикация выключена
2 – индикация включена с пониженной яркостью
3 – индикация включена с полной яркостью
4 – индикация мерцает
0 – ошибка запуска файла
1 – файл запущен на выполнение
Пример передачи команды отключения логотипа 1:
HWND hRemoteWnd = FindWindow(NULL,”DSC Remote Control”);
if(hRemoteWnd)
{
RVRemoteCmdData rRec;
rRec.m_nCmd = 2;
strcpy(rRec. m_sData, “LOGO1”);
COPYDATASTRUCT rCD;
rCD.dwData = 1;
rCD.cbData = sizeof(rRec);
rCD.lpData = (void*)(&rRec);
LRESULT nRet = SendMessage(hRemoteWnd, WM_COPYDATA,
(WPARAM)hCtrlWnd,(LPARAM)(&rCD));
if(nRet == 1)
{
// OK
}
}
Download