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

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

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

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

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

[su_spoiler title="Возможные параметры:" style="fancy"]
"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); --Если терминал подключен к серверу, выведет сообщение с текстом "установлено"

[/su_spoiler]
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) - сообщение для вывода
[su_spoiler title="Использование PrintDbgStr() совместно с Visual Studio:" style="fancy"]
Добавляется в скрипт, там, где нужно вывести отладочную информацию:

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
[/su_spoiler]