1

Wialon KIT JS API - нужна помощь

(edited by Hound 13/11/2012 10:12:54)

Topic: Wialon KIT JS API - нужна помощь

Добрый день, подскажите как правильно удалять объект из списка мониторинга?, что бы сообщения для него больше не присылались. Для удаления достаточно одного ID объекта?
Понял что за это отвечает метод :
unit.removeListener("changeName", this.onUnitChangeName, this);
Но не совсем понятно какие параметры ему передаются.
Вообщем интересует удаление "слушателя" зная его ID и так же удаление всех "слушателей"
Так же как обратиться к маркеру объекта?  Зная ID объекта.

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
2

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Для удаления объекта достаточно одного ID. Чтобы не получать большее сообщения от объекта его нужно удалить из сессии при помощи updateDataflags (http://docs.gurtam.com/api/hosting/#wia … hod_public). При удалении из сессии объекта обработчики его событий остаются, и если этот объект снова появится в сессии то они сработают. Если же вам нужно удалять обработчики то удобнее при их создании запоминать их ID  и удалять методом removeListenerById.
Получить иконку объекта можно следующим способом:
1) по известному ID получить объект используя getItem (http://docs.gurtam.com/api/hosting/#wia … hod_public) либо searchItem (http://docs.gurtam.com/api/hosting/#wia … hod_public)
2) вызвать у объекта метод getIconUrl (http://docs.gurtam.com/api/hosting/#wia … hod_public)

Development Department
Gurtam
3

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

При попытке удалить объект из сессии в консоли прописываю
wialon.core.Session.getInstance().updateDataFlags( [{type: "id",data: "524135",  mode:2}],qx.lang.Function.bind(function(unit_id, code) {
            if (code) {
        alert(code);
        return;}
      }) );
в ответ выдает undefined.

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
4

Wialon KIT JS API - нужна помощь

(edited by Tracking 13/11/2012 12:18:12)

Re: Wialon KIT JS API - нужна помощь

В колбэк передается только код ошибки и все smile
А Вы ждете целый 2 аргумента.

Из документации:
callback (default: Function) callback function that is called after remote call: callback(code), where zero code is success

С уважением, Станислав Комар
TrackingSoft team.
5

Wialon KIT JS API - нужна помощь

(edited by Hound 13/11/2012 12:24:49)

Re: Wialon KIT JS API - нужна помощь

Спасибо помогло, Колбэк возвращает 4, я так понимаю нужно 0 видать дело не только в этом), И если я удаляю объект из сессии и оставляю обработчик можно ли так делать или не стоит?

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
6

Wialon KIT JS API - нужна помощь

(edited by Tracking 13/11/2012 13:21:25)

Re: Wialon KIT JS API - нужна помощь

Это "учебный код" smile Проверку на наличие юнитов не делал и все такое.
Вы параметр flags не передаете.
Собственно, удаление из сесси выглядит примерно так:

// Коллекция Юнитов
var units = wialon.core.Session.getInstance().getItems('avl_unit');
// Беру первого юнита
var unit = units[0];
// Удаляю его из сессии
wialon.core.Session.getInstance().updateDataFlags([{ type: 'id',data: unit.getId(), flags: -1, mode: 2  }], function(code){ 
if(!code)
  return; 
console.log(wialon.core.Errors.getErrorText(code));  
});

P.S. ошибка 4 - Инвалид инпут smile

С уважением, Станислав Комар
TrackingSoft team.
7

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Да помогло, спасибо). Дело  скорее всего было в flags, просто только сегодня начал разбираться, не совсем понял что за параметр передаться во flags

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
8

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Да вот и следом возникает вопрос, как лучше убирать иконки автомобиля с карты?

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
9

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Ну, думаю, в Вашем случае - в колбэке удаления Юнита из сессии smile

С уважением, Станислав Комар
TrackingSoft team.
10

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Всем доброго утра. Вот такой вопрос ещё возник, я так понимаю в сессии хранятся объекты которые в данный момент находятся на панели мониторинга, и которые система в данный момент слушает. После удаления объекта из сессии система перестает его слушать. Но как к нему опять обратиться? То есть обратиться ко всем объектам которые существуют но в сессии их нет, и естественно затем добавить их в сессию ?

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
11

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Или получается объекты удалённые из сессии удаляются совсем?

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
12

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Объекты удаленные из сессии можно вернуть обратно. Если вам нужно добавить в сессию все объекты которые в данный момент не находятся в сессии, то нужно просто вызвать updateDataFlags и в параметре спецификации data  указать "avl_unit". Все недостающие объекты добавятся в сессию. Если же вам нужно добавить какие то конкретные объекты , то вы можете сначала их найти при помощи searchItems, а затем вызвать updateDataFlags указав в параметрах id объектов найденных ранее.

Development Department
Gurtam
13

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Пишу
wialon.core.Session.getInstance().updateDataFlags( [{type: "type",data:"avl_unit", flags: wialon.item.Item.dataFlag.base|wialon.item.Item.dataFlag.image|wialon.item.Unit.dataFlag.restricted|wialon.item.Unit.dataFlag.lastMessage, mode:0}],qx.lang.Function.bind(function(code) {       
        alert(code);
      }) );

все нормально выполняется, но объекты в сессию не добавляются.

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
14

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Как вы определяете, что объекты не добавляются?

Development Department
Gurtam
15

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Так же в консоли прописываю wialon.core.Session.getInstance().getItems('avl_unit'); выводиться один объект который уже добавлен.

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
16

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

Думаю, Вы куда-то не туда смотрите, либо у Вас всего один объект smile

Обратите внимание на картинку.
"22 - 21 -22" - это кол-во юнитов.
Первое 22 - это сколько их всего.
21 - после удаления одного из юнитов из сессии
Второе 22 - возврат юнитов в сессию ( кстати, Вашим же кодом )

Hound wrote:

Пишу
wialon.core.Session.getInstance().updateDataFlags( [{type: "type",data:"avl_unit", flags: wialon.item.Item.dataFlag.base|wialon.item.Item.dataFlag.image|wialon.item.Unit.dataFlag.restricted|wialon.item.Unit.dataFlag.lastMessage, mode:0}],qx.lang.Function.bind(function(code) {       
        alert(code);
      }) );

все нормально выполняется, но объекты в сессию не добавляются.

Wialon KIT JS API - нужна помощь

С уважением, Станислав Комар
TrackingSoft team.
17

Wialon KIT JS API - нужна помощь

(edited by Hound 14/11/2012 13:25:44)

Re: Wialon KIT JS API - нужна помощь

Да теперь все встает на свои места видать ф-ей

wialon.core.Session.getInstance().deleteItem(wialon.core.Session.getInstance().getItem(selid),qx.lang.Function.bind(function(code) {
alert(wialon.core.Errors.getErrorText(code));
}) );

я их удалял не только из сессии))))

Спасибо за помощь)))

Специалист технической поддержки ООО "Аруснави"
8888@arusnavi.ru
www.gpsgis.ru
18

Wialon KIT JS API - нужна помощь

Re: Wialon KIT JS API - нужна помощь

5$ smile

С уважением, Станислав Комар
TrackingSoft team.