2017-09-13 45 views
0

我需要創建一個10個motes的網絡。我希望每個粒子都能提供3種服務,其中s1 = 0.25,s2 = 0.5,s3 = 0.025。另外,我想識別/選擇自私/惡意的微塵。Cooja - 如何爲微粒/節點分配不同的服務?

任何幫助將不勝感激。

+0

您需要更深入地闡明這個問題,您所說的「s1 = 0.25,s2 = 0.5,s3 = 0.025」的服務是什麼意思? – KillaKem

+0

在我的項目中,我有節點網絡。節點是服務提供者或服務請求者。節點提供服務或服務。對於每種服務,都有一個值,例如服務S1 = 0.25。 –

回答

1

一個解決方案不應該是複雜的寫自己,但我想你可以看看使用服務註冊和傳播黑客(servreg-hack)在contiki應用程序。該應用程序的操作非常簡單,所有應用程序都可以通過廣播SERVICE_ID(這只是一個無符號的8位整數)來使節點能夠宣傳它們提供的服務。當廣播節點附近的另一節點接收到消息時,它存儲了SERVICE_ID和發送該消息的節點的地址。如果節點需要服務,則可以通過調用servreg_hack_lookup函數來查找提供該服務的節點的地址。

unicast-senderunicast receiver應用程序在contiki發行版的示例部分(Contiki/examples/ipv6/simple-udp-rpl)中使用了servreg_hack。

所以兩個節點上,你會通過調用

servreg_hack_init(); 

然後在服務提供商初始化servreg應用程序,你會註冊一個服務調用

servreg_hack_register(SERVICE_ID, service_provider_ip_addr); 

那麼這個服務將被接收和登記在服務用戶節點上。服務用戶將可以調用

service_provider_ipaddr = servreg_hack_lookup(SERVICE_ID); 

來獲取提供了SERVICE_ID標識的服務節點的地址。

+0

謝謝@Killakem。讓我嘗試實施建議的解決方案。 –

相關問題