Cooja - Как назначить разные службы моту/узлу?

Мне нужно создать сеть из 10 узлов. Я хочу, чтобы каждый мот предоставлял 3 услуги с s1 = 0,25, s2 = 0,5 и s3 = 0,025. Кроме того, я хочу идентифицировать/выбрать эгоистичные/злонамеренные пылинки.

Любая помощь будет высоко оценена.


person Wasif Hamdani    schedule 13.09.2017    source источник
comment
Вам нужно уточнить этот вопрос намного больше, что именно вы подразумеваете под услугами с s1 = 0,25, s2 = 0,5 и s3 = 0,025?   -  person KillaKem    schedule 22.11.2017
comment
В моем проекте у меня есть сеть узлов. Узел является либо поставщиком услуг, либо заказчиком услуг. Узел предоставляет услугу или услуги. Для каждой услуги есть значение, например. Сервис S1 = 0,25.   -  person Wasif Hamdani    schedule 25.11.2017


Ответы (1)


Решение этой проблемы не должно быть сложным, чтобы написать его самостоятельно, но я думаю, вы можете взглянуть на использование хака регистрации и распространения службы (servreg-hack) в contiki. Работа приложения очень проста, все, что делает приложение, — это позволяет узлам рекламировать услуги, которые они предлагают, путем широковещательной передачи SERVICE_ID (это просто 8-битное целое число без знака). Когда другой узел в непосредственной близости от широковещательного узла получает сообщение, он сохраняет SERVICE_ID и адрес узла, отправившего сообщение. Если узлу нужна услуга, он может просто найти адрес узла, который предлагает услугу, вызвав функцию servreg_hack_lookup.

Приложения unicast-sender и unicast receiver в разделе примеров дистрибутива contiki (Contiki/examples/ipv6/simple-udp-rpl) используйте servreg_hack.

Таким образом, на обоих узлах вы должны инициализировать приложение servreg, вызвав

servreg_hack_init();

затем у поставщика услуг вы должны зарегистрировать услугу, позвонив

servreg_hack_register(SERVICE_ID, service_provider_ip_addr);

затем эта служба будет получена и зарегистрирована на узле пользователя службы. Затем пользователь службы может позвонить

service_provider_ipaddr = servreg_hack_lookup(SERVICE_ID);

чтобы получить адрес узла, предоставляющего услугу, идентифицированную SERVICE_ID.

person KillaKem    schedule 25.11.2017
comment
Спасибо @Киллакем. Позвольте мне попробовать реализовать предложенное решение. - person Wasif Hamdani; 26.11.2017