Сервисные функции QLua(Lua)

Автор записи: Дмитрий (Admin)

Qlua-основы
isConnected()   - возвращает 1, если QUIK подключен к серверу и 0, если не подключен

getScriptPath()   - возвращает путь, по которому находится скрипт, без последнего обратного слэша ("\"), например, "C:\Program Files (x86)\Info\MyLua"

getInfoParam()   - возвращает значение параметра из окна:"Связь" -> "Информационное окно..."

Возможные параметры:
«VERSION» — версия программы
«TRADEDATE» — дата торгов
«SERVERTIME» — время сервера
«LASTRECORDTIME» — время последней, полученной с сервера, записи
«NUMRECORDS» — количество полученных записей
«LASTRECORD» — последняя запись
«LATERECORD» — отставшая запись
«CONNECTION» — соединение («установлено»/»не установлено»)
«IPADDRESS» — IP-адрес сервера
«IPPORT» — порт сервера
«IPCOMMENT» — описание соединения с сервером
«SERVER» — описание сервера
«SESSIONID» — идентификатор сессии
«USER» — пользователь
«USERID» — ID пользователя
«ORG» — организация
«MEMORY» — занято памяти
«LOCALTIME» — текущее время
«CONNECTIONTIME» — время на связи
«MESSAGESSENT» — передано сообщений
«ALLSENT» — передано всего байт
«BYTESSENT» — передано полезных байт
«BYTESPERSECSENT» — передано за секунду
«MESSAGESRECV» — принято сообщений
«BYTESRECV» — принято полезных байт
«ALLRECV» — принято всего байт
«BYTESPERSECRECV» — принято за секунду
«AVGSENT» — средняя скорость передачи
«AVGRECV» — средняя скорость приема
«LASTPINGTIME» — время последней проверки связи
«LASTPINGDURATION» — задержка данных при обмене с сервером
«AVGPINGDURATION» — средняя задержка данных
«MAXPINGTIME» — время максимальной задержки
«MAXPINGDURATION» — максимальная задержка данных

Пример:

message(getInfoParam("CONNECTION"),1); --Если терминал подключен к серверу, выведет сообщение с текстом "установлено"
message() - выводит сообщение в терминале QUIK, если все в порядке, возвращает 1, иначе nil, может принимать 2 параметра:
      "Текст сообщения" (string)
      Иконка(необязательный) (number) - 1-message-icon-1(по-умолчанию), 2-message-icon-2, 3-message-icon-3
      Максимальная длина сообщений, передаваемых в функцию message(), составляет 900 символов

sleep() - пауза в скрипте, принимает время паузы в миллисекундах, например sleep(3000); - остановит выполнение скрипта на 3 секунды

getWorkingFolder() - возвращает путь, по которому находится файл info.exe без последнего "\", например, getWorkingFolder(); - вернет "C:\Program Files (x86)\Info"

PrintDbgStr() - служит для вывода отладочной информации, принимает один параметр (string) - сообщение для вывода

Использование PrintDbgStr() совместно с Visual Studio:
Добавляется в скрипт, там, где нужно вывести отладочную информацию:

IsRun = true;
 
function main()
   while IsRun do
      PrintDbgStr("Какая-то информация, например значение переменной\n");
      sleep(1000);
   end;
end;
 
function OnStop()
   IsRun = false;
end;

Visual Studio должна быть запущена с правами Администратора!

Перейдите по меню: «ОТЛАДКА» -> «Присоединиться к процессу…»
vs-prisoedinitsya-k-processu
Выберите из списка процессов «info.exe» и нажмите кнопку «Присоединиться», после этого, Вы можете видеть отладочную информацию в окне «Вывод»
vs-vivod-debug