Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ZigBee кто работал ?
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
Dениs
Добрый вечер форумчане ... кто работал с ZigBee на базе SOC CC2530 и стеком протоколов ZStack ?
Изучаю примеры от Texas-а и он меня видать добьет, бо НИЧЕРТА не понятно !!! Не могу понять как сделать простую связку устройст по ZigBee Coordinator & EndDevice ... EndDevice следит за состояниями кнопок и передает в случае их изменения Coordinator-у, но по примерам при включении устройства координатор автоматом соединяется с устройством с похожими параметрами сети, а мне это не надо ... мне надо чтобы кооддинатор разрешал подключение только, когда разрешено мастером (главным контроллером) и только из определенного списка ... так вот не могу понять на каком уровне стека мне вклиниться в работу и запрещать или разрешить соединение и т.д.
Помогите бо чую что загнусь !!!!!!!!!!!!!!!! sad.gif
ataradov
С TI не работал, но искать нужно по словам Permit Duration, ZDP Permit Joining, Associacion permission.
Dениs
Цитата(ataradov @ Nov 24 2014, 20:03) *
С TI не работал, но искать нужно по словам Permit Duration, ZDP Permit Joining, Associacion permission.


А у тебя нету примеров работы с Zigbee других контроллеров, может там понятнее мне будет ?
ataradov
QUOTE (Dениs @ Nov 27 2014, 08:36) *
А у тебя нету примеров работы с Zigbee других контроллеров, может там понятнее мне будет ?


Вот пример для Atmel BitCloud:

CODE
static void setPermitJoinCmd(uint8_t value)
{
  static ZDO_ZdpReq_t zdpReq;
  ZDO_MgmtPermitJoiningReq_t *permit = &zdpReq.req.reqPayload.mgmtPermitJoiningReq;

  zdpReq.ZDO_ZdpResp = zdoPermitJoiningResponse;
  zdpReq.reqCluster = MGMT_PERMIT_JOINING_CLID;
  zdpReq.dstAddrMode = APS_SHORT_ADDRESS;
  zdpReq.dstAddress.shortAddress = NWK_GetShortAddr();
  permit->tcSignificance = 1;
  permit->permitDuration = value;

  ZDO_ZdpReq(&zdpReq);
}

static void zdoPermitJoiningResponse(ZDO_ZdpResp_t *resp)
{
  (void)resp;
}
Dениs
Цитата(ataradov @ Nov 27 2014, 22:02) *
Вот пример для Atmel BitCloud:

Код
static void setPermitJoinCmd(uint8_t value)
{
  static ZDO_ZdpReq_t zdpReq;
  ZDO_MgmtPermitJoiningReq_t *permit = &zdpReq.req.reqPayload.mgmtPermitJoiningReq;

  zdpReq.ZDO_ZdpResp = zdoPermitJoiningResponse;
  zdpReq.reqCluster = MGMT_PERMIT_JOINING_CLID;
  zdpReq.dstAddrMode = APS_SHORT_ADDRESS;
  zdpReq.dstAddress.shortAddress = NWK_GetShortAddr();
  permit->tcSignificance = 1;
  permit->permitDuration = value;

  ZDO_ZdpReq(&zdpReq);
}

static void zdoPermitJoiningResponse(ZDO_ZdpResp_t *resp)
{
  (void)resp;
}


Хорошо, я понял а как их использовать в основнном таске ?
ataradov
QUOTE (Dениs @ Nov 27 2014, 23:29) *
Хорошо, я понял а как их использовать в основнном таске ?


Можно откуда угодно вызвать setPermitJoinCmd() и соответствующая команда будет отправлена.

Так у вас TI или Atmel? Как вы так легко меняете чипы?
Dениs
Цитата(ataradov @ Nov 28 2014, 08:32) *
Можно откуда угодно вызвать setPermitJoinCmd() и соответствующая команда будет отправлена.

Так у вас TI или Atmel? Как вы так легко меняете чипы?


Так у меня по умолчанию был TI, а исходники попросил чтобы понять как работать с ним ... Хорошо, а какое сообщение отсылается основному таску при регистриции нового нода ?
ataradov
QUOTE (Dениs @ Nov 27 2014, 23:51) *
Хорошо, а какое сообщение отсылается основному таску при регистриции нового нода ?
Я без понятия о чем речь. Какому именно "основному таску"?
Dениs
Цитата(ataradov @ Nov 28 2014, 09:05) *
Я без понятия о чем речь. Какому именно "основному таску"?


Ну у Техаса есть основное пользовательская задача ... какие сообщения я должен обрабатывать при присоединении к сети нового устройства ? У техаса в библиотеке есть меседжи Device_Annce и т.д. Так вот непонятно какие сообщения обрабатывать при включении нового устройства чтобы запретить или одобрить подключение ?
Вот что я имею ввиду )
ataradov
QUOTE (Dениs @ Nov 28 2014, 00:30) *
Ну у Техаса есть основное пользовательская задача ... какие сообщения я должен обрабатывать при присоединении к сети нового устройства ? У техаса в библиотеке есть меседжи Device_Annce и т.д. Вот что я имею ввиду )
Тут все библиотеки разные. В общем случае никаких сообщений на координаторе не будет, так как ED может присоединиться через R.
Dениs
Цитата(ataradov @ Nov 28 2014, 09:33) *
Тут все библиотеки разные. В общем случае никаких сообщений на координаторе не будет, так как ED может присоединиться через R.


А если я настроил сеть с нулевым количеством роутеров то коодинатор и бедет главным маршрутизатором ?
ataradov
QUOTE (Dениs @ Nov 28 2014, 00:41) *
А если я настроил сеть с нулевым количеством роутеров то коодинатор и бедет главным маршрутизатором ?
Да. В этом случае вновь подключившиеся устройства будут видны.
Dениs
Цитата(ataradov @ Nov 28 2014, 09:47) *
Да. В этом случае вновь подключившиеся устройства будут видны.


НУ а есть какие-то стандартные сообщения по которым я увижу его подключение ?
ataradov
QUOTE (Dениs @ Nov 28 2014, 00:56) *
НУ а есть какие-то стандартные сообщения по которым я увижу его подключение ?
Нет, никаких стандартов на API стека нет. В общем случае стек может вообще ничего не сказать.
Dениs
Цитата(ataradov @ Nov 28 2014, 09:58) *
Нет, никаких стандартов на API стека нет. В общем случае стек может вообще ничего не сказать.


Смотри, а не знаешь при присоединении устройства к сети приложению генерируется сообщении Device Announce ?
ataradov
QUOTE (Dениs @ Nov 28 2014, 07:31) *
Смотри, а не знаешь при присоединении устройства к сети приложению генерируется сообщении Device Announce ?


Сообщения Device Announce посылаются устройством или родителем устройства (в случае ED) при входе в сеть или при изменении сетевых параметров (например смена короткого адреса в результате разрешения конфликта адресов). Показывать эти сообщения приложению или нет - это вопрос конкретного API. BitCloud, например, не показывает, так как приложению от них пользы мало в общем случае. В то же время BitCloud поднимает сообщение о присоединении устройства (о добавлении новой записи в таблицу детей).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.