Наткнулся на такой скрипт, он работает но только на локальном компьютере. Подскажите как подправить его, чтобы можно было сменить оператора на другом компьютере сетевого проекта
Вид для печати
Вы предложили такое решение:Я вам ответил, что его реализовать не получается из-за того, что скрипты узла выполняются по очереди, то есть скрипт из подустройства никогда не дождётся изменения флага в устройстве.
А даже если и дождётся, после остановки обновления архива и опроса устройством нужно будет продолжить обновление, то есть опять же вызвать функцию из подустройства.
Это ясно.
Но изначально вы просили возможность вызывать функции подустройства из устройства. Как вам это поможет?
Функция server.RunFunctionFromDeviceByName( ) вас не устраивает только тем что нужно передавать в нее полное имя, что усложнит правку имен?
Имя можно получить при помощи кода. Положите в подустройство тег, в функции OnInit определите полное и короткое имя. Используя эти значения можно получить путь к подустройству, который потом через функцию передать в устройство.
Вот пример кода:
function OnInit()
local val={};
err,val=server.GetAttributeCurrentTag( ); --получаем текущий тег
local path=string.sub(val[2],1,string.len(val[2])-string.len(val[1])-1) -- выделяем из полного имени часть до имени тега.
server.Message(path); --для примера выводим в лог
end
Я надеялся, существует более простой, очевидный и прямой способ
Спасибо