1

Несколько флагов

Тема: Несколько флагов

Здравствуйте, впервые работаю с wialon, помогите разобраться, как я могу установить несколько флагов при получении объектов?
мне нужно получить "имя", "телефон" и  "статус подключения" хотелось бы в одном массиве, но кроме как "выполнить несколько команд одновременно"  с разными флагами  ни чего не удалось найти

2

Несколько флагов

Re: Несколько флагов

Флаги — это числа, в которых в двоичной записи задан определённый бит. Вам нужно объединить их бинарным ИЛИ.

3

Несколько флагов

Re: Несколько флагов

rual
Тоже интересует вопрос.
В описании sdk флаги указаны в HEX.
Например, флаг 0x10 и 0x20 надо указать.
Надо сложить побитово, потом перевести в DEC и в запросе указать так - "f": 48.
Верно?

ООО "Е-хаус"
www.e-hs.ru
Московская область
4

Несколько флагов

Re: Несколько флагов

ehouse пишет:

rual
Тоже интересует вопрос.
В описании sdk флаги указаны в HEX.
Например, флаг 0x10 и 0x20 надо указать.
Надо сложить побитово, потом перевести в DEC и в запросе указать так - "f": 48.
Верно?

Да.

В JSON числа представляются только в десятичном и экспоненциальном (3.14e+15) виде, в HEX/OCT нельзя.

5

Несколько флагов

Re: Несколько флагов

ehouse

А почему так сложно? Скоро вообще исчезнет упоминание о HEX в документации. Так как Wailon оперирует только DEC.
Переведите 0x10 (HEX) в 16 (DEC), 0x20 (HEX) в 32 (DEC) и сложите. Получите то же значение - 48.

rual
Не понял про бинарный или. Насколько я понял из документации флаги СКЛАДЫВАЮТСЯ.

6

Несколько флагов

Re: Несколько флагов

Бинарный "или" в данном случае будет эквивалент сложения, поскольку биты маски позиционно не пересекаются.

7

Несколько флагов

(04/12/2019 09:07:01 отредактировано sant78)

Re: Несколько флагов

Тогда уточняющий вопрос разработчикам.

Что правильнее при работе с флагами?
1. Бинарный ИЛИ (пример: 3 бинарный ИЛИ 5 = 7)
2. Сложение флагов (пример 3+5=8).

Понятно, что в документации биты масок флагов не пересекаются. Но все же, для общего понимания хочется увидеть ответ.

8

Несколько флагов

Re: Несколько флагов

sant78 пишет:

Тогда уточняющий вопрос разработчикам.

Что правильнее при работе с флагами?
1. Бинарный ИЛИ (пример: 3 бинарный ИЛИ 5 = 7)
2. Сложение флагов (пример 3+7=8).

Понятно, что в документации биты масок флагов не пересекаются. Но все же, для общего понимания хочется увидеть ответ.

Бинарный ИЛИ.

Чтобы выяснить, есть флаг в маске или нет, делается бинарный И, в случае сложения тех же 3+7, получается 8 & 3 = 8 & 7 = 0, что бесполезно.

Флаги пересекаться не должны, но лучше объединять, чем добавлять, иначе когда-нибудь можно случайно добавить дважды и получить неверный результат.