Версия 9.5
Скрипт простой: ставим метку и потом читаем данные. После установки метки берем и перетаскиваем ее на графике, желательно быстро. Терминал зависает. На таком простом скрипте это происходит не сразу, поэтому можно просто двигать метку до выявления эффекта. Частично помогает избежать проблемы увеличение sleep до 500.
На версиях 8.* - сколько не двигал не получается эффект зависания, даже на sleep 55.
На самом деле - серьезная проблема, т.к. считывание данных с меток - это единственный способ взаимодействия пользователя с скриптом через график.
Ссылка на запись эффекта:
Тестовый скрипт:
					Скрипт простой: ставим метку и потом читаем данные. После установки метки берем и перетаскиваем ее на графике, желательно быстро. Терминал зависает. На таком простом скрипте это происходит не сразу, поэтому можно просто двигать метку до выявления эффекта. Частично помогает избежать проблемы увеличение sleep до 500.
На версиях 8.* - сколько не двигал не получается эффект зависания, даже на sleep 55.
На самом деле - серьезная проблема, т.к. считывание данных с меток - это единственный способ взаимодействия пользователя с скриптом через график.
Ссылка на запись эффекта:
Тестовый скрипт:
| Код | 
|---|
| local sleep = _G.sleep
local isRun = true
local AddLabel          = _G.AddLabel
local GetLabelParams    = _G.GetLabelParams
function _G.OnStop()
    isRun = false
end
function _G.main()
    local tag       = 'virt_test'
    local label_params = {}
    label_params.YVALUE = 119.5
    label_params.TEXT = 'TEST    |||||||||||||||||||||||||||||||||||||||||||||'
    label_params.HINT = 'Еще текст'
    label_params.DATE = 20220611
    label_params.TIME = 152000
    label_params.FONT_FACE_NAME = 'Arial'
    label_params.ALIGNMENT = 'RIGHT'
    label_params.FONT_HEIGHT    = 10
    label_params.TRANSPARENT_BACKGROUND    = 1
    local l_id = AddLabel(tag, label_params)
    sleep(1000)
    while isRun do
        label_params = GetLabelParams(tag, l_id)
        if label_params then
            _G.message(tostring(label_params.yvalue))
        end
        sleep(100)
    end
end | 
