EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Вопрос по обращению к переменным


Author Message
Written on: 12. 12. 2016 [13:35]
monia
Олег Намятов
Topic creator
registered since: 21.05.2012
Posts: 173
что вернет такое обращение:
JAVASCRIPT
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:

что вернет такое обращение:
JAVASCRIPT
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 всех параметров заданного контроллера логического уровня с использованием данного метода?
JAVASCRIPT
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 всех параметров заданного контроллера логического уровня с использованием данного метода?
JAVASCRIPT
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 вложенных параметров?

На данный момент использую вот такой код
JAVASCRIPT
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=""
И того наверное код должно выглядеть как-то так
JAVASCRIPT
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.



4009