Народ, а как на z-stack координаторе работает отправка комманд и

прочих запросов на удаленные девайсы? Координатор кидает пакет в эфир и будь что будет, или там есть какая-то очередь/буффер, который освобождается по таймаутам или когда пакет доставлен? Не могу найти инфы по этому поводу.

8 ответов

28 просмотров

там в пакете есть признак, по которому ожидается ответ от устройства, что оно получило команду. т.е. устройство должно ответить. в большинстве пакетов этот признак устанавливается. это не особенность z-stack, а особенность host-приложения, которое шлет команды, оно же выставляет таймаут ответа от устройства и само ждет. и само же делает очередь команд. и вот эти host-приложения каждый пишет как хочет :)

u236- Автор вопроса

не совсем так, там же есть синхронные и асинхронные запросы, при отправке скажем запроса LQI я кидаю координатору пакет и он ТУТ ЖЕ отвечает типа ок, я тебя понял, дальше магия происходит уже внутри координатора

ты с хост-приложения кидаешь в стик команду, а не в сеть. есть же команды управления координатором (они разные для разных стеков). а дальше уже координатор исполняет команду в своей сети.

u236- Автор вопроса

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

общение хост-приложения и координатора - это протокол znp (для z-stack), и он описан в доках. а вот что внутри координатора происходит - читай исходники прошивки. если надо, сниффай трафик сети и будет видно что он шлет дальше.

u236- Автор вопроса

ты короче не уловил суть изначального вопроса)))) я про то и спросил - как реализована буферизация исходящих запрсов в znp, наверняка кто-то знает)

:) не знаю про буферизацию внутри стика, знаю что с хоста на стик в одну очередь выстраиваются запросы

u236- Автор вопроса

тут у меня все четко, у меня однопоточное приложение, сперва отправляется запрос, потом поток ждет пока во входящем буфере порта появятся данные, потом ждет еще 10мс и потом начинает разгребать ответ

Похожие вопросы

Обсуждают сегодня

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта