1

Unit staus

(edited by gsmonitoring 18/07/2013 11:23:22)

Topic: Unit staus

Добрый день,

Я использую следующий запрос для получения информации о доступных машин:

//hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={'spec':{'itemsType':'avl_unit','propName':'sys_unique_id','propValueMask':'*','sortType':'sys_unique_id','propType':'propitemname'},'force':1,'flags':0x3FFFFFFFFFFFFFFF,'from':0,'to':0}&sid=" + sid;

пожалуйста  подскажите какое значение показывает статус машины (занять, свободен, и тд.)
Заранее благодарю.

P.S. вот отрывок из результата о машине

{
    "nm": "3  .",
    "cls": 2,
    "id": 56415,
    "prp": {
      "monitoring_sensor": "0 ee00ff06 OK;1 eeff1c00 SOS;2 ee0000ff",
      "monitoring_sensor_id": "1",
      "sensors_colors_id": "1",
      "speed_colors": "0 ee92fa69;20 ee21a40b;50 CCf55058;100 eec4090f"
    },
    "crt": 55806,
    "bact": 55807,
    "gd": "ef0b1557111b9aac8beb6f4c01fb9746",
    "uid": "352848023114123",
    "hw": 28252,
    "ph": "+37499108304",
    "ph2": "",
    "psw": "opa",
    "cmds": [],
    "pos": {
      "t": 1374134784,
      "y": 40.1834656,
      "x": 44.4595296,
      "z": 996,
      "s": 0,
      "c": 118,
      "sc": 10
    },
    "lmsg": {
      "t": 1374134784,
      "f": 3,
      "tp": "ud",
      "pos": {
        "y": 40.1834656,
        "x": 44.4595296,
        "z": 996,
        "s": 0,
        "c": 118,
        "sc": 10
      },
      "i": 1,
      "p": {
        "battery_charge": 1,
        "param179": 0,
        "param199": 0
      }
    },
    "sens": {
      "1": {
        "id": 1,
        "n": "Тревожная кнопка",
        "t": "digital",
        "d": "SOS",
        "m": "On/Off",
        "p": "in1",
        "f": 0,
        "c": "{\"appear_in_popup\":true,\"pos\":3}",
        "vt": 0,
        "vs": 0,
        "tbl": []
      },
      "2": {
        "id": 2,
        "n": "Расстаяние",
        "t": "odometer",
        "d": "км",
        "m": "кm",
        "p": "param199",
        "f": 0,
        "c": "{\"appear_in_popup\":true,\"pos\":2}",
        "vt": 0,
        "vs": 0,
        "tbl": [
          {
            "x": 1,
            "a": 0.001,
            "b": 0
          }
        ]
      },
      "3": {
        "id": 3,
        "n": "driver",
        "t": "driver",
        "d": "",
        "m": "",
        "p": "avl_driver",
        "f": 0,
        "c": "{\"appear_in_popup\":false,\"pos\":1}",
        "vt": 1,
        "vs": 0,
        "tbl": []
      }
    },
    "sens_max": -1,
    "cfl": 1808,
    "cnm": 445557,
    "cneh": 0,
    "cnkb": 3579,
    "cml": {},
    "cml_max": -1,
    "prms": {
      "battery_charge": {
        "v": 16777216,
        "ct": 1374109543,
        "at": 1374134784
      },
      "in": {
        "v": 1,
        "ct": 1374109543,
        "at": 1374134784
      },
      "out": {
        "v": 0,
        "ct": 1366626357,
        "at": 1368173207
      },
      "param179": {
        "v": 0,
        "ct": 1366626357,
        "at": 1374134784
      },
      "param199": {
        "v": 0,
        "ct": 1371091230,
        "at": 1374134784
      },
      "posinfo": {
        "v": {
          "y": 40.1834656,
          "x": 44.4595296,
          "z": 996,
          "c": 118,
          "sc": 10
        },
        "ct": 1374134784,
        "at": 1374134784
      },
      "speed": {
        "v": 0,
        "ct": 1374134784,
        "at": 1374134784
      }
    },
    "si": {},
    "simax": 0,
    "rtd": {
      "type": 1,
      "gpsCorrection": 1,
      "minSat": 2,
      "minMovingSpeed": 1,
      "minStayTime": 300,
      "maxMessagesDistance": 10000,
      "minTripTime": 60,
      "minTripDistance": 100
    },
    "rfc": {
      "calcTypes": 193,
      "fuelLevelParams": {
        "flags": 1,
        "ignoreStayTimeout": 20,
        "minFillingVolume": 20,
        "minTheftTimeout": 0,
        "minTheftVolume": 10,
        "filterQuality": 0
      },
      "fuelConsMath": {
        "idling": 2,
        "urban": 10,
        "suburban": 7,
        "loadCoef": 1.3
      },
      "fuelConsRates": {
        "consSummer": 10,
        "consWinter": 12,
        "winterMonthFrom": 11,
        "winterDayFrom": 1,
        "winterMonthTo": 1,
        "winterDayTo": 30
      },
      "fuelConsImpulse": {
        "maxImpulses": 0,
        "skipZero": 0
      }
    },
    "ugi": 1,
    "uacl": 880265921027
  }

Anushavan Simonyan
GS monitoring Yerevan, Armenia
2

Unit staus

Re: Unit staus

Дело в том, что у объектов нет статуса, поэтому вопрос не понятен. Объясните по-другому что вы имете в виду)

Development Department
Gurtam
3

Unit staus

(edited by gsmonitoring 19/07/2013 00:29:02)

Re: Unit staus

zuve wrote:

Дело в том, что у объектов нет статуса, поэтому вопрос не понятен. Объясните по-другому что вы имете в виду)

Спасибо за ваш ответ.
Допустим имеется 3 такси. Первый занять, второй сегодня не работает, а третий свободен. Мне нужна эта инфа.
На этой картине видно что "Nearest Units" показывает статус машины (зелёный, серии, итд.).
Я хочу получить то же самое если это возможно через remote API или javascript  API.
http://postimg.org/image/d7qccd5zd/

Anushavan Simonyan
GS monitoring Yerevan, Armenia
4

Unit staus

Re: Unit staus

В "Nearest Units" отображается значение того же датчика, который отображается в панели мониторинга. Он задается на вкладке Дополнительно->цвет датчика.
Получить все датчики юнита: unit.getSensors()
Рассчитать значение датчика: unit.calculateSensorValue(sensor, msg)

Development Department
Gurtam
5

Unit staus

(edited by gsmonitoring 19/07/2013 12:23:20)

Re: Unit staus

zuve wrote:

В "Nearest Units" отображается значение того же датчика, который отображается в панели мониторинга. Он задается на вкладке Дополнительно->цвет датчика.
Получить все датчики юнита: unit.getSensors()
Рассчитать значение датчика: unit.calculateSensorValue(sensor, msg)

Я использовал следующее 
//hst-api.wialon.com/wialon/ajax.html?svc=unit/calc_last_message&params={'unitId':1111}&sid=22222
оно возвращает {"1":0,"2":0,"3":-348201.3876}
и как понять что это означает?

С уважением

Anushavan Simonyan
GS monitoring Yerevan, Armenia
6

Unit staus

Re: Unit staus

Из  полученного результата непонятно какого типа у  вас датчики. Если например первый датчик это датчик зажигания, то  0 - выключен, 1 -включен. Значения датчиков приходят в цифровом виде и дальше вы интерпретируете их сами, а так же сами решаете в каком виде отобразить информацию пользователю.

Development Department
Gurtam
7

Unit staus

Re: Unit staus

zuve wrote:

Из  полученного результата непонятно какого типа у  вас датчики. Если например первый датчик это датчик зажигания, то  0 - выключен, 1 -включен. Значения датчиков приходят в цифровом виде и дальше вы интерпретируете их сами, а так же сами решаете в каком виде отобразить информацию пользователю.

В документации я вижу что есть типы сенсоров, например  "engine operation" показывает состояние двигателя.
Я не мог найти в Remote API документации как найти сенсоры определенного типа установленные на машине.
Выше вы привели пример как это делается с Javascript API, есть ли Remote API альтернатива?

Anushavan Simonyan
GS monitoring Yerevan, Armenia
8

Unit staus

Re: Unit staus

Все датчики можно получить поисковым запросом используя флаг 0x00001000. Для расчета значения датчика используйте unit/calc_sensors

Development Department
Gurtam
9

Unit staus

(edited by gsmonitoring 20/07/2013 19:44:23)

Re: Unit staus

zuve wrote:

Все датчики можно получить поисковым запросом используя флаг 0x00001000. Для расчета значения датчика используйте unit/calc_sensors

Этот запрос возвращает все машины.

var url = "https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_items&params={'spec':{'itemsType':'avl_unit','propName':'sys_unique_id','propValueMask':'*','sortType':'sys_unique_id','propType':'propitemname'},'force':1,'flags':0x3FFFFFFFFFFFFFFF,'from':0,'to':0}&sid=" + sid;

Образец можете увидеть на первом посту. Как вы сказали у юнитов нет "состояния" на них есть датчики.
У вас задокументировано два метода для сенсоров: unit/calc_last_message и unit/calc_sensors.

Первый метод возвращает значения которые бесполезны, точнее оно возвращает значения сенсоров но не дает инфу какое значение к какому сенсору имеет отношение. Было бы прекрасно ели тип сенсора было в результате.
Второй метод возвращает только error 4. Вот  запрос который я использую. Здесь значение unitId вставляется id машины полученный из предыдущего запроса.
https://hst-api.wialon.com/wialon/ajax.html?svc=unit/calc_sensors&params={{'source':'','indexFrom':0,'indexTo':2,'unitId':{0},'sensorId':0}}&sid=1111
Документация гласит что я имею право передать пустое значение для source, и 0 для sensorId. И оно возвращает error 4...
Если я не прав и unitid должно быть id сенсора то как получить сенсоры установляние на данной машине которое имеет определенное id из первого запроса?

задача очень проста.
у меня есть машины, и я знаю их id.
мне нужно заполучить сенсоры установлянные на конкретную машину.
и узнать значение сенсора если этот сенсор нужного типа.

говоря языком программирования

var cars = getCars // this part is ok
foreach(car in cars)
{
   var sensors = getSensorsInstalledOnCar(car.id)
   foreach(sensor in sensors)
   {
     if(sensor.type == 'someNeededType')
     {
        get sensor value here!!!!!
        // вот что мне нужно
     }
   }
}

есть ли все эти возможности в Remote API?

Anushavan Simonyan
GS monitoring Yerevan, Armenia
10

Unit staus

(edited by pese 22/07/2013 12:58:11)

Re: Unit staus

Описание запросов  unit/calc_last_message и unit/calc_sensors есть в документации

http://sdk.wialon.com/wiki/ru/sidebar/r … lc_sensors
http://sdk.wialon.com/wiki/ru/sidebar/r … st_message

calc_last_message возвращает объект такого типа
{
       key0:value0,
       key1:value1,
       ....
}

где  key0,key1 - id датчика
      value0,value1 - значение датчика

calc_sensors может возвращает error:4, только тогда, когда:
- Вы сформировали неверный запрос
- у объекта нет сообщений
- у объекта нет датчиков

ВАЖНО!!! перед вызовом calc_sensors выполните запрос messages/load_interval