Author |
Message |
Written on: 12. 12. 2016 [13:35]
|
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
|
что вернет такое обращение:
SYS.DAQ.LogicLev["Контроллер"]["Параметр"]["id атрибута"].get()
если обратиться к несуществующемому атрибуту? и сильно это может повлиять на загрузку CPU, если таких обращений будет много (приблизительно 10000 атрибутов)?
Как таким же методом, обратиться к атрибуту вложеного параметра. т.е. ["Контроллер"].["Параметр"].["Вложенный параметр"].["id атрибута"]?
|
Written on: 12. 12. 2016 [15:27]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"monia" wrote:
что вернет такое обращение:
SYS.DAQ.LogicLev["Контроллер"]["Параметр"]["id атрибута"].get()
если обратиться к несуществующемому атрибуту? и сильно это может повлиять на загрузку CPU, если таких обращений будет много (приблизительно 10000 атрибутов)?
0 или false.
На производительность не повлияет никак.
А вызывать в цикле 10000 раз таким прямым запросом неэффективно в принципе и лучше получать объект атрибута, проверять его на истинность, а затем вызывать для него функцию в цикле.
По производительности вызовов вообще есть тут.
"monia" wrote:
Как таким же методом, обратиться к атрибуту вложеного параметра. т.е. ["Контроллер"].["Параметр"].["Вложенный параметр"].["id атрибута"]?
Префиксы добавлять.
Learn, learn and learn better than work, work and work.
|
Written on: 12. 12. 2016 [21:07]
|
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
|
Префиксы добавлять .
Можно пример или ссылку на описание
А каким способом будет быстрее обращаться к атрибутам параметров другого кон роллера логического уровня?
Нужен способ для обрашения в цикле.
Если есть описание способов обращений, кинь пожалуйста ссылку
|
Written on: 16. 12. 2016 [08:04]
|
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
|
вроде с вложенностью разобрался, а как можно получить ID всех параметров заданного контроллера логического уровня с использованием данного метода?
SYS.DAQ.LogicLev["Контроллер"].(и что то еще)
|
Written on: 16. 12. 2016 [17:38]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"monia" wrote:
вроде с вложенностью разобрался, а как можно получить ID всех параметров заданного контроллера логического уровня с использованием данного метода?
SYS.DAQ.LogicLev["Контроллер"].(и что то еще)
http://wiki.oscada.org/Doc/OpisanieProgrammy#h920-7
Learn, learn and learn better than work, work and work.
|
Written on: 14. 07. 2017 [08:59]
|
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
|
Подскажите
Как можно получить список id вложенных параметров?
На данный момент использую вот такой код
var list = this.nodeList(); // получаем массив с перечнем переменных и вложенных параметров данного параметра контроллера логического уровня
for(var i=0; i<list.length; i++)
{
// если элемент списка является именем вложенного параметра
// (отличается от остальных имен, префиксом "prm_")
if(list[i].indexOf("prm_") > -1)
{
O = this[key]["Obj"].get(); // забираем из вложенного параметра, подготовленный объект
}
}
Хотелось бы сразу получить массив со списком id вложенных параметров, а не искать их по префиксу "prm_" в "list"
|
Written on: 14. 07. 2017 [09:07]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"monia" wrote:
Хотелось бы сразу получить массив со списком id вложенных параметров, а не искать их по префиксу "prm_" в "list"
В документации про это прямо написано, мало того эта ссылка в предыдущем сообщении!
TArrayObj nodeList(string grp = "", string path = ""); — Получение списка идентификаторов дочерних узлов для группы grp и узла по пути path. Если grp пуста то возвращаются узлы всех групп.
Learn, learn and learn better than work, work and work.
|
Written on: 14. 07. 2017 [10:28]
|
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
|
Про это я неоднократно читал. Просто я не могу понять, что прописать в grp (this или "prm_", что?). В моем примере path, наверное можно не использовать, т.е. оставить path=""
И того наверное код должно выглядеть как-то так
var grp = "какая та группа";
var list = this.nodeList(grp);
|
Written on: 14. 07. 2017 [11:37]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"monia" wrote:
Про это я неоднократно читал. Просто я не могу понять, что прописать в grp (this или "prm_", что?). В моем примере path, наверное можно не использовать, т.е. оставить path=""
А попробовать перед спрашивать и не спрашивать не о том?!
Группа это префикс перед идентификатором узла, которую Вы сами и написали корректно.
Learn, learn and learn better than work, work and work.
|