skyDSuite (zkyDSL) является бесплатной ("freeware") программой.
skyDSuite (zkyDSL) распространяется "как есть" ("as is"). Автор не несёт ответственность за абсолютно любые результаты использования или неиспользования этой программы и никаких гарантий не даёт. Автор даже не гарантирует, что в данный момент Вы читаете этот файл.
© Андрей А. Мешков "AL-CHEMIST", 2000-3000.
Основные возможности программы
(*) функционал оформлен в виде пользовательских действий (.\CFG\UDO\*.ZUDA)
Принцип работы программы очень прост. Если программа определяет наличие проблем, то происходит перезапуск интернет соединений и выполнение сопутствующих действий, описанных в файле сценария .\CFG\SDS.ZSCRIPT
Программа должна запускаться с правами администратора.
Работа с программой начинается с выбора сетевых интерфейсов, за трафиком которых мы будем внимательно следить.
Если они не определились автоматически, то их можно выбрать из списка через контекстное меню в соответствующих ячейках на главном окне.
Список выбора включает все установленные в системе RAS-соединения и активные интерфейсы.
Интерфейсы можно указать вручную в основном файле конфигурации .\CFG\SDS.ZCFG
Спутниковый интерфейс — {SDS.ZCFG} → [MAIN] → SInterface,
"Наземный" интерфейс — {SDS.ZCFG} → [MAIN] → GInterface,
vpn-интерфейс — {SDS.ZCFG} → [MAIN] → VInterface,
информационный интерфейс — {SDS.ZCFG} → [MAIN] → IInterface.
Если программа используется без skyDSL, то необходимо установить параметр {SDS.ZCFG} → [MAIN] → SDSLControl=0 (по умолчанию = 1). При SDSLControl=0 игнорируются все действия и критерии перезапуска, связанные со skyDSL.
Перезапуск интернет соединений может быть отложен при одновременном выполнении следующих условий
1 - {SDS.ZCFG} → [RESTART] → SkipOnSInTraffic=1 (по умолчанию = 0)
2 - {SDS.ZCFG} → [RESTART] → SInSpeedFloor > 0
3 - скорость входящего спутникового трафика превышает {SDS.ZCFG} → [RESTART] → SInSpeedFloor
Перезапуск интернет соединений может быть прерван при одновременном выполнении следующих условий
1 - {SDS.ZCFG} → [RESTART] → BreakOnDVBOutOfLock=1 (по умолчанию = 1)
2 - DVB тюнер не может поймать сигнал (см. Взаимодействие с DVB-картой)
Существует возможность приостановить проверки критериев перезапуска до появления сигнала.
Для этого необходимо
1 - включить опцию {SDS.ZCFG} → [RESTART] → DVBLockWaitFor=1 (по умолчанию = 1)
2 - указать отличный от нуля период ожидания в секундах {SDS.ZCFG} → [RESTART] → DVBLockWaitForPeriod (по умолчанию = -1)
Если Period < 0, тогда период ожидания равен бесконечности.
Все события выводятся в окна диагностики.
Если необходимо, чтобы записи в лог файлах содержали текущую дату,
тогда параметру {SDS.ZCFG} → [OUTPUT] → LOGsDateStamp присваиваем 1.
В LOGX пишутся
Закладка LOG - основное окно, закладки LOGX и LOGZ - дополнительные окна диагностики.
В окне настроек он находится на странице "Output" под именем "Date Stamp" в группе настроек "LOGs"
|
skyDSuite.EXE [param_1=value_1] ... [param_N=value_N]
StartupActions | Список действий, выполняемых при запуске программы (разделитель - запятая) |
CloseActions | Список действий, выполняемых при закрытии программы (разделитель - запятая) |
Actions | Список действий, выполняемых при передаче параметров уже запущенной программе (разделитель - запятая) |
AutoControl | Включение/выключение автоматического контроля за состоянием интернет соединений (0|1) |
StartupControl | Включение/выключение проверки состоянием интернет соединений при старте программы (0|1) |
DVBControl | Включение/выключение проверки состояния DVB карты (0|1) |
Gmode | Включение/выключение работы в наземном режиме (0|1) |
STAT | Включение/выключение записи в файл статистики трафика (0|1) |
STAD | Включение/выключение записи в файл статистики DVB карты (0|1) |
Scheduler | Включение/выключение планировщика (0|1) |
URL | Включение/выключение проверки тестовых ссылок (0|1) |
PlanB | Включение/выключение плана «Бэ» (0|1) |
Gping | Включение/выключение периодических пингов по земле (0|1) |
Sping | Включение/выключение периодических пингов по воздуху (0|1) |
GChain | Включение/выключение цепочки наземных интерфейсов (0|1) |
VChain | Включение/выключение цепочки vpn-интерфейсов (0|1) |
HTTPServer | Включение/выключение HTTP сервера (0|1) |
WebDAVServer WDAVServer |
Включение/выключение WebDAV сервера (0|1) |
Telnet TelnetServer |
Включение/выключение telnet сервера (0|1) |
HTTPProxyServer | Включение/выключение HTTP прокси-сервера (0|1) |
SocksServer | Включение/выключение Socks сервера (0|1) |
skyDSuite.EXE StartupActions=+SKY.ACTIVE,+CTRL CloseActions=-CTRL,-SKY.ACTIVE
skyDSuite.EXE StartupActions=*SDS\ON.STARTUP CloseActions=*SDS\ON.CLOSE
skyDSuite.EXE AutoControl=1 StartupControl=1
Действия, переданные в командной строке, имеют больший приоритет нежели действия, описанные в файле скриптов.
Повторный запуск программы с параметрами командной строки
приведёт к обновлению соответствующих настроек запущенного экземпляра skyDSuite.
При передаче параметров запущенной программе вызываются действия StartupActions и Actions.
Для передачи параметров используем именованные каналы (named pipes).
Имя создаваемого канала: \\.\pipe\SKYDSUITE–IPC-PIPE-A443238C-9FC8-48BA-9FFB-F25C678D06D6
Если в настройках {SDS.ZCFG} → [RESTART] → ScriptActions=1, то происходит вот что.
Если в системе работает скриптовое действие и
скриптом была зарегистрирована функция обратного вызова ( SDScript.RegisterRestartCallback("ACallbackProc") ), то
при перезапуске вызывается зарегистрированная функция ACallbackProc.
Все остальные действия, как встроенные, так и описанные в файле {SDS.ZSCRIPT}, игнорируются.
|
Если в настройках {SDS.ZCFG} → [RESTART] → CustomActions=1, то встроенные действия игнорируются.
Если в настройках {SDS.ZCFG} → [RESTART] → SDSLServiceControl=1, то при соответствующих действиях будет останавливаться/запускаться сервис skyDSL (tntcraxy) (по умолчанию SDSLServiceControl=1).
Если в настройках {SDS.ZCFG} → [RESTART] → SDSLClientControl=1, то при соответствующих действиях будет останавливаться/запускаться tskyclnt.exe (по умолчанию SDSLClientControl=1).
Автоматический дозвон/разрыв наземного соединения.
Если {SDS.ZCFG} → [RESTART] → GroundControl=1, то дозвон и разрыв "наземного" соединения при перезапуске
осуществляет skyDSuite. Эта опция будет работать, только если наземный интерфейс является RAS-соединением.
Автоматический дозвон/разрыв VPN-соединения.
Если {SDS.ZCFG} → [RESTART] → VpnControl=1, то дозвон и разрыв VPN-соединения при перезапуске
осуществляет skyDSuite. Эта опция будет работать, только если VPN-интерфейс является RAS-соединением.
Можно указать параметры дозвона в явном виде в файле .\CFG\SDS.ZRAS
Предположим, что мы звоним по соединению VPN, и хотим явно указывать имя пользователя и пароль.
Для этого создаём в файле SDS.ZRAS секцию с именем VPN и определяем нужные значения.
Параметры будут использованы, только если установлен флаг активности (Active=1).
|
Пример.
Предположим, что перед остановкой интернет соединений мы хотим остановить нашу качалку,
а после запуска интернет соединений - запустить качалку,
но только если она была запущена до остановки.
В этом случае, описания действий могут выглядеть так
|
Если мы хотим ограничиться остановкой/запуском активных закачек, скрипт приобретает вид
|
Все встроенные действия работают схожим образом. Выполняем операцию, ждём завершения её работы не более
заданного количества секунд, делаем паузу заданной продолжительности.
ВременнЫе параметры лежат в {SDS.ZCFG} → [skyTIMEs]. Время измеряем в секундах.
Существует возможность проверки IP адреса после перезапуска интернет соединений.
Перезапуск будет продолжаться, пока IP адрес не будет удовлетворять указанным параметрам.
Настройки → страница "Restart (B)" → "Fixed IP"
Active | Флаг активности |
Request | Список адресов для получения своего IP Каждый адрес имеет формат AURL[|AIPIndex], где AURL - адрес страницы со списком IP адресов AIPIndex - индекс интересующего нас IP адреса (по умолчанию = 0) |
IP | IP адрес |
mask | Маска |
Faults | Максимальное количество перезапусков Проверка IP адреса прекращается, если количество перезапусков превысило указанное значение |
Выбранный приоритет, который программа призвана поддерживать по мере сил, отображается в жёлтой ячейке главного окна.
Изменить его можно через контекстное меню этой ячейки или иконки в трее. В меню, птичкой отмечается реальный приоритет, считанный из реестра.
Для изменения приоритета можно использовать также горячие клавиши:
CTRL+1 (первый приоритет), CTRL+2 (второй приоритет), ... CTRL+6 (шестой приоритет).
Все настройки работы с DVB-картой лежат в файле .\CFG\SDS.ZDVB
Функции взаимодействия с DVB-картой находятся в библиотеке skyDSuiteDVB.DLL
На данный момент поддерживаюся карты на B2C2 чипе. (Тестировалось с TechniSat SkyStar2).
Экспортируемые функции
|
Используемые типы данных
|
За взаимодействие с DVB-картой отвечают действия
DVB.Restart - Перезапуск мониторинга DVB-карты (использует функции B2C2_Stop и B2C2_Start)
DVB.Stop - Остановка мониторинга DVB-карты (использует функцию B2C2_Stop)
DVB.Start - Запуск мониторинга DVB-карты (использует функцию B2C2_Start)
DVB.SyncPIDs - Синхронизация PID`ов DVB-карты и skyDSL (использует функцию B2C2_SetPIDs)
DVB.MAC - Вывод на экран MAC-адреса DVB-карты (использует функцию B2C2_GetMAC)
DVB.UCMAC - Вывод на экран Unicast MAC-адреса DVB-карты (использует функцию B2C2_GetUCMAC)
DVB.MCMAC - Вывод на экран Multicast MAC-адресов DVB-карты (использует функцию B2C2_GetMCMAC)
В качестве библиотеки можно использовать StreamReader.DLL
Для этого, в этой библиотеке должны быть объявлены функции определения качества/уровня сигнала
|
Для определения качества/уровня сигнала используется одна из функций - Statistic, GetSignal, GetSignalStrength
Тесты проводились с библиотекой StreamReader.DLL из проекта StreamReaderEx (Универсальный StreamReader.DLL)
Существует возможность периодически пинговать выбранный хост.
Перед пингом прописываем в системе маршрут к пингуемому хосту через наземный или спутниковый интерфейс.
route ADD HostIP GateIP
ping Host -n Count -w Timeout -l BufferSize
route DELETE HostIP
Добавление/удаление маршрутов: cmd /c route ADD/DELETE HostIP ...
Пинги реализованы с применением системных функций (IcmpSendEcho, ...).
Установки по умолчанию
[GPing] - настройки пинга по земле, [SPing] - настройки пинга по воздуху
|
Работает это так
Наличие ошибок является одним из критериев перезапуска интернет соединений.
Пингование не происходит, если в настройках указано добавление маршрута и соответствующий интерфейс неактивен.
Быстрое включение/выключение пингов по земле доступно через птичку "G ping" на главном окне.
Быстрое включение/выключение пингов по воздуху доступно через птичку "S ping" на главном окне.
%SIF% - имя спутникового интерфейса
%GIF% - имя наземного интерфейса
%VIF% - имя Vpn-интерфейса
%IIF% - имя информационного интерфейса
%SIP% - IP адрес спутникового интерфейса
%GIP% - IP адрес наземного интерфейса
%VIP% - IP адрес Vpn-интерфейса
%IIP% - IP адрес информационного интерфейса
%SMAC% - MAC адрес спутникового интерфейса
%GMAC% - MAC адрес наземного интерфейса
%VMAC% - MAC адрес Vpn-интерфейса
%IMAC% - MAC адрес информационного интерфейса
%SDNS%, %SDNS1%, %SDNS2% - список DNS серверов спутникового интерфейса
%GDNS%, %GDNS1%, %GDNS2% - список DNS серверов наземного интерфейса
%VDNS%, %VDNS1%, %VDNS2% - список DNS серверов Vpn-интерфейса
%IDNS%, %IDNS1%, %IDNS2% - список DNS серверов информационного интерфейса
|
%IP,AURL,Amask% - преобразование имени хоста в IP-адрес
print ? %IP,google.com%
print ? %IP,google.com,255.255.255.0%
print ? %IP,google.com,24%
cmd ? route add %IP,ftp.narod.ru% %GIP%
%IFIP,AInterface,Amask% - получаем IP-адрес интерфейса AInterface
print ? %IFIP,GPRS%
print ? %IFIP,GPRS,255.255.255.0%
%HEXIP,AIP,APrefix% - представление IP-адреса в шестнадцатиричном виде
print ? %HEXIP,10.1.1.1%
print ? %HEXIP,%VIP%,0002%
%CFG,ASection,AKey% - чтение основного конфигурационного файла
print ? %CFG,MODEM,ComPort% :: %CFG,MODEM,PortSettings%
%CFG.GET,ACFGFile,ASection,AKey% - чтение конфигурационного файла
print ? %CFG.GET,*,MODEM,ComPort% :: %CFG.GET,*,MODEM,PortSettings%
print ? %CFG.GET,%ProgramFiles%\GlobaX\globax.conf,remote,speed_out%
%MODEM%, %MODEM.DEVICE% - значение {SDS.ZCFG} → [MODEM] → Device [0]
%MODEM.ID%, %MODEM.DEVICE.ID% - значение {SDS.ZCFG} → [MODEM] → Device [1]
%MODEM.ROOT% - значение {SDS.ZCFG} → [MODEM] → Device [2]
%MODEM.ROOTEX% - значение {SDS.ZCFG} → [MODEM] → Device [3]
%MODEM.PORT% - значение {SDS.ZCFG} → [MODEM] → Port
%MODEM.PORT.SETTINGS% - значение {SDS.ZCFG} → [MODEM] → PortSettings
%MODEM.COM.PORT% - значение {SDS.ZCFG} → [MODEM] → ComPort
%MODEM.COM.PORT.SETTINGS% - значение {SDS.ZCFG} → [MODEM] → ComPortSettings
%MODEM.IDMASK% - значение {SDS.ZCFG} → [MODEM] → IDmask
%DATE, AFormatString, AShift%
%DATETIME, AFormatString, AShift%
Строковое представление текущей даты.
AFormatString - форматирующая строка (по умолчанию dd"/"mm"/"yyyy).
AShift - сдвиг даты в днях (работаем с датой, равной текущей дате плюс AShift).
print ? %DATE%
print ? %DATE, hh":"mm":"ss"."zzz%
%BDAY, ABaseDay, AShift%
Номер текущего дня с отсчётом от BaseDay
AShift - сдвиг даты в днях (работаем с датой, равной текущей дате плюс AShift).
print ? %BDAY,1.1.1970,1%
%TIME32, AShift%
Количество секунд, прошедших с 00:00:00, 1 января 1970 (UTC)
AShift - сдвиг в секундах (работаем со временем, равным текущему времени плюс AShift).
print ? %TIME32%
%TICKS, AShift%
Количество миллисекунд, прошедших с запуска операционной системы
AShift - сдвиг в миллисекундах (работаем со временем, равным текущему времени плюс AShift).
print ? %TICKS%
%HexColor, AColor%
Шестнадцатиричное представление цвета AColor
print ? 0x%HexColor,red%
%MD5, AFormat, AString1, AString2, ..., AStringN%
Вычисление хеш-суммы MD5(AString1+AString2+...+AStringN).
AFormat - формат выводимого результата
X - шестнадцатиричное представление, верхний регистр
x - шестнадцатиричное представление, нижний регистр
%URI, AText, AQuery%
%URL, AText, AQuery%
Возвращаем процентно-закодированный текст.
Все не алфавитно-числовые символы (кроме -_.) заменены на знак процентов (%) с последующими двумя 16-ричными цифрами.
Если AQuery='1', тогда пробелы заменяются на знак плюс (+).
print ? %URI,"ABC:А Б С:XYZ"%
%UTF8.URI, AText, AQuery%
%UTF8.URL, AText, AQuery%
Возвращаем процентно-закодированный текст.
Все не алфавитно-числовые символы (кроме -_.) заменены на знак процентов (%) с последующими двумя 16-ричными цифрами.
Если AQuery='1', тогда пробелы заменяются на знак плюс (+).
print ? %UTF8.URI,"продлить"%
%URI^, AText%
%URL^, AText%
Декодирование процентно-закодированной строки AText.
Строка AText должна быть заключена в двойные или одинарные кавычки.
print ? %URI^,"A%31%32A"%
print ? %URI^,'A%31%32A'%
print ? %URI^,%URI,"ABC:А Б С:XYZ"%%
%UTF8.URI^, AText%
%UTF8.URL^, AText%
Декодирование процентно-закодированной строки AText.
Строка AText должна быть заключена в двойные или одинарные кавычки.
print ? %UTF8.URI^,%UTF8.URI,"продлить"%%
print ? %UTF8.URI^,"iFolder.ru%20%D0%91%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D0%B9%20%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20-%20%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2"%
%MultilineString, AText%
Представление строки AText в многострочном виде
print ? %MultilineString,"Aaa. Bbb; Ccc"%
%PDU, AText%
%PDU7, AText%
Представление строки AText в семибитовой PDU-кодировке.
print ? %PDU,*100#%
%PDU^, APDUText%
%PDU7^, APDUText%
Преобразование строки из семибитовой PDU кодировки в ansi-кодировку.
%PDU8^, APDUText%
Преобразование строки из PDU8 кодировки в ansi-кодировку.
%PDU16^, APDUText%
Преобразование строки из PDU16 кодировки в ansi-кодировку.
%HANSI^, AText%
Преобразование строки из ansi-кодировки в шестнадцатиричном представлении в ansi-кодировку.
print ? %HANSI^,30313233343536373839%
%HUTF8^, AUTFText%
Преобразование строки из UTF-8 кодировки в шестнадцатиричном представлении в ansi-кодировку.
print ? %HUTF8^,D0A2D18B20D0BAD182D0BE20D182D0B0D0BAD0BED0B93F%
%UTF8^, AUTFText%
Преобразование строки из UTF-8 кодировки в ansi-кодировку.
print ? %UTF8^,%URI^,"iFolder.ru%20%D0%91%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D0%B9%20%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%20-%20%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2"%%
%HUTF16^, AUTFText%
%HUCS2^, AUTFText%
Преобразование строки из unicode-кодировки в шестнадцатиричном представлении в ansi-кодировку.
print ? %HUTF16^,0422044B002004410430043C0020043A0442043E002004420430043A043E0439003F%
%UTF16^, AUTFText%
%UCS2^, AUTFText%
Преобразование строки из unicode-кодировки в ansi-кодировку.
print ? %UTF16^,...%
%ESCAPE, AText%
Преобразование символов в escape-символы (0x0D → \r, 0x0A → \n, ...)
print ? %ESCAPE,...%
%ESCAPE^, AText%
%UNESCAPE, AText%
Преобразование escape-символов (\r → 0x0D, \n → 0x0A, ...) в обычные символы
print ? %ESCAPE^,"acb\ndef"%
print ? %UNESCAPE,"123\n456"%
%SMS, APhone, AText%
Генерация SMS сообщения с автоматическим определением кодировки.
Если в тексте присутствуют символы > 0x7F, то используется UCS2-кодировка.
Длинные сообщения (>=160 символов для PDU-кодировки, >70 символов для UCS2-кодировки) урезаются.
print ? %SMS,79201234567,ку-ку%
%SMS.PDU, APhone, AText%
Генерация SMS сообщения в семибитовой PDU-кодировке.
%SMS.UCS2, APhone, AText%
Генерация SMS сообщения в UCS2-кодировке.
%SMS+, APhone, AText%
Генерация сегментированного SMS сообщения с автоматическим определением кодировки.
Если в тексте присутствуют символы > 0x7F, то используется UCS2-кодировка.
Длинные сообщения (>=160 символов для PDU-кодировки, >70 символов для UCS2-кодировки)
разбиваются на сегменты и отправляются по отдельности.
%SMS.PDU+, APhone, AText%
Генерация сегментированного SMS сообщения в семибитовой PDU-кодировке.
%SMS.UCS2+, APhone, AText%
Генерация сегментированного SMS сообщения в UCS2-кодировке.
%SMS^, ASMSText%
%SMS2^, ASMSText%
Приведение SMS сообщения к читабельному виду.
Функция SMS2^ отличается от SMS^ тем, что строки, соответствующие тексту сообщения,
заключены в рамку из символов 0x0B (\v).
Используется действием *AT\SMS.READ для отрисовки текста сообщения другим цветом.
print ? %SMS^,07919702929090F044048105010008906081907330213E050003430202002E003500300020041C0431002E0020041E044104420430043B043E0441044C003A0020003100300032002E003500300020041C0431003B%
%TAG, ARequestID, ATAGKey, ATAGField%
%RequestTAG, ARequestID, ATAGKey, ATAGField%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
Пример использования можно посмотреть в .\CFG\UDO\Balance\RADUGA.ZUDA
%ITAG, ARequestID, ATAGKey, ATAGField%
%RequestITAG, ARequestID, ATAGKey, ATAGField%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
%TAGText, ARequestID, ATAGKey%
%RequestTAGText, ARequestID, ATAGKey%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
%RequestData, ARequestID%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
Пример использования можно посмотреть в .\CFG\UDO\Script\HTTP.DATA.ZUDA
%RequestText, ARequestID%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
Пример использования можно посмотреть в .\CFG\UDO\Script\HTTP.TEXT.ZUDA
%RequestRedirectURL, ARequestID%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
%RequestRedirectParams, ARequestID%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
%RequestLocation, ARequestID%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
Возвращает значение параметра "Location" из ответа на запрос.
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
%RequestJSONParamValue, ARequestID, AParamName%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
Возвращает значение параметра с именем AParamName, описанного в JSON-данных, полученных на запрос ARequestID.
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
Например, если в ответ на запрос ARequestID пришли данные:
{"code":{"value":"0","name":"X"},"data":{"parameters":null,"token":"ABCD"}}
то вызов %RequestJSONParamValue, ARequestID, data.token% возвратит строку ABCD.
Параметр AParamName может иметь такой вид:
• data.token
• data->token
%JSONParamValue, AData, AParamName%
Возвращает значение параметра с именем AParamName, описанного в JSON-данных AData.
Правила обработки данных такие же, как и для функции RequestJSONParamValue
%RequestXMLParamValue, ARequestID, AParamName%
Доступ к результатам запросов при выполнении действия HTTP[S|X]
Возвращает значение параметра с именем AParamName, описанного в XML-данных, полученных на запрос ARequestID.
В качестве ARequestID можно указывать или целочисленный номер запроса (отсчёт от 1) или
строковый идентификатор (параметр ARIdent действия HTTP[S|X]).
Например, если в ответ на запрос ARequestID пришли данные:
|
%XMLParamValue, AData, AParamName%
Возвращает значение параметра с именем AParamName, описанного в XML-данных AData.
Правила обработки данных такие же, как и для функции RequestXMLParamValue
%URLParamValue, AURL, AParamName%
Получаем значение параметра с именем AParamName в запросе AURL.
Например, %URLParamValue, "http://host.ru/action?sid=ABCD", sid% возвратит строку ABCD.
%SDS.VAR, AVarName%
%SDS.GET.VAR, AVarName%
Получение значения переменной AVarName.
|
%SDS.SET.VAR, AVarName, AVarValue%
Присвоение переменной с именем AVarName значения AVarValue.
%FILE^, AFile, ASize, AShift%
Чтение ASize байт из файла AFile со смещением в AShift байт.
Если AShift<0, то смещение считаем от конца файла.
Если ASize≤0, то читаем весь файл.
print ? %FILE^,skyDSuite.exe,2,0%
print ? %UTF16^,%FILE^,TEST.UTF,0,2%%
Системные переменные окружения
Программа понимает системные переменные окружения.
print ? %SystemRoot%\system32\mswsock.dll
Системные переменные окружения можно переопределить в файлах .\CFG\SDS.ZSCRIPT, .\CFG\UDO\SDS.ZUDD, .\CFG\SDS.ZFAV в секции [ENV]
|
Атомарное действие может представлять собой список действий, разделённых символом ' ## ' (пробелы слева и справа обязательны).
Например:
CFG ? SDS.ZCFG ? POS.Left=200 ## CFG.LOAD
Всё, что следует за "//" в описании действия, считается комментарием
Если в описании действия встречается "//", то для правильной работы достаточно будет добавить
пустой комментарий.
|
ВременнЫе рамки задаются после после ключевой фразы Time:
Например:
CFG.SET ? *GXC ? remote.speed_in=60000 Time: [00:00:00-10:00:00)
Пример использования временнЫх рамок атомарного действия (изменение speed_in у глобакса в зависимости от времени).
Если в начале описания атомарного действия встречается символ !, то при выполнении этого действия выводим на экран и в лог только комментарий.
Если в начале описания атомарного действия встречается символ /, то действие выполняется в основном потоке.
Если в начале описания атомарного действия встречается символ \, то действие выполняется в отдельном потоке.
Имена файлов для действий типа 'A', 'a' (запуск приложений) должны быть полными.
Если для запуска используется действие типа 'O', 'o', полный путь к файлу определяется системой.
Передача параметров сервисам не поддерживается.
Если AWaits или APause не определён, то по умолчанию используется нулевое значение.
Ряд действий имеет параметр AOutput ... [>>> AOutput]
Если AOutput указан, то результат выполнения действия будет отправлен в AOutput.
В этом случае на экран будет выведен только факт запуска действия.
Формат AOutput:
file:AFileName - запись данных в ansi-файл AFileName
+file:AFileName - добавление данных к ansi-файлу AFileName
Для тестирования (и не только) действий удобно использовать встроенную командную строчку внизу главного окна программы. Вводим команду, жмём RETURN или F9, наблюдаем за результатом.
Чтобы действия из командной строки выполнялись без подтверждений, необходимо нажимать CTRL+RETURN или CTRL+F9.
Внутреннюю структуру действия, набранного в командной строке, можно подсмотреть нажав CTRL+ALT+A.
Пример
|
ESC
ESCAPE
Остановка выполнения текущего действия
-SDS
EXIT
QUIT
Выходим из программы skyDSuite.
#SDS [?|>> AParams]
Перезапускаем skyDSuite с параметрами AParams.
Если AParams=*, то новый экземпляр skyDSuite запускается с предыдущими параметрами.
#SDS
#SDS >> "CloseActions=PAUSE/10"
SCRIPT ? PerlScript >> SDScript.Action("#SDS >> CloseActions=Pause/10")
PAUSE [/AsPause]
sPAUSE [/AsPause]
msPAUSE [/AmsPause]
SLEEP [/AsPause]
sSLEEP [/AsPause]
msSLEEP [/AmsPause]
DELAY [/AsPause]
sDELAY [/AsPause]
msDELAY [/AmsPause]
Пауза в AsPause секунд или в AmsPause миллисекунд.
PAUSE/10 // 10-и секундная пауза
sPAUSE/10 // 10-и секундная пауза
msPAUSE/200 // 200 миллисекундная пауза
SLEEP/10 // 10-и секундная пауза
CFG ?|>> ACFGFile? ASection.AKey=AValue
CFG.SET ?|>> ACFGFile? ASection.AKey=AValue
Изменение произвольных параметров в файле конфигурации ACFGFile. Если путь к файлу не указан, то ищем файл в директории .\CFG
Если ACFGFile не определён или равен *, то в качестве файла берётся .\CFG\SDS.ZCFG
CFG ? SDS.ZCFG ? POS.Left=200
CFG.SET >> SDS.ZCFG ? MAIN.ScriptFile=SDS.ZSCRIPT
CFG.SET >> * ? MAIN.ScriptFile=SDS.ZSCRIPT
CFG.SET >> MAIN.ScriptFile=SDS.ZSCRIPT
CFG.GET ?|>> ACFGFile? ASection.AKey
Вывод на экран параметров файла конфигурации ACFGFile. Если путь к файлу не указан, то ищем файл в директории .\CFG
Если ACFGFile не определён или равен *, то в качестве файла берётся .\CFG\SDS.ZCFG
CFG.GET ? SDS.ZCFG ? POS.Left
CFG.GET ? %ProgramFiles%\GlobaX\globax.conf ? remote.speed_out
CFG.LOAD
Обновление конфигурации без обновления списка действий планировщика.
CFG.LOAD
CFG ? SDS.ZCFG ? POS.Left=200 ## CFG.LOAD
CFG.LOADS
Обновление конфигурации c обновлением списка действий планировщика.
CFG.LOADS
CFG.SAVE
Сохранение конфигурации.
print[t][:ALOGType] ?|>> AString
Вывод на экран значения AString.
print - строка не содержит время.
printt - строка содержит время.
ALOGType - тип сообщения (info, error, warning, ...)
print ? GIP=%GIP% // выводим IP наземного интерфейса
print:info ? GIP=%GIP% // выводим IP наземного интерфейса
message ?|>> AMessage [/ACloseTimeout]
Вывод сообщения AMessage в окно сообщений.
Окно автоматически закрывается через ACloseTimeout секунд.
-E ? Gmail >>> ::message?Получена почта // Выведем сообщение, если количество полученных писем не нулевое
#P [/APause]
Устанавливаем выбранный приоритет.
После выполнения действия, делаем паузу в APause секунд.
P1 [/APause]
Устанавливаем первый приоритет
После выполнения действия, делаем паузу в APause секунд.
P2 [/APause]
Устанавливаем второй приоритет
После выполнения действия, делаем паузу в APause секунд.
P3 [/APause]
Устанавливаем третий приоритет
После выполнения действия, делаем паузу в APause секунд.
P4 [/APause]
Устанавливаем четвёртый приоритет
После выполнения действия, делаем паузу в APause секунд.
P5 [/APause]
Устанавливаем пятый приоритет
После выполнения действия, делаем паузу в APause секунд.
P6 [/APause]
Устанавливаем шестой приоритет
После выполнения действия, делаем паузу в APause секунд.
PC0 [/APause]
Установка верхней границы приоритета.
Автоматическое определение на основании данных реестра.
После выполнения действия, делаем паузу в APause секунд.
PC1 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 1.
После выполнения действия, делаем паузу в APause секунд.
PC2 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 2.
После выполнения действия, делаем паузу в APause секунд.
PC3 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 3.
После выполнения действия, делаем паузу в APause секунд.
PC4 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 4.
После выполнения действия, делаем паузу в APause секунд.
PC5 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 5.
После выполнения действия, делаем паузу в APause секунд.
PC6 [/APause]
Установка верхней границы приоритета.
Искусственное ограничение приоритета величиной 6.
После выполнения действия, делаем паузу в APause секунд.
print[t].PCeil
Вывод в окно диагностики верхней границы приоритета.
print.PCeil - строка не содержит дату.
printt.PCeil - строка содержит дату.
-CTRL [/APause]
Выключение автоматического контроля за состоянием интернет соединений
После выполнения действия, делаем паузу в APause секунд.
+CTRL [/APause]
Включение автоматического контроля за состоянием интернет соединений
После выполнения действия, делаем паузу в APause секунд.
-Gmode [/APause]
Выключение работы в наземном режиме
После выполнения действия, делаем паузу в APause секунд.
+Gmode [/APause]
Включение работы в наземном режиме
После выполнения действия, делаем паузу в APause секунд.
-SCH [/APause]
-SCHEDULER [/APause]
Выключение планировщика
После выполнения действия, делаем паузу в APause секунд.
+SCH [/APause]
+SCHEDULER [/APause]
Включение планировщика
После выполнения действия, делаем паузу в APause секунд.
#SCH [/APause]
#SCHEDULER [/APause]
Перезапуск планировщика
После выполнения действия, делаем паузу в APause секунд.
-URL[s] [/APause]
Выключение проверки тестовых ссылок
После выполнения действия, делаем паузу в APause секунд.
+URL[s] [/APause]
Включение проверки тестовых ссылок
После выполнения действия, делаем паузу в APause секунд.
URL[s].Lock
Блокировка автоматической проверки ссылок
После выполнения действия, делаем паузу в APause секунд.
URLs.Lock
URL[s].UnLock
Разблокировка автоматической проверки ссылок
После выполнения действия, делаем паузу в APause секунд.
URLs.UnLock
#STAT[s] [/APause]
Создание нового файла статистики трафика
После выполнения действия, делаем паузу в APause секунд.
-STAT[s] [/APause]
Выключение записи в файл статистики трафика
После выполнения действия, делаем паузу в APause секунд.
+STAT[s] [/APause]
Включение записи в файл статистики трафика
После выполнения действия, делаем паузу в APause секунд.
#STAD[s] [/APause]
Создание нового файла статистики DVB карты
После выполнения действия, делаем паузу в APause секунд.
-STAD[s] [/APause]
Выключение записи в файл статистики DVB карты
После выполнения действия, делаем паузу в APause секунд.
+STAD[s] [/APause]
Включение записи в файл статистики DVB карты
После выполнения действия, делаем паузу в APause секунд.
PB.DEFs
PlanB.DEFs
Загрузка настроек плана «Бэ» по умолчанию.
PlanB.DEFs
PB.DEFs
-PB.Alertable
-PlanB.Alertable
Устанавливаем параметр плана «Бэ»: Alertable=0
-PB.Alertable
-PlanB.Alertable
+PB.Alertable
+PlanB.Alertable
Устанавливаем параметр плана «Бэ»: Alertable=1
+PB.Alertable
+PlanB.Alertable
-PB [/APause]
-PlanB [/APause]
Выключение плана «Бэ»
После выполнения действия, делаем паузу в APause секунд.
-PB
-PlanB
+PB [/APause]
+PlanB [/APause]
Включение плана «Бэ»
После выполнения действия, делаем паузу в APause секунд.
+PB
+PlanB
PB.Lock [/APause]
PlanB.Lock [/APause]
Блокировка плана «Бэ»
После выполнения действия, делаем паузу в APause секунд.
PB.Lock
PlanB.Lock
PB.UnLock [/APause]
PlanB.UnLock [/APause]
Разблокировка плана «Бэ»
После выполнения действия, делаем паузу в APause секунд.
PB.UnLock
PlanB.UnLock
PP.DEFs
PlanP.DEFs
Загрузка настроек плана «Пэ» по умолчанию.
PlanP.DEFs
PP.DEFs
+PP [/APause]
+PlanP [/APause]
Включение плана «Пэ»
После выполнения действия, делаем паузу в APause секунд.
+PP
+PlanP
-PP [/APause]
-PlanP [/APause]
Выключение плана «Пэ»
После выполнения действия, делаем паузу в APause секунд.
-PP
-PlanP
>PP [/APause]
>PlanP [/APause]
Синхронизация состояния плана «Пэ» между skyDSuite и
Download Master`ом и Internet Download Accelerator`ом.
После выполнения действия, делаем паузу в APause секунд.
>PP
>PlanP
PP.Lock [/APause]
PlanP.Lock [/APause]
Блокировка плана «Пэ»
После выполнения действия, делаем паузу в APause секунд.
PP.Lock
PlanP.Lock
PP.UnLock [/APause]
PlanP.UnLock [/APause]
Разблокировка плана «Пэ»
После выполнения действия, делаем паузу в APause секунд.
PP.UnLock
PlanP.UnLock
-GChain [/APause]
Выключение цепочки наземных интерфейсов.
После выполнения действия, делаем паузу в APause секунд.
-GChain
+GChain [/APause]
Включение цепочки наземных интерфейсов.
После выполнения действия, делаем паузу в APause секунд.
+GChain
-VChain [/APause]
Выключение цепочки vpn-интерфейсов.
После выполнения действия, делаем паузу в APause секунд.
-VChain
+VChain [/APause]
Включение цепочки vpn-интерфейсов.
После выполнения действия, делаем паузу в APause секунд.
+VChain
##SKY [/APause]
Перезапускаем интернет соединения.
Если {SDS.ZCFG} → [RESTART] → CustomActions=0, то игнорируем действия, описанные в
{SDS.ZSCRIPT} → [ARESTARTsACTIONS],
{SDS.ZSCRIPT} → [ASTOPsACTIONS], {SDS.ZSCRIPT} → [PSTOPsACTIONS],
{SDS.ZSCRIPT} → [IRESTARTsACTIONS],
{SDS.ZSCRIPT} → [ASTARTsACTIONS], {SDS.ZSCRIPT} → [PSTARTsACTIONS],
{SDS.ZSCRIPT} → [PRESTARTsACTIONS]
После выполнения действия, делаем паузу в APause секунд.
#SKY [/APause]
Перезапускаем интернет соединения.
После выполнения действия, делаем паузу в APause секунд.
--SKY [/APause]
Останавливаем интернет соединения.
При этой операции закрываются все программы и сервисы, относящиеся к skyDSL.
Если {SDS.ZCFG} → [RESTART] → CustomActions=0, то игнорируем действия, описанные в
{SDS.ZSCRIPT} → [ASTOPsACTIONS] и {SDS.ZSCRIPT} → [PSTOPsACTIONS]
После выполнения действия, делаем паузу в APause секунд.
-SKY [/APause]
Останавливаем интернет соединения.
При этой операции закрываются все программы и сервисы, относящиеся к skyDSL.
После выполнения действия, делаем паузу в APause секунд.
++SKY [/APause]
Запускаем интернет соединения.
Если {SDS.ZCFG} → [RESTART].CustomActions=0, то игнорируем действия, описанные в
{SDS.ZSCRIPT} → [ASTARTsACTIONS] и {SDS.ZSCRIPT} → [PSTARTsACTIONS]
После выполнения действия, делаем паузу в APause секунд.
+SKY [/APause]
Запускаем интернет соединения.
После выполнения действия, делаем паузу в APause секунд.
-SKY.ACTIVE [/APause]
+SKY.INACTIVE [/APause]
Выключаем интернет соединения.
Если выключена опция Gmode, то запускаем sky2fon.exe до деактивации выбранных сетевых интерфейсов.
При этой операции, относящиеся к skyDSL программы и сервисы остаются активными.
После выполнения действия, делаем паузу в APause секунд.
-SKY.INACTIVE [/APause]
+SKY.ACTIVE [/APause]
Включаем интернет соединения.
Если выключена опция Gmode, то запускаем sky2sky.exe до активации выбранных сетевых интерфейсов.
После выполнения действия, делаем паузу в APause секунд.
#SDSL.CLIENT [/APause]
Перезапускаем tskyclnt.exe.
После выполнения действия, делаем паузу в APause секунд.
-SDSL.CLIENT [/APause]
Закрываем tskyclnt.exe.
После выполнения действия, делаем паузу в APause секунд.
+SDSL.CLIENT [/APause]
Запускаем tskyclnt.exe.
После выполнения действия, делаем паузу в APause секунд.
#SDSL.SVC [/APause]
Перезапускаем сервис skyDSL (tntcraxy).
После выполнения действия, делаем паузу в APause секунд.
-SDSL.SVC [/APause]
Останавливаем сервис skyDSL (tntcraxy).
После выполнения действия, делаем паузу в APause секунд.
+SDSL.SVC [/APause]
Запускаем сервис skyDSL (tntcraxy).
После выполнения действия, делаем паузу в APause секунд.
RESET [/APause]
RESET.AC [/APause]
SDS.RESET [/APause]
SDS.RESET.AC [/APause]
Сброс всех ("длинного" и "короткого") счётчиков трафика.
После выполнения действия, делаем паузу в APause секунд.
RESET.LC [/APause]
SDS.RESET.LC [/APause]
Сброс "длинного" (long) счётчика трафика.
После выполнения действия, делаем паузу в APause секунд.
RESET.SC [/APause]
SDS.RESET.SC [/APause]
Сброс "короткого" (short) счётчика трафика.
После выполнения действия, делаем паузу в APause секунд.
[+]Z|z ? AKey[/APause] >> AValue
Изменение внутренних настроек программы и настроек skyDSL.
После выполнения действия, делаем паузу в APause секунд.
skyDSL.RAS SDSL.RAS skyDSL.RAS.Connection SDSL.RAS.Connection |
Изменение используемого RAS-соединения. Редактируем ключ реестра [HKEY_LOCAL_MACHINE\SOFTWARE\TELES\skyDSL\Autodial]\"ConnName" |
skyDSL.RAS.AutoDial SDSL.RAS.AutoDial |
Изменение параметров используемого RAS-соединения. AValue = 0|1. Редактируем ключ реестра [HKEY_LOCAL_MACHINE\SOFTWARE\TELES\skyDSL\Autodial]\"DialIn" |
skyDSL.RAS.AutoHang SDSL.RAS.AutoHang |
Изменение параметров используемого RAS-соединения. AValue = 0|1. Редактируем ключ реестра [HKEY_LOCAL_MACHINE\SOFTWARE\TELES\skyDSL\Autodial]\"Disconnect" |
SDS.SInterface | Переопределение спутникового интерфейса |
SDS.GInterface | Переопределение "наземного" интерфейса |
SDS.VInterface | Переопределение Vpn-интерфейса |
SDS.IInterface | Переопределение информационного интерфейса |
SDS.AutoControl | Включение/выключение автоматического контроля за состоянием интернет соединений (AValue = 0|1) |
SDS.StartupControl | Включение/выключение проверки состоянием интернет соединений при старте программы (AValue = 0|1) |
SDS.DVBControl | Включение/выключение проверки состояния DVB карты (AValue = 0|1) |
SDS.Gmode SDS.Gmode.Active |
Включение/выключение работы в наземном режиме (AValue = 0|1) |
SDS.STAT SDS.STATs SDS.STAT.Active SDS.STATs.Active |
Включение/выключение записи в файл статистики трафика (AValue = 0|1) |
SDS.STAD SDS.STADs SDS.STAD.Active SDS.STADs.Active |
Включение/выключение записи в файл статистики DVB карты (AValue = 0|1) |
SDS.SCH SDS.Scheduler SDS.SCH.Active SDS.Scheduler.Active |
Включение/выключение планировщика (AValue = 0|1) |
SDS.URL SDS.URLs SDS.URL.Active SDS.URLs.Active |
Включение/выключение проверки тестовых ссылок (AValue = 0|1) |
SDS.PlanB SDS.PlanB.Active |
Включение/выключение плана «Бэ» (AValue = 0|1) |
SDS.Gping SDS.Gping.Active |
Включение/выключение периодических пингов по земле (AValue = 0|1) |
SDS.Sping SDS.Sping.Active |
Включение/выключение периодических пингов по воздуху (AValue = 0|1) |
SDS.GChain SDS.GChain.Active |
Включение/выключение цепочки наземных интерфейсов (AValue = 0|1) |
SDS.VChain SDS.VChain.Active |
Включение/выключение цепочки vpn-интерфейсов (AValue = 0|1) |
SDS.HTTPServer SDS.HTTPServer.Active |
Включение/выключение HTTP сервера (AValue = 0|1) |
SDS.WebDAVServer SDS.WebDAVServer.Active SDS.WDAVServer SDS.WDAVServer.Active |
Включение/выключение WebDAV сервера (AValue = 0|1) |
SDS.Telnet SDS.Telnet.Active SDS.TelnetServer SDS.TelnetServer.Active |
Включение/выключение telnet сервера (AValue = 0|1) |
SDS.HTTPProxyServer SDS.HTTPProxyServer.Active |
Включение/выключение HTTP прокси-сервера (AValue = 0|1) |
SDS.SocksServer SDS.SocksServer.Active |
Включение/выключение Socks сервера (AValue = 0|1) |
$A|a ?|>> AImage
Запоминаем состояние программы AImage.
Результат выполнения этого действия влияет на последующее действие [+]A|a,
запущенное с управляющим символом C.
При отсутствии ошибок, делаем паузу в APause секунд.
$A >> *DM
~A|a [?|>> AImage]
Удаление информации о состоянии программы AImage, полученной ранее при вызове действий $A|a
Если AImage не указан, то удаляется информация о состоянии всех программ.
~A >> *DM
~A
?A|a
Вывод на экран информации о состоянии программ, полученной ранее при вызове действий $A|a
?A
?A|a ? AImage [[/AWaits]/APause]
?A|a [[/AWaits]/APause] >> AImage
Поиск программы AImage среди запущенных программ не более AWaits секунд.
Если программа найдена, то делаем паузу в APause секунд.
?A ? c:\Program Files\Download Master\dmaster.exe /20/5
#A|a ? AImage[?AParam] [>AData] [[/AWaits]/APause]
#A|a [?[>]AData] [[/AWaits]/APause] >> AImage[?AParam]
Перезапускаем программу AImage с параметрами AParam.
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
AData, это комбинация управляющих символов
T | Аварийное закрытие программы (terminate) |
I | Запускать программу в свёрнутом (iconic) виде |
Z | Запускать программу в развёрнутом (zoomed) виде |
C | Проверять предыдущее состояние программы. Программа будет запущена, только если она была запущена до выполнения этого действия |
W | Ожидать завершения работы программы не более AWaits секунд |
-A|a ? AImage [>AData] [[/AWaits]/APause]
-A|a [?[>]AData] [[/AWaits]/APause] >> AImage
Закрываем программу AImage.
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
AData, это комбинация управляющих символов
T | Аварийное закрытие программы (terminate) |
?-A|a ? AImage [[/AWaits]/APause]
?-A|a [[/AWaits]/APause] >> AImage
Ожидание остановки программы AImage не более AWaits секунд (по умолчанию AWaits=5).
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
При отсутствии ошибок, делаем паузу в APause секунд.
?-a /20/0 >> *DM
[+]A|a ? AImage[?AParam] [>AData] [[/AWaits]/APause]
[+]A|a [?[>]AData] [[/AWaits]/APause] >> AImage[?AParam]
Запускаем программу AImage с параметрами AParam.
Если требуется запустить программу от имени пользователя, то AImage должен иметь формат
AUser:APassword << AImage.
При выполнении этого действия результаты предыдущих вызовов действия $A|a стираются.
AData, это комбинация управляющих символов
F | Запускать программу, даже если она уже запущена (forced) |
I | Запускать программу в свёрнутом (iconic) виде |
Z | Запускать программу в развёрнутом (zoomed) виде |
C | Проверять предыдущее состояние программы. Программа будет запущена, только если она была запущена при предыдущем вызове действия $A|a или при отсутствии вызова действия $A|a |
W | Ожидать завершения работы программы не более AWaits секунд |
?+A|a ? AImage [[/AWaits]/APause]
?+A|a [[/AWaits]/APause] >> AImage
Ожидание запуска программы AImage не более AWaits секунд (по умолчанию AWaits=5).
AImage может быть именем исполняемого файла или целочисленным идентификатором процесса.
При отсутствии ошибок, делаем паузу в APause секунд.
?+a /20/0 >> *DM
[+]O|o ? AImage[?AParam] [>AData] [[/AWaits]/APause]
[+]O|o [?[>]AData] [[/AWaits]/APause] >> AImage[?AParam]
Запускаем программу AImage с параметрами AParam. ShellExecuteEx ('open', AImage, AParam)
AData, это комбинация управляющих символов
I | Запускать программу в свёрнутом (iconic) виде |
Z | Запускать программу в развёрнутом (zoomed) виде |
W | Ожидать завершения работы программы не более AWaits секунд |
$S|s ?|>> AKeyname
Запоминаем состояние сервиса AKeyname.
Результат выполнения этого действия влияет на последующее действие [+]S|s,
запущенное с управляющим символом C.
$S >> TrafInspSrv
~S|s [?|>> AKeyname]
Удаление информации о состоянии сервиса AKeyname, полученной ранее при вызове действий $S|s
Если AKeyname не указан, то удаляется информация о состоянии всех сервисов.
~S >> TrafInspSrv
~S
?S|s
Вывод на экран информации о состоянии сервисов, полученной ранее при вызове действий $S|s
?S
?S|s ? AKeyname [[/AWaits]/APause]
?S|s [[/AWaits]/APause] >> AKeyname
Поиск сервиса AKeyname среди запущенных сервисов не более AWaits секунд.
Если сервис найден, то делаем паузу в APause секунд.
?S ? TrafInspSrv /20/5
#S|s ? AKeyname[?AParam] [>AData] [[/AWaits]/APause]
#S|s [?[>]AData] [[/AWaits]/APause] >> AKeyname[?AParam]
Перезапускаем сервис AKeyname с параметрами AParam.
AData, это комбинация управляющих символов
C | Проверять предыдущее состояние сервиса. Сервис будет запущен, только если он был запущен до выполнения этого действия |
W | Ожидать успешной остановки после успешного запуска не более AWaits секунд |
-S|s ? AKeyname [[/AWaits]/APause]
-S|s [[/AWaits]/APause] >> AKeyname
Останавливаем сервис AKeyname.
Ожидаем успешной остановки не более AWaits секунд (по умолчанию AWaits=5).
При отсутствии ошибок, делаем паузу в APause секунд.
-s ? TrafInspSrv /10 // Блокировка трафика (при использовании Traffic Inspector`а)
-s /10 >> TrafInspSrv // Блокировка трафика (при использовании Traffic Inspector`а)
?-S|s ? AKeyname [[/AWaits]/APause]
?-S|s [[/AWaits]/APause] >> AKeyname
Ожидание остановки сервиса AKeyname не более AWaits секунд (по умолчанию AWaits=5).
При отсутствии ошибок, делаем паузу в APause секунд.
?-s /20/0 >> TrafInspSrv
[+]S|s ? AKeyname[?AParam] [>AData] [[/AWaits]/APause]
[+]S|s [?[>]AData] [[/AWaits]/APause] >> AKeyname[?AParam]
Стартуем сервис AKeyname с параметрами AParam.
При выполнении этого действия результаты предыдущих вызовов действия $S|s стираются.
AData, это комбинация управляющих символов
C | Проверять предыдущее состояние сервиса. Сервис будет запущен, только если он был запущен при предыдущем вызове действия $S|s или при отсутствии вызова действия $S|s |
W | Ожидать успешной остановки после успешного запуска не более AWaits секунд |
?+S|s ? AKeyname [[/AWaits]/APause]
?+S|s [[/AWaits]/APause] >> AKeyname
Ожидание запуска сервиса AKeyname не более AWaits секунд (по умолчанию AWaits=5).
При отсутствии ошибок, делаем паузу в APause секунд.
?+s /20/0 >> TrafInspSrv
SCRIPT [? ALanguage][:AOS] [[/ATimeout]/APause] >> AScript [>>> AOutput]
BAT ...
BATCH ...
PSHELL ...
POWERSHELL ...
VBSCRIPT ...
VBESCRIPT ...
JSCRIPT ...
JESCRIPT ...
PERL ...
PSCRIPT ...
PYTHON ...
PYSCRIPT ...
Выполнение bat-скриптов, powershell-скриптов и IActiveScript-скриптов (VBScript, JScript, PerlScript, Python, ...)
По умолчанию ATimeout = {SDS.ZCFG} → [SCRIPT] → Timeout. Отрицательные значения означают бесконечный таймаут.
По умолчанию ALanguage = {SDS.ZCFG} → [SCRIPT] → Language
Если AScript является файлом, то ALanguage определяется по расширению файла (
*.BAT: BAT (BATCH);
*.CMD: BAT (BATCH);
*.PS1: PSHELL (POWERSHELL);
*.VBS: VBScript;
*.VBE: VBScript.Encode;
*.JS: JScript;
*.JSE: JScript.Encode;
*.PL *.PLS: PerlScript;
*.PY *.PYS: Python);
При вызове действий xSCRIPT (VBSCRIPT, VBESCRIPT, ...), если ALanguage не указан явно, то ALanguage будет соответствовать имени действия.
Параметр AOS (Operating System) влияет на завершающие строку символы в многострочных скриптах (unix: #10; mac: #13).
По умолчанию строка заканчивается символами #13#10
После удачного выполнения, делаем паузу в APause секунд.
Дополнительно о скриптах читаем здесь
SCRIPT >> .\SCRIPT\SDSInfo.vbs
BAT >> CD C:\ && DIR
PSHELL >> get-process
SCRIPT >> SDSInfo.vbs
VBSCRIPT >> MsgBox "Script Test"
VBSCRIPT >> R = DLLProc ("user32", "MessageBoxW", "integer", 0, "TEXT", "CAPTION", 1) #10; println R
SCRIPT ? VBScript >> MsgBox "Script Test"
SCRIPT >> dim shell #13;#10; set shell = SDScript.CreateObject("WScript.Shell") #13;#10; shell.Popup("Script Test")
SCRIPT >> dim shell #10; set shell = SDScript.CreateObject("WScript.Shell") #10; shell.Popup("Script Test")
JSCRIPT >> var shell = SDScript.CreateObject("WScript.Shell"); shell.Popup("Script Test");
SCRIPT ? JScript >> var shell = new ActiveXObject("WScript.Shell"); shell.Popup("Script Test");
SCRIPT >> file.vbs ? TEST.txt FF.vbs
SCRIPT >> calc.js
SCRIPT >> notepad.pl
PSCRIPT >> $SDScript->EchoH("Ку-ку"); $SDScript->EchoH2("Ку-ку"); $SDScript->EchoH3("Ку-ку"); $SDScript->EchoH4("Ку-ку"); $SDScript->EchoH5("Ку-ку"); $SDScript->EchoD("Ку-ку");
PSCRIPT >> $SDScript->EchoHI("Ку-ку"); $SDScript->EchoH2I("Ку-ку"); $SDScript->EchoH3I("Ку-ку"); $SDScript->EchoH4I("Ку-ку"); $SDScript->EchoH5I("Ку-ку"); $SDScript->EchoDI("Ку-ку");
PROXY
Выводим на экран настройки прокси.
PROXY
IP ?|>> AIP
Преобразование IP адреса в имя хоста и наоборот.
IP ? 192.168.0.1
IP >> 192.168.0.1
IP ? ifolder.ru
DNS ? AHost [>ADnsHost[:ADnsPort]]
Получаем информацию о AHost от Dns-сервера (ADnsHost:ADnsPort)
Если ADnsHost не указан и в системе не определён Dns-сервер, тогда используется 8.8.8.8
ADnsPort по умолчанию - 53
dns ? www.ru > 8.8.4.4:53
dns ? www.ru
TCP ? ATCP-Server[>ASOCKS5-Server][[/ATimeout]/ARecvTimeout] >> ACommand
Соединение с TCP-сервером ATCP-Server (HOST(IP):PORT) и чтение сообщений от сервера.
При успешном соединении, посылаем на сервер строку ACommand и
ожидаем сообщения от сервера не более ATimeout секунд (по умолчанию ATimeout=0).
При получении данных в пределах ATimeout секунд продолжаем чтение с паузой в ARecvTimeout миллисекунд.
Возможно подключение к TCP-серверу через SOCKS5-сервер.
Соответствующие настройки можно найти в [Главное меню] → Settings → Edit... → Misc → IP
Если ASOCKS5-Server (HOST(IP):PORT) указан явно, то будет использоваться именно этот сервер.
TCP ? time.nist.gov:13 /30/0
TCP ? time.nist.gov:13 > 192.168.0.1:1080 /60/0
TCP ? whois.nic.ru:43 /500 >> yandex.ru
TCP ? whois.internic.net:43 /500 >> yandex.ru#13;#10;
TCP ? whois.internic.net:43 /500 >> yandex.ru#$0D;#$0A;
TCP ? whois.internic.net:43 /500 >> yandex.ru\r\n
DAYTIME ? ADayTime-Server[>ASOCKS5-Server][[/ATimeout]/ARecvTimeout]
DAYTIME ? [>ASOCKS5-Server][[/ATimeout]/ARecvTimeout] >> ADayTime-Server
Соединение с сервером синхронизации ADayTime-Server (HOST(IP):PORT) и вывод на экран полученной строки.
При успешном соединении, ожидаем сообщения от сервера не более ATimeout секунд (по умолчанию ATimeout=30).
При получении данных в пределах ATimeout секунд продолжаем чтение с паузой в ARecvTimeout миллисекунд.
Возможно подключение к серверу синхронизации через SOCKS5-сервер.
Соответствующие настройки можно найти в [Главное меню] → Settings → Edit... → Misc → IP
Если ASOCKS5-Server (HOST(IP):PORT) указан явно, то будет использоваться именно этот сервер.
DAYTIME ? ntp.psn.ru:13
DAYTIME >> ntp.psn.ru:13
DAYTIME ? time.nist.gov:13
DAYTIME ? time.nist.gov:13 > 192.168.0.1:1080
DAYTIME.SYNC ? ADayTime-Server[>ASOCKS5-Server][[[[/ATimeout]/ARecvTimeout]/ADelta]/AGap]
DAYTIME.SYNC ? [>ASOCKS5-Server][[[[/ATimeout]/ARecvTimeout]/ADelta]/AGap] >> ADayTime-Server
Соединение с сервером синхронизации ADayTime-Server (HOST(IP):PORT) и синхронизация локального времени.
При успешном соединении, ожидаем сообщения от сервера не более ATimeout секунд (по умолчанию ATimeout=30).
При получении данных в пределах ATimeout секунд продолжаем чтение с паузой в ARecvTimeout миллисекунд.
От величины полученного с сервера времени отнимаем ADelta миллисекунд.
Время синхронизируется, только если расхождение не менее AGap миллисекунд.
Возможно подключение к серверу синхронизации через SOCKS5-сервер.
Соответствующие настройки можно найти в [Главное меню] → Settings → Edit... → Misc → IP
Если ASOCKS5-Server (HOST(IP):PORT) указан явно, то будет использоваться именно этот сервер.
DAYTIME.SYNC ? time.nist.gov:13
DAYTIME.SYNC >> time.nist.gov:13
DAYTIME.SYNC ? time.nist.gov:13 /1
DAYTIME.SYNC ? time.nist.gov:13 > 192.168.0.1:1080
HTTP[S|X] ?|>> AURL AREQUEST [>AProxy-Server] [>>>AOnFailureAction[::AOnSuccessAction]]
Открываем AURL, посылаем запрос AREQUEST и выводим на экран текстовую составляющую полученной страницы.
Если AURL имеет формат LIST:AFilename[:AFirstLine[:ALastLine]], то предполагается,
что AFilename содержит список адресов и действие вызывается для каждого адреса из диапазона [AFirstLine...ALastLine].
Учитываются только незакомментированные строки.
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
AURL и прокси сервер имеют формат USERNAME:PASSWORD@HOST(IP):PORT
Запрос AREQUEST имеет формат ACommand|AURLPath|AData|AEncoding|ALmap|ARIdent
Если запрос равен DELETE-COOKIE, то удаляются куки, связанные с текущим хостом.
Действие HTTPX автоматически определяет формат запроса (HTTP или HTTPS), в зависимости от параметра AURLPath.
Если AURLPath содержит префикс https://, то используется HTTPS, во всех остальных случаях используется HTTP.
ACommand имеет формат [-][AVerb][-][:ABytes[:AShift]][[,AVersion],AParams], где
AVerb= GET (POST, POST-FORM, ...) (по умолчанию = GET),
ABytes - количество читаемых байт со смещением в AShift байт от начала,
AVersion= HTTP/1.1 (HTTP/1.0, ...) (по умолчанию = HTTP/1.1)
Если ACommand начинается с символа "-" (напр. -POST), то ответ на запрос не читается.
Параметр AVerb может содержать дополнительные управляющие команды:
• -XHR (напр. GET-XHR) - XML Http Request
• -NAR (напр. GET-NAR) - автоматические редиректы игнорируются (INTERNET_FLAG_NO_AUTO_REDIRECT)
Если AURL является файлом, то запрос AREQUEST имеет формат AEncoding|ALmap
Если AREQUEST имеет формат PAUSE|AMilliseconds, то делаем паузу в AMilliseconds миллисекунд.
Если AURL или AREQUEST содержат пробелы, то их нужно заключать в двойные кавычки.
При отображении информации учитываем указанную кодировку AEncoding (ANSI, UTF8, UTF-8, KOI8R, KOI8-R).
Если кодировка не указана в явном виде, то пытаемся определить её автоматически.
ALmap задаёт какие строки и слова выводить на экран.
Если ALmap=null (-,–,nil,no,nicht,nein), то вывода на экран нет.
Идентификатор запроса ARIdent может использоваться в функциях, где требуется номер запроса.
Если при выполнении возникли ошибки, вызывается действие AOnFailureAction.
В противном случае вызывается AOnSuccessAction.
HTTP ? C:\TEMP\TEST.HTML
HTTP ? www.mse.ru GET,HTTP/1.1|docs/mfb/
HTTP ? www.mse.ru GET|docs/mfb/ > 192.168.0.1:8080
HTTP ? www.warandpeace.ru GET|||ANSI
HTTP ? www.cbr.ru
HTTP ? tv.yandex.ru GET|?hour=6&period=24&flag=
HTTPS ? www.nic.ru "POST|whois/|query=flatassembler.net||;$Информация о домене$1..$$-31"
proxyfy[AFlags] ? AHost [[/AProxyCount]/AsTimeout]
Открываем сайт AHost через несколько прокси-серверов.
AFlags - дополнительные параметры действия.
AProxyCount - максимальное количество используемых прокси-серверов.
Если AProxyCount<0, тогда ограничений по количеству серверов нет.
AsTimeout - таймаут выполнения внутренних операций (в секундах).
Список прокси-серверов получаем используя информацию из файла .\CFG\SDS.ZPRX
В секции [SITES] пишем адреса страниц, содержащих списки прокси-серверов.
После выполнения действия заполняются секции
[PROXY] - список рабочих серверов
[TRASH] - список нерабочих серверов (корзина)
Пример файла SDS.ZPRX
|
AFlags | проверка TCP соединения | использование серверов из корзины |
− − или не задано | − | − |
+ − или + | + | − |
− + | − | + |
+ + | + | + |
ping ? AHost[[[/ABufferSize]/AmsTimeout]/ACount] [>>>AOnFailureAction[::AOnSuccessAction]]
ping ? [[[/ABufferSize]/AmsTimeout]/ACount] >> AHost [>>>AOnFailureAction[::AOnSuccessAction]]
Пингуем хост AHost.
Аналог системного ping AHost -n ACount -w AmsTimeout -l ABufferSize
По умолчанию AHost=LOCALHOST, ACount=4, AmsTimeout=4000 (время измеряется в миллисекундах), ABufferSize=32 байта.
Если при выполнении возникли ошибки, вызывается действие AOnFailureAction.
В противном случае вызывается AOnSuccessAction.
ping ? ya.ru
ping ? ya.ru/10
ping ? ya.ru/8000/10
ping ? ya.ru/1/4000/10
gping ? AHost>AData[[[/ABufferSize]/AmsTimeout]/ACount] [>>>AOnFailureAction[::AOnSuccessAction]]
gping ? [>]AData[[[/ABufferSize]/AmsTimeout]/ACount] >> AHost [>>>AOnFailureAction[::AOnSuccessAction]]
Вызов функции пинга по земле.
AData, это комбинация управляющих символов
A | Добавляем маршрут к AHost через наземный интерфейс |
D | Удаляем ранее добавленный маршрут к AHost |
-gping [/APause]
Выключение периодических пингов по земле.
После выполнения действия, делаем паузу в APause секунд.
-gping
+gping [/APause]
Включение периодических пингов по земле.
После выполнения действия, делаем паузу в APause секунд.
+gping
GPing.Lock [/APause]
Блокировка автоматических пингов по земле.
После выполнения действия, делаем паузу в APause секунд.
GPing.Lock
GPing.UnLock [/APause]
Разблокировка автоматических пингов по земле.
После выполнения действия, делаем паузу в APause секунд.
GPing.UnLock
sping ? AHost>AData[[[/ABufferSize]/AmsTimeout]/ACount] [>>>AOnFailureAction[::AOnSuccessAction]]
sping ? [>]AData[[[/ABufferSize]/AmsTimeout]/ACount] >> AHost [>>>AOnFailureAction[::AOnSuccessAction]]
Вызов функции пинга по воздуху.
AData, это комбинация управляющих символов
A | Добавляем маршрут к AHost через спутниковый интерфейс |
D | Удаляем ранее добавленный маршрут к AHost |
-sping [/APause]
Выключение периодических пингов по воздуху.
После выполнения действия, делаем паузу в APause секунд.
-sping
+sping [/APause]
Включение периодических пингов по воздуху.
После выполнения действия, делаем паузу в APause секунд.
+sping
SPing.Lock [/APause]
Блокировка автоматических пингов по воздуху.
После выполнения действия, делаем паузу в APause секунд.
SPing.Lock
SPing.UnLock [/APause]
Разблокировка автоматических пингов по воздуху.
После выполнения действия, делаем паузу в APause секунд.
SPing.UnLock
#R|r ? AConnection[::ACoInterface] [[[[/ACount]/ADelay]/AWaits]/APause]
#R|r [[[[/ACount]/ADelay]/AWaits]/APause] >> AConnection[::ACoInterface]
#R|r [[[[/ACount]/ADelay]/AWaits]/APause] >> AConnection[::ACoInterface] ? [username:...] [password:...] [domain:...] [phone:...] [callback:...]
Перезапуск RAS-соединения AConnection.
Если AConnection=*SInterface, то работаем со спутниковым интерфейсом.
Если AConnection=*GInterface, то работаем с "наземным" интерфейсом.
Если AConnection=*VInterface, то работаем с vpn-интерфейсом.
Если AConnection=*IInterface, то работаем с информационным интерфейсом.
Если не задан ни один из параметров (username, password, domain, phone, callback), читаем
файл SDS.ZRAS
Повторяем попытки дозвона ACount раз с паузой после неудачного дозвона в ADelay секунд.
Если ACount <0, то количество попыток не ограничено.
Если ADelay ≤0, то пауза будет равна 5-и секундам.
Если задан ACoInterface (связанный интерфейс) и он неактивен, то дозвон прекращается.
Ожидаем завершения каждой из операций не более AWaits секунд (AWaits может иметь вид AHangUpWaits:ADialUpWaits).
При отсутствии ошибок, делаем паузу в APause секунд после каждой операции (APause может иметь вид AHangUpPause:ADialUpPause).
#R ? GPRS
#R >> GPRS
#R >> VPN::GPRS
#R >> VPN ? username:homeuser password:111
-R|r ? AConnection [[/AWaits]/APause]
-R|r [[/AWaits]/APause] >> AConnection
Разрыв RAS-соединения AConnection.
Если AConnection=*SInterface, то работаем со спутниковым интерфейсом.
Если AConnection=*GInterface, то работаем с "наземным" интерфейсом.
Если AConnection=*VInterface, то работаем с vpn-интерфейсом.
Если AConnection=*IInterface, то работаем с информационным интерфейсом.
Ожидаем завершения операции не более AWaits секунд.
При отсутствии ошибок, делаем паузу в APause секунд.
-R ? GPRS
-R >> GPRS
[+]R|r ? AConnection[::ACoInterface] [[[[/ACount]/ADelay]/AWaits]/APause]
[+]R|r [[[[/ACount]/ADelay]/AWaits]/APause] >> AConnection[::ACoInterface]
[+]R|r [[[[/ACount]/ADelay]/AWaits]/APause] >> AConnection[::ACoInterface] ? [username:...] [password:...] [domain:...] [phone:...] [callback:...]
Дозвон по RAS-соединению AConnection.
Если AConnection=*SInterface, то работаем со спутниковым интерфейсом.
Если AConnection=*GInterface, то работаем с "наземным" интерфейсом.
Если AConnection=*VInterface, то работаем с vpn-интерфейсом.
Если AConnection=*IInterface, то работаем с информационным интерфейсом.
Если не задан ни один из параметров (username, password, domain, phone, callback), читаем
файл SDS.ZRAS
Повторяем попытки дозвона ACount раз с паузой после неудачного дозвона в ADelay секунд.
Если ACount <0, то количество попыток не ограничено.
Если ADelay ≤0, то пауза будет равна 5-и секундам.
Если задан ACoInterface (связанный интерфейс) и он неактивен, то дозвон прекращается.
Ожидаем завершения операции не более AWaits секунд.
При отсутствии ошибок, делаем паузу в APause секунд.
+R ? GPRS
+R >> GPRS
+R >> VPN::GPRS
+R >> VPN ? username:homeuser password:111
COM [/AIOmsTimeout] >> AComPort[:AComPortSettings] [!]ACommand#1[\pAmsPause] [!]ACommnand#2[\pAmsPause] ...
COM ? AComPort[:AComPortSettings] [!]ACommand#1[\pAmsPause] [!]ACommnand#2[\pAmsPause] ... [/AIOmsTimeout]
Взаимодействие с COM-портом.
Открываем AComPort,
если указаны AComPortSettings, то настраиваем порт,
посылаем команды ACommnand#...,
ждём ответа после каждой команды не более AIOmsTimeout миллисекунд (по умолчанию AIOmsTimeout=2000),
выводим результаты запросов в окно диагностики.
Если AComPortSettings=*, то вызывается диалог настройки порта.
Если перед чтением ответа необходимо сделать паузу, то команда должна завершаться фразой \pAmsPause,
где AmsPause это величина паузы в миллисекундах.
Имя порта и команды разделяются пробелами.
Если ждать ответа на команду не надо, то первым символом должен быть !
com >> com8 ATI1\r AT+CBC\r AT+CSQ\r
com >> com8 ATI1;+CBC;+CSQ\r
com >> com8 ATI1\r\p2000
com >> com8 AT+CUSD=1,"%PDU,*100#%",15\r\p8000 AT+CUSD=2\r\p1000
com >> com1:9600,n,8,1
com >> com1:9600,n,8,1,x
com >> com1:9600,n,8,1,p
com >> com1:"baud=9600 parity=N data=8 stop=1"
com >> com1:*
EJECT [[[/ACount/]AWaits/]APause] >> ADevices [>>>AOnFailureAction[::AOnSuccessAction]]
EJECT ? ADevices [[[/ACount/]AWaits/]APause] [>>>AOnFailureAction[::AOnSuccessAction]]
ADevices - это список устройств ADevice, разделённых запятой.
Извлечение устройства ADevice не более чем с ACount попыток (по умолчанию ACount=5)
с паузой между попытками AWaits секунд (по умолчанию AWaits=5).
Работаем с первым извлекаемым устройством в цепочке родительских устройств.
ADevice - это имя устройства или его идентификатор или имя логического диска или маска для метки логического диска.
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
Если при выполнении возникли ошибки, вызывается действие AOnFailureAction.
В противном случае вызывается AOnSuccessAction.
После успешного выполнения действия, делаем паузу в APause секунд.
EJECT ? G
EJECT ? G,I
EJECT ? Pocket*
EJECT+ [[[/ACount/]AWaits/]APause] >> ADevices [>>>AOnFailureAction[::AOnSuccessAction]]
EJECT+ ? ADevices [[[/ACount/]AWaits/]APause] [>>>AOnFailureAction[::AOnSuccessAction]]
ADevices - это список устройств ADevice, разделённых запятой.
Извлечение устройства ADevice не более чем с ACount попыток (по умолчанию ACount=5)
с паузой между попытками AWaits секунд (по умолчанию AWaits=5).
Работаем с последним извлекаемым устройством в цепочке родительских устройств.
ADevice - это имя устройства или его идентификатор или имя логического диска или маска для метки логического диска.
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
Если при выполнении возникли ошибки, вызывается действие AOnFailureAction.
В противном случае вызывается AOnSuccessAction.
После успешного выполнения действия, делаем паузу в APause секунд.
EJECT+ ? G
EJECT++ [[[/ACount/]AWaits/]APause] >> ADevices [>>>AOnFailureAction[::AOnSuccessAction]]
EJECT++ ? ADevices [[[/ACount/]AWaits/]APause] [>>>AOnFailureAction[::AOnSuccessAction]]
ADevices - это список устройств ADevice, разделённых запятой.
Извлечение устройства ADevice не более чем с ACount попыток (по умолчанию ACount=5)
с паузой между попытками AWaits секунд (по умолчанию AWaits=5) и последующим перезапуском родительского устройства.
Работаем с последним извлекаемым устройством в цепочке родительских устройств.
ADevice - это имя устройства или его идентификатор или имя логического диска или маска для метки логического диска.
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
Если при выполнении возникли ошибки, вызывается действие AOnFailureAction.
В противном случае вызывается AOnSuccessAction.
После успешного выполнения действия, делаем паузу в APause секунд.
EJECT++ ? G
DVB.Restart [?AInitData][/APause]
Перезапуск мониторинга DVB-карты. AInitData - строка инициализации карты.
При отсутствии ошибок, делаем паузу в APause секунд после каждой операции (APause может иметь вид AStopPause:AStartPause).
См. также Взаимодействие с DVB-картой.
DVB.Stop [/APause]
Остановка мониторинга DVB-карты.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.Start [?AInitData][/APause]
Запуск мониторинга DVB-карты. AInitData - строка инициализации карты.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.DiSEqC [/APause]
Вызов фунции SendDiSEqC из библиотеки взаимодействия с DVB-картой.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.Channel [/APause]
Вызов фунции SetChannel из библиотеки взаимодействия с DVB-картой.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.Filter [/APause]
Вызов фунции SetFilter из библиотеки взаимодействия с DVB-картой.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.DeFilter [/APause]
Вызов фунции DelFilter из библиотеки взаимодействия с DVB-картой.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.SyncPIDs [/APause]
Синхронизация PID`ов DVB-карты и skyDSL.
После успешного выполнения действия, делаем паузу в APause секунд.
См. также Взаимодействие с DVB-картой.
DVB.MAC
Вывод на экран MAC-адреса DVB-карты.
См. также Взаимодействие с DVB-картой.
MAC ? AAdapter
Выводим на экран MAC-адрес адаптера AAdapter.
Запрещение вывода MAC-адреса зависит от значения параметра {SDS.ZCFG} → [MAIN] → HideMACs.
Если в директорию .\CFG положить файл
http://standards.ieee.org/regauth/oui/oui.txt,
то в окно диагностики будет выводиться производитель, соответствующий полученному MAC-адресу.
MAC ? DVB
MAC.SET ? AAdapter[?AMAC]
Устанавливаем MAC-адрес адаптера AAdapter.
При выполнении этого действия редактируем ключ реестра
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\...]\"NetworkAddress"
Если в директории .\CFG\ найдётся файл с именем AMAC, то маска выбирается случайным образом
из списка масок в секции [MASK] этого файла (см. пример в .\CFG\SDS.ZMAC).
Последний MAC-адрес храним в {SDS.ZCFG} → [NetCfgInstanceIDs].
Если в директорию .\CFG положить файл
http://standards.ieee.org/regauth/oui/oui.txt,
то в окно диагностики будет выводиться производитель, соответствующий полученному MAC-адресу.
MAC.SET ? DVB // сбрасываем значение ключа "NetworkAddress"
MAC.SET ? DVB?------++++++ // первые 3 байта не трогаем; меняем случайным образом последние 3 байта
MAC.SET ? DVB?00D05C++++++ // меняем первые 3 байта на 00D05C; меняем случайным образом последние 3 байта
MAC.SET ? DVB?001122334455 // меняем все байты на явно указанные величины
MAC.GET ? AAdapter[?AMAC]
Генерация и вывод на экран нового MAC-адреса адаптера AAdapter.
Алгоритм вычисления адреса такой же как и при вызове MAC.SET, только реально ничего не меняется.
Используем в тестовых целях.
Если в директории .\CFG\ найдётся файл с именем AMAC, то маска выбирается случайным образом
из списка масок в секции [MASK] этого файла (см. пример в .\CFG\SDS.ZMAC).
Если в директорию .\CFG положить файл
http://standards.ieee.org/regauth/oui/oui.txt,
то в окно диагностики будет выводиться производитель, соответствующий полученному MAC-адресу.
MAC.GET ? DVB // выводим на экран последний MAC-адрес (хранится в {SDS.ZCFG} → [NetCfgInstanceIDs])
MAC.GET ? DVB?------++++++ // первые 3 байта не трогаем; меняем случайным образом последние 3 байта
MAC.GET ? DVB?00D05C++++++ // меняем первые 3 байта на 00D05C; меняем случайным образом последние 3 байта
MAC.GET ? DVB?001122334455 // меняем все байты на явно указанные величины
?D|d ? ADevice[[/AWaits]/APause]
?D|d [[/AWaits]/APause] >> ADevice
Поиск физического устройства ADevice не более AWaits секунд.
ADevice - это имя устройства, его идентификатор (Instance ID) или имя логического диска.
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
При отсутствии ошибок, делаем паузу в APause секунд.
?D ? HUAWEI Mobile Connect - 3G Modem
?D >> HUAWEI Mobile Connect - 3G Modem
#D|d ? ADevice[/APause]
#D|d [/APause] >> ADevice
Перезапуск физического устройства ADevice.
ADevice - это имя устройства или его идентификатор (Instance ID).
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
При отсутствии ошибок, делаем паузу в APause секунд после каждой операции (APause может иметь вид ADisablePause:AEnablePause).
#D ? ModemPCI
#D >> ModemPCI
#D >> ModemPCI/5:10
-D|d ? ADevice[/APause]
-D|d [/APause] >> ADevice
Запрещение (disable) физического устройства ADevice.
ADevice - это имя устройства или его идентификатор (Instance ID).
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
При отсутствии ошибок, делаем паузу в APause секунд.
-D ? ModemPCI
-D >> ModemPCI
[+]D|d ? ADevice[/APause]
[+]D|d [/APause] >> ADevice
Разрешение (enable) физического устройства ADevice.
ADevice - это имя устройства или его идентификатор (Instance ID).
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
При отсутствии ошибок, делаем паузу в APause секунд.
+D ? ModemPCI
+D >> ModemPCI
^D|d ?|>> ADevice
Выводим на экран родительские устройства для устройства ADevice.
ADevice - это имя устройства, его идентификатор (Instance ID) или имя логического диска.
Список устройств можно посмотреть через Главное меню → Display → Devices (выводится имя устройства и его идентификатор).
^D ? C
modem.reset
Сброс настроек модема.
modem.reset
modem.get ? AIDmask
Автоматический выбор модема.
AIDmask - маска для выбора модема по идентификатору.
Идентификатор - это "модель:imei:imsi" (например, E367:300000000000000:200000000000000)
Автоматический выбор будет осуществлён, только если текущие установки модема окажутся некорректными.
modem.get
modem.get ? E367:*
modem.map ? AIDmask
Проверка всех установленных в системе модемов и связанных с ними com-портов,
которые используются при вызове modem.get
AIDmask - маска для выбора модема по идентификатору.
Идентификатор - это "модель:imei:imsi" (например, E367:300000000000000:200000000000000)
modem.map
modem.map ? E367:*
DM... [/APause]
IDA... [/APause]
Взаимодействие с Download Master`ом (DM) и Internet Download Accelerator`ом (IDA).
Плагин zdmBridge.DLL необходимо положить в ...\Download Master\Plugins\ или в ...\Internet Download Accelerator\Plugins\
Параметры взаимодействия описываются на странице "Misc" окна настроек и в {SDS.ZCFG} → [DM&IDA].
Ждём окончания выполнения операции CommandWaits секунд (по умолчанию = 30 секунд).
При возникновении ошибок, повторяем это действие CommandCount раз (по умолчанию = 5).
Если выставлен флаг RestartOnError (по умолчанию = 1) и произошла ошибка, перезапускаем DM или IDA.
Ожидаем успешного завершения каждой из операций закрытия/запуска не более RestartWaits секунд (по умолчанию = 20 секунд).
После успешного перезапуска, делаем паузу в RestartPause секунд (по умолчанию = 10 секунд).
После успешного выполнения основного действия, делаем паузу в APause секунд.
DM.ACTION ? AAction,AParams[/APause]
DM.ACTION [/APause] >> AAction,AParams
IDA.ACTION ? AAction,AParams[/APause]
IDA.ACTION [/APause] >> AAction,AParams
Выполнение произвольной команды.
При получении этого сообщения плагин вызывает метод IDMInterface.DoAction(AAction,AParams).
DM.ACTION/5 >> AddingURL,<url>http://maalchemist.narod.ru/SVC/SVCv1.0.0.45a.rar</url> <hidden>1</hidden> <start>0</start> // Добавить закачку
DM.ACTION/5 >> GetDownloadIDsList, // Получаем список ID (разделенных пробелами) всех закачек из списка
DM.ACTION/5 >> GetDownloadInfoByID,1 // Возвращаем информацию (в XML формате) о закачке с указанным ID
DM.ACTION/5 >> StartAll // Стартовать все незавершенные закачки
DM.ACTION/5 >> StopAll // Остановить все закачки
DM.ACTION/5 >> StartSheduled // Стартовать все запланированные закачки
DM.ACTION/5 >> StopSheduled // Остановить все запланированные закачки
DM.ACTION/5 >> ChangeSpeed,0 // Скорость соединения - максимальная
DM.ACTION/5 >> ChangeSpeed,1 // Скорость соединения - средняя
DM.ACTION/5 >> ChangeSpeed,2 // Скорость соединения - низкая
DM.ACTION/5 >> ChangeSpeed,3 // Скорость соединения - автоматическая
DM.ACTION/5 >> ChangeSpeed,4 // Скорость соединения - регулируемая
DM.ACTION/5 >> ChangeMaxDownloads,3 // Максимальное к-во одновременных закачек
DM.START.ALL [/APause]
IDA.START.ALL [/APause]
Стартовать все незавершенные закачки.
DM.START.ALL/5
DM.STOP.ALL [/APause]
IDA.STOP.ALL [/APause]
Остановить все закачки.
DM.STOP.ALL/5
[+]E|e ? AMailList[[?]>AData] >> ASubject?ABody
Посылаем письма по описанным в AMailList адресам.
AMailList - имя секции ини-файла (.\CFG\SDS.ZMAIL), содержащей список адресов рассылки или
список адресов в явном виде, разделённых запятой.
AData, это комбинация управляющих символов
M | Используем MAPI |
Для работы SSL/TLS необходимо положить рядом со skyDSuite или в системную директорию две библиотеки (ssleay32.dll и libeay32.dll). Их можно найти здесь http://indy.fulgan.com/SSL
Пример файла с описанием параметров SMTP и адресов рассылки.
Учитываются только незакомментированные адреса.
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
|
SECURE = [UseTLS]:[AuthType]
SSL = [SSLVersion]:[SSLMode]
-E|e ? AServerList [>>>AOnFailureAction[::AOnSuccessAction]]
Проверяем наличие писем на серверах AServerList.
Если получены письма, вызывается действие AOnSuccessAction.
В противном случае вызывается AOnFailureAction.
Используется POP3 с поддержкой SSL/TLS.
AServerList - список секций ини-файла (.\CFG\SDS.ZMAIL), содержащих параметры серверов.
-E ? Gmail
-E ? Gmail,Yandex
-E ? Gmail >>> ::message ? Получена почта // Выведем сообщение, если количество полученных писем не нулевое
Пример файла с описанием серверов.
|
SECURE = [UseTLS]:[AuthType]
SSL = [SSLVersion]:[SSLMode]
SDS.VAR ?|>> AVarName?AVarValue
SDS.SET.VAR ?|>> AVarName?AVarValue
Присвоение переменной с именем AVarName значения AVarValue.
|
cmd ?|>> ACommand [>>> AOutput]
Вызов системной командной строки (cmd /c ACommand) и вывод результатов в окно диагностики skyDSuite
cmd ? netstat -a // выводим активные соединения
cmd ? route print // выводим таблицу маршрутов
cmd >> route print // выводим таблицу маршрутов
psh ?|>> ACommand [>>> AOutput]
Выполнение команды (powershell -nologo ACommand) и вывод результатов в окно диагностики skyDSuite
psh ? get-process // выводим список запущенных приложений
psh ? get-service // выводим список сервисов
wmic ?|>> ACommand [>>> AOutput]
Командная строка WMI
wmic ? process // выводим список запущенных приложений
wmic ? cpu // выводим информацию о процессоре
pipe ?|>> APipe ? AData
Запись данных AData в именованный канал APipe
pipe >> \\.\pipe\pipename ? hello
pipe ? \\.\pipe\SKYDSUITE–IPC-PIPE-A443238C-9FC8-48BA-9FFB-F25C678D06D6 ? hello
pipe >> \\.\pipe\SKYDSUITE–IPC-PIPE-A443238C-9FC8-48BA-9FFB-F25C678D06D6 ? hello
+MONITOR [/APause]
Включаем монитор.
После выполнения действия, делаем паузу в APause секунд.
-MONITOR [/APause]
Выключаем монитор.
После выполнения действия, делаем паузу в APause секунд.
~MONITOR [/APause]
Переводим монитор в режим энергосбережения.
После выполнения действия, делаем паузу в APause секунд.
LOGOFF
Завершаем текущий сеанс.
SHUTDOWN
Выключаем компьютер.
RESTART
REBOOT
Перегружаем компьютер.
STANDBY
Переводим компьютер в режим ожидания.
HIBERNATE
Переводим компьютер в спящий режим.
#TRAY
Перерисовка системного лотка.
-SUSPEND
-STANDBY
-HIBERNATE
Запрещаем перевод компьютера в спящий режим или в режим ожидания.
Устанавливаем значение {SDS.ZCFG} → [MAIN] → PreventSuspend = 1
+SUSPEND
+STANDBY
+HIBERNATE
Разрешаем перевод компьютера в спящий режим или в режим ожидания.
Устанавливаем значение {SDS.ZCFG} → [MAIN] → PreventSuspend = 0
?SUSPEND
?STANDBY
?HIBERNATE
Получаем значение {SDS.ZCFG} → [MAIN] → PreventSuspend
WAKEUP
Выводим компьютер из спячки.
SystemError ?|>> AErrorCode
RASError ?|>> AErrorCode
SetupApiError ?|>> AErrorCode
CfgMgrError ?|>> AErrorCode
InternetError ?|>> AErrorCode
Вывод на экран описания соответствующих ошибок. Выполняется из командной строки.
SystemError ? 1001
SystemError >> 87
RASError ? 630
CfgMgrError >> 23
Windows [?|>> AImage] [>>> AOutput]
TopWindows [?|>> AImage] [>>> AOutput]
Вывод на экран списка окон приложения AImage. Выполняется из командной строки.
AImage может быть именем или маской исполняемого файла или целочисленным идентификатором запущенного процесса.
Если AImage не задан, то выводятся все окна программы skyDSuite.
Если AImage=*, то выводятся все найденные окна всех приложений.
Windows
Windows ? *
Windows ? c:\Program Files\Download Master\dmaster.exe
Windows ? firefox
TopWindows ? *DM
TopWindows >> *DM
Types [?|>> ATypeLibrary] [>>> AOutput]
Typess [?|>> ATypeLibrary] [>>> AOutput]
Вывод на экран списка типов, определённых в ATypeLibrary.
При вызове Typess выводим списки типов, определённых в связанных с ATypeLibrary библиотеках.
ATypeLibrary может быть целочисленным идентификатором запущенного процесса.
Если ATypeLibrary не определена, то выводим типы, определённые в skyDSuite.
Types
Types ? skyDSuite.exe
Typess ? skyDSuite.exe
Types ? msscript.ocx
Types ? winmgmts:\\.\root\cimv2:Win32_Service
AxModules [?|>> AImage] [>>> AOutput]
Вывод на экран списка ActiveX модулей, загруженных приложением AImage.
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
AxModules
Modules [?|>> AImage] [>>> AOutput]
Вывод на экран списка модулей, загруженных приложением AImage.
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
Modules ? 1234
Moduless
PEImport [?|>> APEFile] [>>> AOutput]
Вывод на экран списка библиотек импорта исполняемого файла APEFile.
APEFile может быть именем файла или целочисленным идентификатором запущенного процесса.
Если APEFile не определён, то в качестве файла используем skyDSuite.exe
PEImport
PEImport ? skyDSuite.exe
PEImport ? skyDSuite.exe >>> file:"D:\output.txt"
PEImport ? skyDSuite.exe >>> +file:"D:\output.txt"
PEImport+ [?|>> APEFile] [>>> AOutput]
Вывод на экран списка библиотек импорта и импортируемых функций исполняемого файла APEFile.
APEFile может быть именем файла или целочисленным идентификатором запущенного процесса.
Если APEFile не определён, то в качестве файла используем skyDSuite.exe
PEImport+
PEImport+ ? skyDSuite.exe
PEImport++ [?|>> APEFile] [>>> AOutput]
Вывод на экран списка библиотек импорта и импортируемых функций исполняемого файла APEFile.
APEFile может быть именем файла или целочисленным идентификатором запущенного процесса.
Если функция экспортируется по индексу, то пытаемся определить её имя.
Если APEFile не определён, то в качестве файла используем skyDSuite.exe
PEImport++
PEImport++ ? skyDSuite.exe
PEExport [?|>> APEFile] [> ASort] [>>> AOutput]
PEExport+ [?|>> APEFile] [> ASort] [>>> AOutput]
PEExport++ [?|>> APEFile] [> ASort] [>>> AOutput]
Вывод на экран списка экспортируемых из APEFile функций.
APEFile может быть как именем файла, так и целочисленным идентификатором запущенного процесса.
ASort - способ сортировки функций
n name |
Сортировка по имени |
o ord ordinal |
Сортировка по порядковому номеру |
a addr address |
Сортировка по адресу |
[+]P|p ? AMSG,AWPARAM,ALPARAM [[/ACount]/APause] >> AImage?AClass
?P|p ? AMSG,AWPARAM,ALPARAM [[/ACount]/AWaits/APause] >> AImage?AClass
Посылка сообщений окну с именем класса AClass в приложении AImage.
Вызывается системная функция PostMessage с указанными параметрами.
AImage может быть именем или маской исполняемого файла или целочисленным идентификатором запущенного процесса.
Если AClass = * - сообщение посылается всем окнам приложения AImage.
Если AClass = ** - сообщение посылается всем top-level окнам приложения AImage.
Если AClass не определён, выбирается первое попавшееся в приложении AImage окно.
При выполнении действия ?P ожидаем запуска приложения AImage AWaits секунд.
Функция PostMessage вызывается ACount раз.
При отсутствии ошибок, делаем паузу в APause секунд.
P ? 0x111,62,0 /20 >> *UT?** // Остановка всех закачек у µTorrent (UT)
P ? 0x111,61,0 /5 >> *UT?** // Старт всех закачек у µTorrent (UT)
P ? 0x111,0x803F,0 /5 >> *FDM?Free Download Manager Main Window // Остановка всех закачек у Free Download Manager (FDM)
P ? 0x111,0x803E,0 /5 >> *FDM?Free Download Manager Main Window // Старт всех закачек у Free Download Manager (FDM)
P ? 0x111,0x800E,0 /5 >> *OD?orbitdm_app // Остановка всех закачек у Orbit Downloader (OD)
P ? 0x111,0x800D,0 /5 >> *OD?orbitdm_app // Старт всех закачек у Orbit Downloader (OD)
P ? 0x111,226,0 /5 >> *RGD?** // Остановка всех закачек у ReGet Deluxe (RGD)
P ? 0x111,225,0 /5 >> *RGD?** // Старт всех закачек у ReGet Deluxe (RGD)
P ? 0x111,0x8022,0 /5 >> *FG?JetCar Class // Остановка всех закачек у FlashGet (FG)
P ? 0x111,0x8051,0 /5 >> *FG?JetCar Class // Старт всех закачек у FlashGet (FG)
[+]T|t ? AMSG,AWPARAM,ALPARAM [[/ACount]/APause] >> AImage?AClass
?T|t ? AMSG,AWPARAM,ALPARAM [[/ACount]/AWaits/APause] >> AImage?AClass
Посылка сообщений потоку окна с именем класса AClass в приложении AImage.
Вызывается системная функция PostThreadMessage с указанными параметрами.
AImage может быть именем или маской исполняемого файла или целочисленным идентификатором запущенного процесса.
Если AClass = * - сообщение посылается потокам всех окон приложения AImage.
Если AClass = ** - сообщение посылается потокам всех top-level окон приложения AImage.
Если AClass не определён, выбирается первое попавшееся в приложении AImage окно
и сообщение посылается потоку этого окна.
При выполнении действия ?T ожидаем запуска приложения AImage AWaits секунд.
Функция PostThreadMessage вызывается ACount раз.
При отсутствии ошибок, делаем паузу в APause секунд.
[+]K|k ? AKeys [[/AWaits]/APause] >> AImage?AClass
Жмём клавиатуре кнопки AKeys.
Если определён AImage, то жмём кнопки в направлении AImage → AClass.
AImage может быть именем исполняемого файла или целочисленным идентификатором запущенного процесса.
AParam в этом случае, это наименование класса окна, которому будет направлен ввод.
При отсутствии ошибок, делаем паузу в APause секунд.
K ? C >> c:\Program Files\Winamp\winamp.exe
K ? CTRL+ALT+HOME,F1 /10
k ? C >> c:\Program Files\Winamp\winamp.exe
k ? CTRL+ALT+HOME,F1 /10
[+]B|b [[[/ABeepCount]/APostBeepDelay]/ABeepType]
BEEP [[[/ABeepCount]/APostBeepDelay]/ABeepType]
Воспроизведение системных звуков.
APostBeepDelay измеряется в миллисекундах.
ABeepType - тип сигнала:
0 - Встроенный динамик
1 - Стандартный звук
2 - Звук "Критическая ошибка"
3 - Звук "Вопрос"
4 - Звук "Восклицание"
5 - Звук "Звездочка"
Если ABeepCount<1, то звуковой сигнал подаётся бесконечно долго. Точнее, до нажатия Esc.
b/2/1000/1
beep
SOUND ? AFile [/ACount[/APause]]
SOUND [/ACount[/APause]] >> AFile
Проигрываем звуковой файл AFile (wave-формат) ACount раз с паузой APause секунд.
sound ? oops.wav
sound ? oops.wav /10
sound ? oops.wav /10/1
-HTTPServer [/APause]
Выключение HTTP сервера
После выполнения действия, делаем паузу в APause секунд.
+HTTPServer [/APause]
Включение HTTP сервера
После выполнения действия, делаем паузу в APause секунд.
-WebDAVServer [/APause]
-WDAVServer [/APause]
Выключение WebDAV сервера
После выполнения действия, делаем паузу в APause секунд.
+WebDAVServer [/APause]
+WDAVServer [/APause]
Включение WebDAV сервера
После выполнения действия, делаем паузу в APause секунд.
-Telnet [/APause]
-TelnetServer [/APause]
Выключение telnet сервера
После выполнения действия, делаем паузу в APause секунд.
+Telnet [/APause]
+TelnetServer [/APause]
Включение telnet сервера
После выполнения действия, делаем паузу в APause секунд.
-HTTPProxyServer [/APause]
Выключение HTTP прокси-сервера
После выполнения действия, делаем паузу в APause секунд.
+HTTPProxyServer [/APause]
Включение HTTP прокси-сервера
После выполнения действия, делаем паузу в APause секунд.
-SocksServer [/APause]
Выключение Socks сервера
После выполнения действия, делаем паузу в APause секунд.
+SocksServer [/APause]
Включение Socks сервера
После выполнения действия, делаем паузу в APause секунд.
Каждому пункту меню Display соответствует действие
|
Действие Display.*** можно вызвать как ^***
^Processes тоже самое, что и Display.Processes
^Processes[+] [?|>> Amask] [>>> AOutput]
Display.Processes[+] [?|>> Amask] [>>> AOutput]
Вывод на экран списка процессов.
Выводятся процессы, имена которых соответствуют маске Amask.
Если маска не задана, то выводятся все процессы.
Если указан символ "+", то выводим командную строку процесса.
^Processes
^Processes ? svchost
^Processes+ ? svchost
^Services [?|>> Amask] [>>> AOutput]
^Services.Name [?|>> Amask] [>>> AOutput]
^Services.Binary [?|>> Amask] [>>> AOutput]
Display.Services [?|>> Amask] [>>> AOutput]
Display.Services.Name [?|>> Amask] [>>> AOutput]
Display.Services.Binary [?|>> Amask] [>>> AOutput]
Вывод на экран списка сервисов.
Выводятся сервисы, имена которых соответствуют маске Amask.
Если маска не задана, то выводятся все сервисы.
*Services - сортировка списка по отображаемому имени сервиса.
*Services.Name - сортировка списка по имени сервиса.
*Services.Binary - сортировка списка по имени исполняемого файла.
^Services
^Services.Name
^Services ? svchost
^Drivers [?|>> Amask] [>>> AOutput]
^Drivers.Name [?|>> Amask] [>>> AOutput]
^Drivers.Binary [?|>> Amask] [>>> AOutput]
Display.Drivers [?|>> Amask] [>>> AOutput]
Display.Drivers.Name [?|>> Amask] [>>> AOutput]
Display.Drivers.Binary [?|>> Amask] [>>> AOutput]
Вывод на экран списка драверов.
Выводятся драверы, имена которых соответствуют маске Amask.
Если маска не задана, то выводятся все драверы.
*Drivers - сортировка списка по отображаемому имени дравера.
*Drivers.Name - сортировка списка по имени дравера.
*Drivers.Binary - сортировка списка по имени исполняемого файла.
^Drivers
^Drivers.Name
^Drivers ? usb
GROUP
Если требуется запустить несколько действий одновременно, то их нужно описать внутри конструкции
<GROUP>...</GROUP> (+GROUP...-GROUP)
|
BLOCK
Если требуется запустить несколько действий последовательно, то их нужно описать внутри конструкции
<BLOCK>...</BLOCK> (+BLOCK...-BLOCK)
Действия будут запущены последовательно, даже если конструкция <BLOCK>...</BLOCK> находится внутри конструкции <GROUP>...</GROUP>
|
|
Для вящего удобства существует возможность описания набора атомарных действий, как одного действия, которое и получило название молекулярного.
Например, используя только атомарные действия, имеем
|
Теперь тоже самое, но используя молекулярные действия
|
Или даже так
|
Описываются молекулярные действия в файле описания скриптов SDS.ZSCRIPT. Выглядит это как обычное описание набора действий.
Формат описания молекулярного действия
[ Имя молекулярного действия ]
Active | Флаг активности молекулярного действия (1|0) |
Time | Временные рамки активности действия |
Описание действий |
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
Учитываются незакомментированные атомарные действия, для которых "Флаг активности молекулярного действия"=1
Нам хочется, чтобы поведение действия по установке приоритета *SET.PRIORITY зависело от времени? Пишем
|
Нам хочется, чтобы программа управляла торрент клиентом только ночью (с 02:00:00 до 08:00:00)? Пишем
|
Существует возможность описания молекулярного действия в отдельном файле.
Такие файлы должны лежать в директории .\CFG\UDO\ и иметь расширение .ZUDA (ze User Defined Actions).
Имя файла (без расширения), является именем действия.
Формат описания молекулярного действия
[ ACTION ]
Comment | Описание действия |
Active | Флаг активности молекулярного действия (1|0) |
System | Флаг системного действия (1|0) (по умолчанию = 0) |
HotKey | Горячие клавиши для вызова действия. Если HotKey начинается с символа ! (напр. !CTRL+ALT+HOME), то область действия горячей клавиши - глобальная (соответствующее действие будет вызываться, даже если skyDSuite не активен) |
Gmode | Флаг активности молекулярного действия при работе в наземном режиме (1|0) (по умолчанию = 1) |
Offline | Флаг активности молекулярного действия при работе в offline-режиме (1|0) (по умолчанию = 1). Offline-режимом называем состояние системы во время перезапуска интернет соединений, при неактивности выбранных интерфейсов, при отсутствии шлюза по умолчанию |
Confirm | Флаг необходимости подтверждения выполнения действия (1|0) (по умолчанию = 1) |
Separate | Флаг необходимости создания отдельного потока для выполнения действия (1|0) (по умолчанию = 0) Максимальное количество потоков равно 64 |
Display | Направление вывода диагностических сообщений (по умолчанию = 1) |
Time | Временные рамки активности действия |
Пример описания действия (получение информации о своём IP адресе).
Вызывается как *IP\GET.TESTIP.FULL
|
Пример описания действия
|
Системные действия (System=1) запускаются вместе со стартом skyDSuite.
Чтобы заблокировать запуск системных действий необходимо выключить настройку
{SDS.ZCFG} → [MAIN] → EnableSysActions (по умолчанию = 1)
В секции [SCRIPT] описывается одно действие.
Допускается запись вида [SCRIPT // AComment], где AComment это комментарий, который будет использоваться при выводе в окно диагностики.
Секций [ACTIONS] и [SCRIPT] может быть несколько.
В секциях [ALIAS], [VAR], [CRYPT] описываем локальные псевдонимы (переменные), которые действуют только в пределах данного молекулярного действия. Приоритет локальных псевдонимов (переменных) наивысший.
В секции [SCHEDULER] можно запланировать автоматический запуск действия по расписанию.
Для вызова молекулярного действия перед его названием ставим звёздочку (*).
Параметры действия
Существует возможность передачи параметров молекулярному действию.
Ниже описанное действие вызывается так: *whois tarelki.ru
|
Просмотр файлов действий (*.ZUDA)
Главное меню → View → User-defined Actions...
При описании действий можно указывать время активности действия.
Для молекулярного действия это ключ Time. Для атомарного действия временнЫе рамки задаются после ключевой фразы Time:
Time=02:00:00-08:00:00 (действие активно с 02:00:00 до 08:00:00 включительно)
Time=02:00:00-08:00:00/1111100 (действие активно с 02:00:00 до 08:00:00 включительно, но только по будням)
Time=[00:00:00-02:00:00),[08:00:00-24:00:00)
Time=[02:00:00-08:00:00]/1111100;
[00:00:00-02:00:00),(08:00:00-24:00:00)/0000011
Если Time начинается с символа !, то действие не запускается в выходные дни, описанные в файле .\CFG\SDS.ZRDAYS
Time=![10:00:00-18:00:10]/1111100
Если Time начинается с символа $, то временные рамки учитываются,
только если действие было запущено планировщиком
Time=$[10:00:00-18:00:10]/1111100
Если требуется игнорировать в выходные дни не всё действие, а только некоторые временные интервалы, то следует писать так
Time=[10:00:00-18:00:10]/1111100;
[19:00:00-20:00:10]/1111100/-
Временной интервал [19:00:00-20:00:10] не будет учитываться в выходные дни
Если требуется учитывать временной интервал только в выходные дни, то следует писать так
Time=[10:00:00-18:00:10]/1111100;
[19:00:00-20:00:10]/1111100/+
Временной интервал [19:00:00-20:00:10] будет учитываться только в выходные дни
[TIME = TIME
TIME] = TIME
(TIME = TIME + 1 миллисекунда
TIME) = TIME - 1 миллисекунда
Список выходных дней
|
Поддерживается запуск
bat-скриптов, powershell-скриптов и IActiveScript-скриптов
(VBScript, JScript, PerlScript, Python, ...)
Список используемых интерфейсов можно увидеть, выполнив команду Types в командной строке.
Методы и свойства ISDScript доступны через объекты SDScript, WScript и CScript.
При желании, это можно изменить отредактировав {SDS.ZCFG} → [SCRIPT] → InterfaceObjects.
|
|
|
Пример: создание TCP-сервера
|
Пример: получение списка сервисов и сохранение полученных данных в html-формате
|
Существует возможность создать дополнительную панель управления, описав её в файле .\CFG\UTB\SDS.ZUTB
В качестве картинок используются BMP-файлы размером 24*24
Отредактировать файл можно в [Главное меню] → Settings → Toolbar...
Пример описания
|
Список избранных действий описывается в {SDS.ZSCRIPT} → [FAVORITES] или в .\CFG\UDO\SDS.ZUDD или в .\CFG\SDS.ZFAV
Использование файла .\CFG\SDS.ZFAV предпочтительнее.
|
Быстрый доступ к избранным действиям возможен через кнопку "Favorite Actions" (со звездой во лбу).
Если действие описано как
|
Псевдонимы (переменные) описываются в секции [ALIAS] или [VAR]
Пример использования псевдонима (переменной)
|
Эквивалентно
|
Псевдонимы можно описывать в файлах .\CFG\SDS.ZVAR и .\CFG\UDO\SDS.ZUDD
Использование файла SDS.ZVAR предпочтительнее.
Шифрованные данные описываются в секции [CRYPT]
Предположим, что нам требуется прописать шифрованные данные в скрипте какого-нибудь действия.
Выбирает скрипт действия: Главное меню → View → User-defined Actions...
Пишем следующее:
|
Сохраняем изменения.
При этом параметр password будет зашифрован, а параметр username останется в первозданном виде.
Для секции параметров [CRYPT] действуют такие правила:
• если значение параметра начинается с символа "!", то параметр не шифруется.
• если значение параметра начинается с символа "?", то параметр будет зашифрован.
• если значение параметра начинается с любого другого символа, то параметр считается зашифрованным.
При чтении значений параметров управляющие символы ("!", "?") игнорируются.
Псевдонимы можно описывать в файлах .\CFG\SDS.ZVAR и .\CFG\UDO\SDS.ZUDD
Помимо параметров секции [CRYPT], шифруются следующие данные:
• параметр PASSWORD во всех секциях файла .\CFG\SDS.ZMAIL
• параметр PASSWORD во всех секциях файла .\CFG\SDS.ZRAS
• пароли в секции [AUTH] файла .\CFG\SDS.ZHTTP
• пароли в секции [AUTH] файла .\CFG\SDS.ZWDAV
• пароли в секции [AUTH] файла .\CFG\SDS.ZTEL
• пароли в секции [USERS] файла .\CFG\SDS.ZHTTPP
При переносе программы в другую директорию или на другой компьютер шифрованные данные придётся вводить заново.
Срабатывание некоторых критериев считаются критическими.
В этом случае выполняются действия описанные в {SDS.ZSCRIPT} → [CRITsACTIONS].
Все параметры описываются в файле {.\CFG\SDS.ZCRITs} → [CRITs].
Расширенное описание критического параметра находится в отдельной секции файла конфигурации
Если ключ 'Active' данной секции = 1, то используются параметры секции расширенного описания.
Каждый критический параметр описывается ключом 'CParam'.
При срабатывании критерия выполняется действие 'Action'
Пример секции расширенного описания
|
Значения меньшие или равные нулю игнорируются.
Пример скрипта
|
Если используется Traffic Inspector, то можно заблокировать трафик (если в настройках инспектора указано блокировать трафик при остановке сервиса).
|
А можно наоборот, взять да и выключить компьютер.
|
При старте программы выполняем действия, описанные в {SDS.ZSCRIPT} → [StartupACTIONS]
Пример. Включение интернет соединений при старте программы
|
При закрытии программы выполняем действия, описанные в {SDS.ZSCRIPT} → [CloseACTIONS]
Пример. Выключение интернет соединений при закрытии программы
|
Если изменились PID`ы, выполняем действия, описанные в {SDS.ZSCRIPT} → [PIDsACTIONS]
|
Формат описания списка действий планировщика
[ SCHEDULER ]
Active | Флаг активности списка (1|0) |
Время выполнения действия | Описание действия |
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
Учитываются незакомментированные действия, для которых "Флаг активности списка"=1
Варианты определения времени выполнения действия
ATime
10:00:00=ACTION
Операция ACTION выполняется один раз в 10:00:00
APeriod
30=ACTION
Операция ACTION выполняется с периодом в 30 минут в промежутке времени (00:00:00..23:59:59]
30,50=ACTION
Операция ACTION выполняется с периодом в 30 и 50 минут в промежутке времени (00:00:00..23:59:59]
*22=ACTION
Операция ACTION выполняется в 22 минуты каждого часа в промежутке времени (00:00:00..23:59:59]
AStartTime/APeriod
10:00:00/30=ACTION
Операция ACTION выполняется с периодом в 30 минут в промежутке времени [10:00:00..23:59:59]
10:00:00/30,50=ACTION
Операция ACTION выполняется с периодом в 30 и 50 минут в промежутке времени [10:00:00..23:59:59]
10:00:00/*22=ACTION
Операция ACTION выполняется в 22 минуты каждого часа в промежутке времени [10:00:00..23:59:59]
APeriod/AEndTime
30/20:00:00=ACTION
Операция ACTION выполняется с периодом в 30 минут в промежутке времени (00:00:00..20:00:00]
30,50/20:00:00=ACTION
Операция ACTION выполняется с периодом в 30 и 50 минут в промежутке времени (00:00:00..20:00:00]
*22/20:00:00=ACTION
Операция ACTION выполняется в 22 минуты каждого часа в промежутке времени (00:00:00..20:00:00]
AStartTime/AEndTime
10:00:00/20:00:00=ACTION
Операция ACTION выполняется дважды, в 10:00:00 и в 20:00:00
AStartTime/APeriod/AEndTime
10:00:00/30/20:00:00=ACTION
Операция ACTION выполняется с периодом в 30 минут в промежутке времени [10:00:00..20:00:00]
10:00:00/30,50/20:00:00=ACTION
Операция ACTION выполняется с периодом в 30 и 50 минут в промежутке времени [10:00:00..20:00:00]
10:00:00/*22/20:00:00=ACTION
Операция ACTION выполняется в 22 минуты каждого часа в промежутке времени [10:00:00..20:00:00]
ATime#1/ATime#2/.../ATime#N
ATime#1/ATime#2/.../ATime#N=ACTION
Операция ACTION выполняется N раз
10:00:00/12:00:00/20:00:00=ACTION
Операция ACTION выполняется три раза, в 10:00:00, в 12:00:00 и в 20:00:00
Пример скрипта.
Для правильной работы этого скрипта необходимо сделать следующее. Запустить skyDSuite,
выключить автоматический контроль, выключить интернет соединения, перевести компьютер в спящий режим ("Hibernate"),
а самому с чувством выполненного долга отправиться на горшок и в постель.
Скрипт сам включит компьютер в 2 ночи, немного покачает и под утро всё выключит. Удобно, однако.
|
Активный файл планировщика указывается в {SDS.ZCFG} → [MAIN] → ScriptFile. По умолчанию используется файл с именем SDS.ZSCRIPT
Описание действия, которое будет выполнено следующим, рисуется на панели бледнозеленоватого цвета.
Планом «Бэ» будем называть выполнение неких действий, если скорость входящего трафика со спутника становится меньше заданной величины. Как показывает опыт, при снижении скорости на первом приоритете до неприличных величин, можно немного (точнее, совсем немного) исправить ситуацию, дав трафику отдохнуть некоторое время. Собственно говоря, для выполнения именно этой задачи план «Бэ» и задумывался.
Настройки по умолчанию
|
Описание параметров
Active | Флаг активности плана «Бэ» (1|0) |
Winking | Режим «моргания» без анализа скорости трафика. Алгоритм работы - ... через Pause секунд запускаем LeaveActions, через Period секунд запускаем EnterActions, через Pause секунд запускаем LeaveActions ... |
BreakOnSpeedUp | Если установлен флаг BreakOnSpeedUp (=1), действия EnterActions запускаются, только если текущее значение скорости меньше предыдущего. То есть, при росте скорости, запуск действий EnterActions откладывается. Этим можно избежать ложных срабатываний. |
SInSpeedFloor | Нижний порог для входящего спутникового трафика (в килобитах в секунду) |
SInSpeedFloors | Дополнительное описание порогов для входящего спутникового трафика. Даёт возможность задать значение порога в зависимости от времени. Формат: (Значение порога в kb/s) > (Время действия). Время действия описывается также как и временнЫе рамки молекулярного действия. Например: 500>[10:00:00-11:00:00);600>[11:00:00-12:00:00) |
EnterActive | Флаг активности входных действий (1|0) |
EnterActions | Описание входных действий |
LeaveActive | Флаг активности выходных действий (1|0) |
LeaveActions | Описание выходных действий |
Period | Период в секундах, в течении которого происходит анализ скорости |
Pause | Пауза в секундах между выполнениями действий EnterActions и LeaveActions |
PauseFloor, PauseCeil |
Диапазон изменения паузы. Если PauseFloor или PauseCeil больше нуля, пауза будет выбираться случайным образом из промежутка [PauseFloor ... PauseCeil) |
Interval | Минимальный интервал в секундах между вызовами EnterActions. Увеличивая параметр Interval можно уменьшить частоту срабатывания, что может оказаться весьма пользительным |
Alertable | Флаг использования параметров AlertInterval и AlertActions |
AlertInterval | Если предупреждения плана «Бэ» поступают непрерывно в течении AlertInterval секунд, то запускаются AlertActions. Действия AlertActions запускаются только если Alertable=1 |
AlertActions | Действия, запускаемые при непрерывном поступлении предупреждений плана «Бэ» в течении AlertInterval секунд. Действия AlertActions запускаются только если Alertable=1 |
Приведённый в качестве примера скрипт работает так.
Если скорость входящего спутникового трафика держится меньше 64-х kb/s (SInSpeedFloor) в течении 60-и секунд (Period),
сначала останавливаем работу Download Master`а (действия EnterActions) и через 30 секунд (Pause)
возобновляем работу Download Master`а (действия LeaveActions).
Если предупреждения плана «Бэ» поступают непрерывно в течении 140-а секунд (AlertInterval) и Alertable=1, то запускаются AlertActions.
Если не заданы SInSpeedFloors или текущее время не попадает ни в одну из указанных времменнЫх рамок,
то в качестве порога будет использовано значение SInSpeedFloor.
Принимаются во внимание только положительные значения порогов.
Например, хочется ночью (с 02:00:00 до 08:00:00) работать с порогом в 655 kb/s, а в остальное время с порогом в 65 kb/s, скрипт должен быть такой.
|
Анализируемая скорость считается каждые {SDS.ZCFG} → [TIMEOUTs] → SystemPeriod секунд (по умолчанию = 10 секунд).
Быстрое включение/выключение плана «Бэ» доступно через птичку "PB" на главном окне.
План «Пэ» позволяет циклически запускать/останавливать группу закачек.
Работает только с Download Master`ом (DM) и Internet Download Accelerator`ом (IDA).
Настройки по умолчанию
|
Работает это примерно так.
Берутся первые DLBlock закачек из списка закачек DM или IDA, начиная с закачки под номером 1+DLShift.
Группа из DLGroup активных закачек циклически "прокручивается" внутри блока из DLBlock закачек.
Каждые DLsPeriod+DLsDelay секунд запускаем DLChunk новых закачек и через DLsDelay секунд останавливаем первые DLChunk закачек.
DLsPeriod - это случайная величина из промежутка [DLsPeriodFloor, DLsPeriodCeil).
DLsDelay - это случайная величина из промежутка [DLsDelayFloor, DLsDelayCeil).
При включённом DLSpeedControl, перезапускаем те закачки, у которых скорость в течении DLsSpeedPeriod секунд была ниже DLSpeedFloor байтов в секунду.
В настройках качалки должен быть установлен флаг "Закачки" → "Разное" → "Автоматически удалять завершенные закачки"
Быстрое включение/выключение плана «Пэ» доступно через птичку "PP" на главном окне.
Существует возможность удалённого управления skyDSuite через web-интерфейс.
Параметры HTTP сервера устанавливаются в файле .\CFG\SDS.ZHTTP
Рабочие файлы HTTP сервера лежат в директории .\SRV\HTTP\WWW\PUB
Общие настройки
[ HTTP ]
Active | Флаг активности сервера (1|0) |
ReuseSocket | Разрешение повторного использования порта (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
CommandTimeout | Максимальное время ожидания выполнения команд (в миллисекундах) |
VerboseLogging | Расширенное протоколирование (1|0) |
Настройки безопасного соединения
[ SSL ]
Active | Флаг активности сервера (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
Version | Версия SSL
|
Mode | Режим работы
|
RootCertFile | Корневой сертификат |
CertFile | Сертификат |
KeyFile | Файл ключей |
DHParamsFile | DH параметры |
Password | Пароль доступа к файлу ключей |
CipherList | Список используемых алгоритмов шифрования |
Значения по умолчанию
|
Правила авторизации
[ AUTH ]
Active | Флаг активности списка (1|0) |
Описание правила | Формат описания – username:password[::IP[/IPmask]] |
Пример
|
Список разрешённых действий
[ COMMANDS ]
Active | Флаг активности списка (1|0) |
Описание действия |
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
Выполняются незакомментированные действия, для которых "Флаг активности списка"=1
Пример
|
В этот список может входить любое из поддерживаемых skyDSuite действий (напр.: P1, P2, ...)
Если описание действия начинается с символа ":" (напр. :print),
то сравниваться будут ядровые части описаний (напр. у действия print?hello ядровая часть - это print).
А также дополнительные команды:
SERVER имеет формат: {имя хоста}:[порт] (напр. 127.0.0.1:8880)
Графики скоростей ← [COMMANDS].spgraph
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0 - {Sky} Input
http://SERVER/spgraph.jpg.htm?index=1&histogram=1&dots=0&area=1&tail=0 - {Sky} Output
http://SERVER/spgraph.jpg.htm?index=2&histogram=1&dots=0&area=1&tail=0 - {Gnd} Input
http://SERVER/spgraph.jpg.htm?index=3&histogram=1&dots=0&area=1&tail=0 - {Gnd} Output
http://SERVER/spgraph.jpg.htm?index=4&histogram=1&dots=0&area=1&tail=0 - {Gnd} Input + Output
http://SERVER/spgraph.jpg.htm?index=5&histogram=1&dots=0&area=1&tail=0 - {Sky/Gnd} «Per Day» Ratio
http://SERVER/spgraph.jpg.htm?index=6&histogram=1&dots=0&area=1&tail=0 - {Sky/Gnd} «Per Month» Ratio
Графики данных DVB карты ← [COMMANDS].sqgraph
http://SERVER/sqgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0 - Signal Quality
http://SERVER/sqgraph.jpg.htm?index=1&histogram=1&dots=0&area=1&tail=0 - Signal Strength
http://SERVER/sqgraph.jpg.htm?index=2&histogram=1&dots=0&area=1&tail=0 - Signal To Noise Ratio (SNR)
http://SERVER/sqgraph.jpg.htm?index=3&histogram=1&dots=0&area=1&tail=0 - Bit Error Rate (BER)
Статистика :: Графики ← [COMMANDS].trgraph
http://SERVER/trgraph.jpg.htm?interval=2&index=0&histogram=1&dots=0&area=1&cx=512&cy=288 - {Sky} Input
http://SERVER/trgraph.jpg.htm?interval=2&index=1&histogram=1&dots=0&area=1&cx=512&cy=288 - {Sky} Output
http://SERVER/trgraph.jpg.htm?interval=2&index=2&histogram=1&dots=0&area=1&cx=512&cy=288 - {Gnd} Input
http://SERVER/trgraph.jpg.htm?interval=2&index=3&histogram=1&dots=0&area=1&cx=512&cy=288 - {Gnd} Output
http://SERVER/trgraph.jpg.htm?interval=2&index=4&histogram=1&dots=0&area=1&cx=512&cy=288 - {Vpn} Input
http://SERVER/trgraph.jpg.htm?interval=2&index=5&histogram=1&dots=0&area=1&cx=512&cy=288 - {Vpn} Output
http://SERVER/trgraph.jpg.htm?interval=2&index=6&histogram=1&dots=0&area=1&cx=512&cy=288 - {Info} Input
http://SERVER/trgraph.jpg.htm?interval=2&index=7&histogram=1&dots=0&area=1&cx=512&cy=288 - {Info} Output
Статистика :: Таблицы (HTML–формат) ← [COMMANDS].trtable
http://SERVER/trtable.htm?interval=0&units=2&rcount=500 - Интервал 10 минут
http://SERVER/trtable.htm?interval=1&units=2&rcount=500 - Интервал 1 час
http://SERVER/trtable.htm?interval=2&units=2&rcount=500 - Интервал 1 день
http://SERVER/trtable.htm?interval=3&units=2&rcount=500 - Интервал 1 месяц
http://SERVER/trtable.htm?interval=4&units=2&rcount=500 - Интервал 1 год
http://SERVER/trtable.htm?interval=-1&units=2&rcount=500 - «Короткий» счётчик
http://SERVER/trtable.htm?interval=-2&units=2&rcount=500 - «Длинный» счётчик
Статистика :: Таблицы (графический формат) ← [COMMANDS].trtable
http://SERVER/trtable.jpg.htm?interval=0&units=2&rcount=500 - Интервал 10 минут
http://SERVER/trtable.jpg.htm?interval=1&units=2&rcount=500 - Интервал 1 час
http://SERVER/trtable.jpg.htm?interval=2&units=2&rcount=500 - Интервал 1 день
http://SERVER/trtable.jpg.htm?interval=3&units=2&rcount=500 - Интервал 1 месяц
http://SERVER/trtable.jpg.htm?interval=4&units=2&rcount=500 - Интервал 1 год
http://SERVER/trtable.jpg.htm?interval=-1&units=2&rcount=500 - «Короткий» счётчик
http://SERVER/trtable.jpg.htm?interval=-2&units=2&rcount=500 - «Длинный» счётчик
Разное ← [COMMANDS].log[x|z]
http://SERVER/log.htm?rcount=1000 - Окно диагностики LOG
http://SERVER/logx.htm?rcount=1000 - Окно диагностики LOGX
http://SERVER/logz.htm?rcount=1000 - Окно диагностики LOGZ
Разное ← [COMMANDS].screen
http://SERVER/screen.jpg.htm - Снимок экрана
В качестве расширения графических файлов можно указывать bmp, png, jpg, gif, emf, wmf (напр. http://SERVER/screen.bmp.htm)
Учёт размера заголовка IP-пакета для графиков скоростей (spgraph) и статистики трафика (trgraph)
(IPHeader)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&ipheader=1 (учитываем заголовок IP-пакета)
http://SERVER/sqgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0&ipheader=0 (не учитываем заголовок IP-пакета)
Если необходимо получить график заданного цвета, то список параметров должен содержать
color=0xRRGGBB или color=наименование_цвета (xGraph.Color)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&color=0xFF0000 (график красного цвета)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&color=0x00FF00 (график зелёного цвета)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&color=0x0000FF (график синего цвета)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&color=Khaki (график цвета хаки)
Настройке графиков AreaColor соответствует параметр запроса acolor
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&color=0x00FF00&acolor=0x0000FF
Ширина полей левой и правой осей графиков регулируется параметром textcx (xGraph.TextCX)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&textcx=-8
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&textcx=32
Настройкам графиков CYSpace и CXSpace
соответствуют параметры запроса cyspace и cxspace
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&cyspace=50
Для графиков скоростей (spgraph) и данных DVB карты (sqgraph) можно указать параметры сглаживания
(параметр average - количество точек, по которых происходит сглаживание) (xGraph.Average)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&average=5 (сглаживаем по 5-и точкам)
http://SERVER/sqgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0&average=20 (сглаживаем по 20-и точкам)
Для графиков скоростей (spgraph) и данных DVB карты (sqgraph) можно указать параметры усреднения
(параметр interval - величина интервала усреднения в минутах) (xGraph.Interval)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&interval=5 (усредняем по 5-и минутному интервалу)
http://SERVER/sqgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0&interval=5 (усредняем по 5-и минутному интервалу)
Если необходимо нарисовать на графике линию заданного уровня,
то используем параметр cir (xGraph.CIR)
Данная возможность распространяется на графики скоростей (spgraph) и графики данных DVB карты (sqgraph)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0&cir=200,Red (рисуем линию на уровне 200 кбит/с, красный цвет)
http://SERVER/sqgraph.jpg.htm?index=0&histogram=1&dots=0&area=1&tail=0&cir=50,Blue,1 (рисуем линию на уровне 50, синий цвет, толстая линия)
Для таблиц статистики (trtable) возможно указать список выводимых полей (параметр fields)
http://SERVER/trtable.htm?interval=0&units=2&rcount=500&fields=SI,SO,GI,GO
Если необходимо получить график за определённый промежуток времени,
то используем параметры tail, xmin, xmax
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=01:30:00 (статистика за последние полтора часа)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&xmin=-01:30:00 (статистика за последние полтора часа)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&xmin=12:00:00&xmax=15:00:00 (статистика за период [12:00:00-15:00:00])
http://SERVER/trgraph.jpg.htm?interval=0&index=0&histogram=1&dots=0&area=1&xmin=-72 (данные за последние трое суток)
Для таблиц и графиков статистики трафика (trtable, trgraph) в качестве интервала (параметр interval)
можно указывать кратные 10-и минутам величины.
http://SERVER/trtable.htm?interval=20&units=2&rcount=500 (интервал 20 минут)
http://SERVER/trgraph.jpg.htm?interval=30&index=0&histogram=1&dots=0&area=1 (интервал 30 минут)
Для таблиц и графиков статистики трафика (trtable, trgraph)
можно указывать день, с которого начинается месяц (параметр startday).
http://SERVER/trtable.htm?interval=2&startday=10&units=2&rcount=500 (месяц начинается 10-го числа)
http://SERVER/trgraph.jpg.htm?interval=2&startday=10&index=0&histogram=1&dots=0&area=1 (месяц начинается 10-го числа)
Для таблиц и графиков статистики трафика (trtable, trgraph) возможно указать фильтр по приоритету (параметр priority)
http://SERVER/trtable.htm?interval=0&units=2&rcount=500&priority=1
http://SERVER/trgraph.jpg.htm?interval=0&index=0&histogram=1&dots=0&area=1&priority=2
Можно указать размер картинки (параметры: cx - ширина, cy - высота)
http://SERVER/spgraph.jpg.htm?index=0&histogram=1&area=1&tail=0&cx=1024&cy=576
Графики скоростей ← spgraph, sqgraph, trgraph
Минимальный размер равен размеру 100×100.
Максимальный размер равен 1600×800.
Снимок экрана ← screen
Размер картинки по умолчанию равен размеру экрана.
Минимальный размер равен размеру 100×100.
Максимальный размер равен размеру экрана.
Для запуска skyDSuite-действия запрос должен иметь вид http://SERVER/action.sds?{описание действия} (напр. http://SERVER/action.sds?P1)
Часть символов необходимо будет писать в формате %{шестнадцатеричное представление символа}
Например
Запрос для действия #SDS (перезапуск skyDSuite) - http://SERVER/action.sds?%23SDS
Запрос для действия +SCH (включение планировщика) - http://SERVER/action.sds?%2BSCH
Для работы SSL/TLS необходимо положить рядом со skyDSuite или в системную директорию две библиотеки (ssleay32.dll и libeay32.dll). Их можно найти здесь http://indy.fulgan.com/SSL
Сертификаты HTTP сервера лежат в директории .\SRV\HTTP\SSL
Для установки корневого сертификата можно выполнить запрос http://SERVER/ca
За быстрое включение/отключение сервера отвечает пункт меню Preferences → HTTP Server
Параметры WebDAV сервера устанавливаются в файле .\CFG\SDS.ZWDAV
Рабочие файлы WebDAV сервера лежат в директории .\SRV\WebDAV\WWW\PUB
Общие настройки
[ HTTP ]
Active | Флаг активности сервера (1|0) |
ReuseSocket | Разрешение повторного использования порта (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
CommandTimeout | Максимальное время ожидания выполнения команд (в миллисекундах) |
VerboseLogging | Расширенное протоколирование (1|0) |
Настройки безопасного соединения
[ SSL ]
Active | Флаг активности сервера (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
Version | Версия SSL
|
Mode | Режим работы
|
RootCertFile | Корневой сертификат |
CertFile | Сертификат |
KeyFile | Файл ключей |
DHParamsFile | DH параметры |
Password | Пароль доступа к файлу ключей |
CipherList | Список используемых алгоритмов шифрования |
Значения по умолчанию
|
Правила авторизации
[ AUTH ]
Active | Флаг активности списка (1|0) |
Описание правила | Формат описания – username:password[::IP[/IPmask]] |
Пример
|
Для работы SSL/TLS необходимо положить рядом со skyDSuite или в системную директорию две библиотеки (ssleay32.dll и libeay32.dll). Их можно найти здесь http://indy.fulgan.com/SSL
Сертификаты WebDAV сервера лежат в директории .\SRV\WebDAV\SSL
Для установки корневого сертификата можно выполнить запрос http://SERVER/ca
SERVER имеет формат: {имя хоста}:[порт] (напр. 127.0.0.1:8882)
За быстрое включение/отключение сервера отвечает пункт меню Preferences → WebDAV Server
Существует возможность удалённого управления skyDSuite с помощью telnet-клиента.
Тесты проводились со встроенным в систему telnet-клиентом и c putty.
Параметры telnet сервера устанавливаются в файле .\CFG\SDS.ZTEL
Общие настройки
[ TELNET ]
Active | Флаг активности сервера (1|0) |
ReuseSocket | Разрешение повторного использования порта (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
LoginAttempts | Максимальное количество попыток авторизоваться |
MaxConnections | Максимальное число клиентов |
CommandTimeout | Максимальное время ожидания выполнения команд (в миллисекундах) |
Encoding | Кодировка текста |
VerboseLogging | Расширенное протоколирование (1|0) |
Значения по умолчанию
|
Правила авторизации
[ AUTH ]
Active | Флаг активности списка (1|0) |
Описание правила | Формат описания – username:password[::IP[/IPmask]] |
Пример
|
Список разрешённых действий
[ COMMANDS ]
Active | Флаг активности списка (1|0) |
Описание действия |
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
Выполняются незакомментированные действия, для которых "Флаг активности списка"=1
Пример
|
В этот список может входить любое из поддерживаемых skyDSuite действий (напр.: P1, P2, ...)
Если описание действия начинается с символа ":" (напр. :print),
то сравниваться будут ядровые части описаний (напр. у действия print?hello ядровая часть - это print).
А также дополнительные команды:
log, logx, logz - вывод на экран диагностики
traffic - вывод на экран статистики трафика
За быстрое включение/отключение сервера отвечает пункт меню Preferences → Telnet Server
Параметры HTTP прокси-сервера устанавливаются в файле .\CFG\SDS.ZHTTPP
Общие настройки
[ HTTP ]
Active | Флаг активности сервера (1|0) |
ReuseSocket | Разрешение повторного использования порта (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
MaxConnections | Максимальное число клиентов |
VerboseLogging | Расширенное протоколирование (1|0) |
Значения по умолчанию
|
За быстрое включение/отключение сервера отвечает пункт меню Preferences → HTTP Proxy Server
Параметры Socks сервера устанавливаются в файле .\CFG\SDS.ZSOCKS
Общие настройки
[ SOCKS ]
Active | Флаг активности сервера (1|0) |
ReuseSocket | Разрешение повторного использования порта (1|0) |
DefaultPort | Порт по умолчанию |
Bindings | Список адресов в формате IP[:PORT], разделённых запятыми, с которыми будет связан сервер |
MaxConnections | Максимальное число клиентов |
VerboseLogging | Расширенное протоколирование (1|0) |
Значения по умолчанию
|
За быстрое включение/отключение сервера отвечает пункт меню Preferences → Socks Server
Общие правила авторизации на серверах действуют для:
HTTP сервер - файл настроек .\CFG\SDS.ZHTTP
WebDAV сервер - файл настроек .\CFG\SDS.ZWDAV
Telnet сервер - файл настроек .\CFG\SDS.ZTEL
Правила авторизации описываются в секции [AUTH] соответствующего файла настроек.
[ AUTH ]
Active | Флаг активности списка (1|0) |
Описание правила | Формат описания – username:password[::IP[/IPmask][::UserDir]] |
Для разрешения доступа всем пользователям нужно установить [AUTH].Active=0
Чтобы закомментировать строку, достаточно в начале написать символ ; или //
Пароль может храниться в зашифрованном виде.
Для этого перед значением пароля ставим знак "?" (user:?pass). Пароль будет зашифрован при запуске программы.
Если перед значением пароля стоит знак "!" (user:!pass), тогда пароль будет храниться в открытом виде.
Если перед значением IP стоит знак "-", тогда вход с этого IP будет запрещён.
user:!pass - Пользователю разрешён вход со всех адресов
user:!pass::127.0.0.1 - Пользователю разрешён вход с адреса 127.0.0.1
*:*::127.0.0.1 - Всем пользователям разрешён вход с адреса 127.0.0.1
user:!pass::127.0.0.1::Private - Пользователю разрешён вход с адреса 127.0.0.1. Рабочая директория .\WWW\Private
user:!pass::*::Common - Пользователю разрешён вход со всех адресов. Рабочая директория .\WWW\Common
user:!pass::-192.168.0.255 - Пользователю запрещён вход с адреса 192.168.0.255
Если параметр UserDir не определён, то рабочая директория .\WWW\PUB
Если сработало какое-либо правило из списка, то проверка следующих за ним правил прерывается.
Пример
|
Сильно упрощённый вариант работы, когда отслеживается состояние только наземного канала.
За быстрое включение/отключение отвечает пункт меню Preferences → Gmode
Существует возможность автоматически менять наземный интерфейс при возникновении проблем с текущим наземным интерфейсом.
Параметры устанавливаются в {SDS.ZCFG} → [GCHAIN] или в окне настроек на странице Chains
Active | Флаг активности (1|0) |
Chain | Список интерфейсов, разделённых запятой |
RestartFaults | Количество неудачных рестартов, после которых запускаем механизм автоматического изменения наземного интерфейса. В качестве наземного интерфейса выбирается следующий интерфейс из списка Chain |
Существует возможность автоматически менять vpn-интерфейс при возникновении проблем с текущим vpn-интерфейсом.
Параметры устанавливаются в {SDS.ZCFG} → [VCHAIN] или в окне настроек на странице Chains
Active | Флаг активности (1|0) |
Chain | Список интерфейсов, разделённых запятой |
RestartFaults | Количество неудачных рестартов, после которых запускаем механизм автоматического изменения vpn-интерфейса. В качестве vpn-интерфейса выбирается следующий интерфейс из списка Chain |
Настройки таблиц и графиков статистики лежат в файле .\CFG\SDS.ZGRT
Просмотр статистики трафика доступен через
Главное меню → View → Traffic Statistics... (CTRL+ALT+F3)
Для хранения данных используем локальную базу данных в XML формате.
База данных лежит в файле .\STATs\SDS_ZTST.XML
Данные записываются в базу с интервалом в 10 минут.
Описание полей
DATE | DateTime | Время записи данных в базу |
PRIO | I4 | Приоритет skyDSL Записи с PRIO=0 содержат общую статистику (сумма по всем возможным приоритетам). Если отключена опция "skyDSL Control" или включена опция "Gmode", то поле PRIO=0 |
SI | I8 | Входящий трафик по спутниковому интерфейсу |
SO | I8 | Исходящий трафик по спутниковому интерфейсу |
GI | I8 | Входящий трафик по наземному интерфейсу |
GO | I8 | Исходящий трафик по наземному интерфейсу |
VI | I8 | Входящий трафик по vpn интерфейсу |
VO | I8 | Исходящий трафик по vpn интерфейсу |
II | I8 | Входящий трафик по информационному интерфейсу |
IO | I8 | Исходящий трафик по информационному интерфейсу |
Таблицы счётчиков трафика ("длинных" и "коротких") имеют такое же устройство.
Поле PRIO в этих таблицах не используется (PRIO=0).
"Длинный" счётчик - .\STATs\SDS_ZTLC.XML
"Короткий" счётчик - .\STATs\SDS_ZTSC.XML
Aggregate |
|
Таблица статистики трафика
[ TrSTable ]
Настройки → страница "Traffic Table"
Caption | Заголовок таблицы |
Aggregate | Вывод дополнительной записи с суммой по всем записям (DATE=Σ) |
Таблица "коротких" счётчиков
[ TrSCTable ]
Настройки → страница "Traffic Table"
Caption | Заголовок таблицы |
Aggregate | Вывод дополнительной записи с суммой по всем записям (DATE=Σ) |
Таблица "длинных" счётчиков
[ TrLCTable ]
Настройки → страница "Traffic Table"
Caption | Заголовок таблицы |
Aggregate | Вывод дополнительной записи с суммой по всем записям (DATE=Σ) |
Настройки информационной панели
[ TrTable:Head ]
Настройки → страница "Traffic Table"
FontFace | Имя шрифта |
FontCharset | Набор символов |
FontSize | Размер шрифта |
FontColor | Цвет шрифта |
FontBold FontItalic FontUnderline FontStrikeOut |
Стиль шрифта |
DateFormat | Строка, форматирующая дату получения таблицы |
SRecCount | Строка, заменяющая "Record count:" |
Настройки отображения таблиц
[ TrTable:Body ]
Настройки → страница "Traffic Table"
FontFace | Имя шрифта |
FontCharset | Набор символов |
FontSize | Размер шрифта |
FontColor | Цвет шрифта |
FontBold FontItalic FontUnderline FontStrikeOut |
Стиль шрифта |
IndexColor | Цвет фона ячеек с именами полей и значениями индексных полей (DATE, PRIO) |
HTTable | Гипертекстовое описание таблицы |
HTStyle_TD_H | Гипертекстовый стиль информационной панели |
HTStyle_TD_F | Гипертекстовый стиль индексных полей (DATE, PRIO) |
HTStyle_TD_C | Гипертекстовый стиль ячеек таблицы |
Для каждой из таблиц создаётся резервная копия (.\STATs\*.XXL),
которая может быть использована для восстановления данных.
Настройки графиков лежат в файле .\CFG\SDS.ZGRT
Общие настройки
Настройки → страница "Speed Graph" ("DVB Graph", "Traffic Graph")
AutoRefresh | Автоматическое обновление данных |
IPHeader | Учёт размера заголовка IP-пакета ("Speed Graph", "Traffic Graph") |
Histogram | График в виде гистограммы |
Dots | Отрисовка точек, по которым построен график |
Tail.Active | Флаг использования параметра Tail.Interval |
Tail.Interval | Временной интервал, за который рисуется график Например: |
FrameColor | Цвет рамки вокруг графика |
InnerColor | Цвет внутренней области графика |
Общие настройки графиков
Настройки → страница "Speed Graph" ("DVB Graph", "Traffic Graph")
Caption | Заголовок графика |
Visible | Флаг видимости графика |
Color | Цвет графика |
Area | Флаг заполнения области под графиком |
AreaColor | Цвет области под графиком |
TextCX | Ширина поля оси Y Если TextCX = 0, то ширина поля вычисляется автоматически. Если TextCX < 0, то к автоматически вычисленной ширине прибавляется ABS(TextCX) |
CYSpace | Минимальное расстояние между числами оси Y |
CXSpace | Минимальное расстояние между числами оси X |
YminFixed | Флаг фиксирования нижней границы оси Y |
FixedYmin | Фиксированная нижняя граница оси Y |
YmaxFixed | Флаг фиксирования верхней границы оси Y |
FixedYmax | Фиксированная верхняя граница оси Y |
YminFloor | При вычислении минимального значения, числа ≤ YminFloor не учитываются |
Average | Флаг сглаживания |
AverPoints | Количество точек сглаживания |
Interval | Флаг усреднения |
Intervalue | Величина интервала усреднения в минутах |
CIR | Отрисовка линии фиксированного уровня |
CIRValue | Величина уровня |
CIRColor | Цвет линии |
CIRBold | Флаг отрисовки толстой линии |
BIR | не используется |
BIRValue | не используется |
BIRColor | не используется |
BIRBold | не используется |
Настройки отображения заголовка графика
[ GraphCaption ]
Настройки → страница "Graph" → Caption
Visible | Флаг видимости |
Inside | Расположение относительно графика |
Alignment | Выравнивание |
FontFace | Имя шрифта |
FontCharset | Набор символов |
FontSize | Размер шрифта |
FontColor | Цвет шрифта |
FontBold FontItalic FontUnderline FontStrikeOut |
Стиль шрифта |
XFrame | Отступы слева (справа) от границы |
YFrame | Отступы сверху (снизу) от границы |
Настройки отображения единиц измерения
[ GraphUnits ]
Настройки → страница "Graph" → Units
Visible | Флаг видимости |
Inside | Расположение относительно графика |
FontFace | Имя шрифта |
FontCharset | Набор символов |
FontSize | Размер шрифта |
FontColor | Цвет шрифта |
FontBold FontItalic FontUnderline FontStrikeOut |
Стиль шрифта |
XFrame | Отступы слева (справа) от границы |
YFrame | Отступы сверху (снизу) от границы |
SKBS | Строка, заменяющая "KB/s" |
SKBITS | Строка, заменяющая "KBit/s" |
Настройки информационной панели
[ GraphStatusBar ]
Настройки → страница "Graph" → Status Bar
Visible | Флаг видимости |
FontFace | Имя шрифта |
FontCharset | Набор символов |
FontSize | Размер шрифта |
FontColor | Цвет шрифта |
FontBold FontItalic FontUnderline FontStrikeOut |
Стиль шрифта |
XFrame | Отступы слева от границы |
YFrame | Отступы сверху от границы |
DateFormat | Строка, форматирующая дату получения графика |
DaysFormat | Строка, форматирующая количество дней |
TimeFormat | Строка, форматирующая время |
SPeriod | Строка, заменяющая "Period:" |
Smin | Строка, заменяющая "MIN" |
Smax | Строка, заменяющая "MAX" |
SAverage | Строка, заменяющая "AVG" |
SLast | Строка, заменяющая "LAST" |
Date | Флаг вывода даты получения графика |
Period | Флаг вывода периода времени графика |
Y_min | Флаг вывода минимального значения |
Y_max | Флаг вывода максимального значения |
Y_Average | Флаг вывода среднего значения |
Y_Last | Флаг вывода последнего значения |
Y_Delta | Флаг вывода изменения относительно предпоследнего значения |
Графики скоростей
Главное меню → View → Speed Graph... (F3)
Левая ось - значение скорости в килобайтах/сек (KB/s), правая ось - в килобитах/сек (kbit/s)
Графики данных DVB карты (Signal Quality, Signal Strength, ...)
Главное меню → View → DVB Graph...
Поддерживается работа с картами на B2C2 чипе (skyDSuiteDVB.DLL).
Графики статистики
Главное меню → View → Traffic Statistics... (CTRL+ALT+F3). Закладка "График".
На правой оси графика рисуется скорость в kbit/s
Графики загруженности спутников (skyDSL)
Главное меню → View → Sky Monitor... (CTRL+F3).
В открывшемся окне выбираем параметры и жмём F5 (Обновить|Reload Image).
Настройки спутников и тарифов задаются в файле .\CFG\SDS.ZSAT
Пример
|
Вызов действий для работы с USSD-запросами и SMS доступен в отдельном окне.
{Главное меню}→ {View}→ {USSD & SMS}
Используются действия из директории .\CFG\UDO\AT
*AT\USSD | отправка USSD-запроса |
*AT\USSD.OFF | закрытие USSD-сессии |
*AT\SMS.READ | чтение SMS |
*AT\SMS.DROP | удаление SMS |
*AT\SMS.SEND | отправка SMS |
Существует возможность указать, на каких процессорах могут выполняться потоки определённого типа.
Окно настроек → страница "Thread Affinity"
Control Thread - поток, отслеживающий состояние системы
Action Thread - поток, создаваемый для выполнения действий
Active | флаг активности установок |
Ideal Processor | номер предпочтительного процессора |
Affinity Mask | битовая маска процессоров, на которых разрешена работа потока |
Для вывода сообщений о создании/удалении процессов в окно диагностики (LOGZ),
должна быть включена опция {SDS.ZCFG} → [OUTPUT] → Events.Process
В окне настроек эта опция находится на странице "Output" в группе "Events"
Правила обработки событий описываются в файле .\CFG\SDS.ZAPPs
Пример файла SDS.ZAPPs
|
В секции [BannedAPPs] лежит список программ, которые закрываются сразу же после создания.
В секции [ActionAPPs] лежит список программ,
при создании/удалении которых выполняются указанные действия.
Действие OnCreateActions запускается, если создан хотя бы один процесс из списка.
Действие OnDeleteActions запускается, если удалены все процессы из списка.
1 - в качестве спутникового интерфейса выбираем DVB карту
2 - в качестве наземного интерфейса выбираем GPRS соединение
3 - в качестве Vpn интерфейса выбираем Vpn-соединение с сервером спутникового провайдера
4 - отмечаем галочками в главном окне наземный и Vpn интерфейсы
Настройки
1 - страница "Main" : выключаем "skyDSL Control"
2 - страница "Restart (A)" : включаем "V Activity"
3 - остальные настройки по умолчанию
Включаем контроль ссылок (TCP mode)
Файл .\CFG\SDS.ZURLs имеет вид
|
Не забываем включить "Auto Control"
Из настроек Windows убираем автоматический дозвон при разрыве GPRS и Vpn соединений.
Из настроек Vpn соединения убираем предварительный дозвон по GPRS соединению.
Со всем этим должен справиться skyDSuite.
1 - в качестве наземного интерфейса выбираем GPRS соединение
2 - отмечаем галочками в главном окне наземный интерфейс
Настройки
1 - страница "Main" : выключаем "skyDSL Control"
2 - страница "Main" : включаем "Gmode" (наземный режим)
3 - остальные настройки по умолчанию
Включаем контроль ссылок (TCP mode)
Файл .\CFG\SDS.ZURLs имеет вид
|
Не забываем включить "Auto Control"
Из настроек Windows убираем автоматический дозвон при разрыве GPRS соединения.
Со всем этим должен справиться skyDSuite.
Пример скрипта
|
Где GXC - это путь к файлу конфигурации глобакса (см. файл \CFG\SDS.ZVAR).
Предположим, что в системе установлены два RAS-соединения, качество работы которых зависит от времени суток. Днем без проблем работает, например, "MEFAFON", а ночью наоборот, "BEELINE". Вот нам и хочется автоматизировать переключение между ними, используя встроенный планировщик.
Пример скрипта
|
Задача: с 2:00 до 8:00 хотим работать по первому приоритету, в остальное время - по второму. В качестве решения, каждые 10 минут будем устанавливать желаемый приоритет. Такое решение может оказаться единственным, если программа не может правильно определить текущий приоритет (например, при работе с ПО skyDSL v7.5).
Пример скрипта
|
При работе с ПО skyDSL v8.х текущий приоритет определяется правильно. Посему принудительное поддержание приоритета не нужно. Достаточно в нужное время устанавливать нужный приоритет и не забывать включать автоматический контроль. Программа сама будет поддерживать выбранный приоритет.
Пример скрипта
|
Задача: по будням до 11 часов работаем по первому приоритету, после 11-и - по второму, в выходные работаем по первому приоритету круглые сутки.
Установка приоритета
|
Мы хотим, чтобы приоритет устанавливался при запуске skyDSuite. Пишем
|
Легенда
[ | + | ] | Добавлено |
[ | – | ] | Удалено |
[ | ~ | ] | Изменено |
[ | ! | ] | Изменено |
[ | @ | ] | Исправление ошибки |
Автора можно найти здесь
maa@maalchemist.ru
maalchemist@yandex.ru
maalchemist@gmail.com