Документация для версии Мониторинг 13.0. Документация на другие версии также доступна.

Предыдущая страница Примеры скриптов для особого режима работы ПК Мониторинг с ПК ACFA-Интеллект  Пример скрипта для определения текущего состояния зон объекта ОПС Rovalant (A6, A16) на стороне Агента Контроля Следующая страница

Данный скрипт осуществляет запись пользователей со стороны Сервера контроля в ОПС ROVALANT (A6, A16), которая установлена на строне Агента контроля.

function SetPersons(srcDepartment, destTable, destTableSize, msg)
{
	var users = CreateMsg();
	users.StringToMsg(GetObjectIds("PERSON"));
	var userCount = users.GetParam("id.count");
	var i;
	var index;
	for(i = 0, index = 1; (index <= destTableSize) && (i < userCount); ++i)
	{
		var user = users.GetParam("id." + i);
		if(GetObjectParentId("PERSON", user, "DEPARTMENT") == srcDepartment)
		{
			msg.SetParam("USERS.user_id." + Itv_var("counter"), user);
			msg.SetParam("USERS.number." + Itv_var("counter"), index);
			msg.SetParam("USERS.key_type." + Itv_var("counter"), destTable);
			index++;
			Lock();
			Itv_var("counter")++;
			Unlock();
		}
	}
}
if(Event.SourceType == "VIDEOSRV_C" && Event.Action == "SPR_DATA_UPDATED")
{
	var ROVALANT_TYPE = "ROVALANT_DEVICE";
	var ROVALANT_ID = "1.1";
	var WRITE_CONFIG_REACT = "WRITE_CONFIG";
	Itv_var("counter") = 0;
	var msg = CreateMsg();
	msg.SourceType = "CORE";
	msg.SourceId = "";
	msg.Action = "UPDATE_OBJECT";
	msg.SetParam("objtype", ROVALANT_TYPE);
	msg.SetParam("objid", ROVALANT_ID);
	var type = GetObjectParam(ROVALANT_TYPE, ROVALANT_ID, "type");
	if(type == "A6")
	{
		SetPersons("1", "USER", 79, msg);
	}
	else
	{
		SetPersons("1", "USER", 255, msg);
	}
	SetPersons("2", "POLICE", 15, msg);
	SetPersons("3", "ELECTRIC", 15, msg);

	msg.SetParam("USERS.user_id.count", Itv_var("counter"));
	msg.SetParam("USERS.number.count",  Itv_var("counter"));
	msg.SetParam("USERS.key_type.count",  Itv_var("counter"));
	NotifyEvent(msg);
	NotifyEventStr(ROVALANT_TYPE, ROVALANT_ID, WRITE_CONFIG_REACT, "");
}
  • No labels