1

Помогите разобраться с типом и описанием возвращаемых данных

Тема: Помогите разобраться с типом и описанием возвращаемых данных

Добрый день, помогите разобраться с типом и описанием возвращаемых данных.
Отправляем запрос(http://xxx.xxx.xxx.ua/wialon/ajax.html?svc=core/search_items&params={"spec":{"itemsType":"avl_unit","propName":"sys_id","propValueMask":"1302","sortType":"sys_id","propType":"customfield "},"force":1,"flags":4194305,"from":0,"to":0}&sid=.....)
Получаем ответ:
{
  "searchSpec": {
    "itemsType": "avl_unit",
    "propName": "sys_id",
    "propValueMask": "1302",
    "sortType": "sys_id",
    "propType": "customfield ",
    "or_logic": "0"
  },
  "dataFlags": 4194305,
  "totalItemsCount": 1,
  "indexFrom": 0,
  "indexTo": 0,
  "items": [
    {
      "nm": "АІ1111СМ",
      "cls": 2,
      "id": 1302,
      "mu": 0,
      "pos": {
        "t": 1567520048,
        "f": 1073741827,
        "lc": 888695721,
        "y": 50.4643363953,
        "x": 30.347234726,
        "z": 154,
        "s": 0,
        "c": 80,
        "sc": 12
      },
      "uacl": 16931
    }
    ]
    ...
Есть вопрос по параметрам "f" и "lc". Интересуют их описание и тип данных.
В API на сайте не нашел....

2

Помогите разобраться с типом и описанием возвращаемых данных

Re: Помогите разобраться с типом и описанием возвращаемых данных

Здравствуйте.

f это набор бит, задающие какие-то характеристики сообщения, в котором появилась эта позиция. Публичны из них следующие:

  • 0x1 — есть ли позиция, всегда будет присутствовать.
  • 0x2 — есть ли цифровые входы.
  • 0x4 — есть ли цифровые выходы.
  • 0x10 — является ли сообщение тревожным.
  • 0x20 — содержится ли код водителя.
  • 0x20000 — определена ли позиция по LBS.
  • 0x40000 — сообщение приватной поездки, в позиции будут отсутствовать x/y.

Остальные либо используются для внутренних целей, либо пока зарезервированы.

lc используется внутри системы для функционирования LBS, является чек-суммой базовых станций GSM (какой-то хеш от параметров cell_id).

3

Помогите разобраться с типом и описанием возвращаемых данных

Re: Помогите разобраться с типом и описанием возвращаемых данных

Спасибо.
1.    "f": 1073741827 как это преобразуется в набор бит?
2.    Какой тип данных используется для этих полей?

4

Помогите разобраться с типом и описанием возвращаемых данных

Re: Помогите разобраться с типом и описанием возвращаемых данных

limit пишет:

"f": 1073741827 как это преобразуется в набор бит?

https://ru.wikipedia.org/wiki/Битовая_маска

limit пишет:

Какой тип данных используется для этих полей?

uint32

5

Помогите разобраться с типом и описанием возвращаемых данных

Re: Помогите разобраться с типом и описанием возвращаемых данных

rual пишет:
limit пишет:

"f": 1073741827 как это преобразуется в набор бит?

https://ru.wikipedia.org/wiki/Битовая_маска

А можно реальный пример преобразования на основе моего числа?

6

Помогите разобраться с типом и описанием возвращаемых данных

Re: Помогите разобраться с типом и описанием возвращаемых данных

limit пишет:

А можно реальный пример преобразования на основе моего числа?

При помощи бинарного И можно узнать, содержится определённый флаг в маске или нет.

>>> 1073741827 & 0x1
1
>>> 1073741827 & 0x2
2
>>> 1073741827 & 0x4
0

(если ноль — флага нет, если сам флаг — есть)

Можно перевести в двоичный вид, чтобы «на глаз» посмотреть:

>>> bin(1073741827)
'0b1000000000000000000000000000011'

Можно зачем-то в цикле проходить по всем флагам, применяя сдвиг:

let flags = 1073741827;

let i = 0;

while (flags) {
    let b = flags & 1;

    console.log(i, b);

    i++;
    flags = flags >> 1;
}