从BS向网络C-Cooja中的所有节点发送请求消息

时间:2014-02-18 18:05:28

标签: c++ include omnet++

我有两种节点:一个基站节点和一个简单节点。

我想模拟一个由Cooja模拟器播放请求 - 响应范例的网络。

我是cooja的新手,我想将我的网络分成单元格并在每个单元格中选择一个代表节点,让单元的其他成员向单元的代表节点发送消息,然后每个代表节点将收集这些信息并将其发送到上游代表节点,直到它到达BS。 BS将首先发送请求,然后简单节点将通过从其小区成员收集信息来响应该请求。假设在每个单元中将有4个节点,第5个简单节点是代表节点,它将收集此信息并将其发送到上游节点,直到它到达BS。

我首先使用单播代码向一个单元格的代表节点发送消息,但是当我尝试将多个代表节点的ID定位到一个以上的单元格时,它无法正常工作ID1是Cell#1的代表节点,我也希望实际将hello消息的函数casaer(密钥和密码)instade的值发送给代表节点。

我的Q: 我怎么能真正发送一个函数的值?以及代表节点将如何收集这些信息并将其发送到上游代表节点???

这就是我到目前为止所做的事情。

PROCESS(example_unicast_process, " unicast");
AUTOSTART_PROCESSES(&example_unicast_process);
int static b = 0  ;
int i=0;
int Table[10]={};

/*---------------------------------------------------------------------------*/
static void
recv_uc(struct unicast_conn *c, const rimeaddr_t *from)
{  

       do { i++ ; 
           if ( Table[i] == from->u8[0] );
           b=Table[from->u8[0]]++ ;
 printf(" message received from %d.%d  and & = %d \n",
from->u8[0], from->u8[1], b);} while (i<1);

 }

static const struct unicast_callbacks unicast_callbacks = {recv_uc};
static struct unicast_conn uc;

PROCESS_THREAD(example_unicast_process, ev, data)

{ 
void caesar (char cipher[], int shift) {
int i = 0;
 while (cipher[i] != '\0') {
  cipher[i] += (shift);
  i++; 
}
printf("%s\n", cipher); 
}


PROCESS_EXITHANDLER(unicast_close(&uc);)

PROCESS_BEGIN();
unicast_open(&uc, 146, &unicast_callbacks);


  while(1) {
static struct etimer et;
rimeaddr_t addr;
etimer_set(&et, CLOCK_SECOND*9);
char cipher[50];
int key = 5;
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&et));      


  int n = 1||5||8;
  packetbuf_copyfrom ("Hello",7); 
  addr.u8[0]= n ;
  addr.u8[1]= 0 ;
  packetbuf_copyto (cipher);
 if(addr.u8[0] == n)
   {if(rimeaddr_node_addr.u8[0] != 1)
  {printf("%u.%u: sending unicast to address %u.%u = ",
         rimeaddr_node_addr.u8[0],
         rimeaddr_node_addr.u8[1],
         addr.u8[0]= n,
         addr.u8[1]=0  );
         caesar (cipher, key);
    if( addr.u8[0] == 1||5||8)  { 
    unicast_send(&uc,&addr);
       }
    }
  }
}
PROCESS_END();

}

我该怎么办?这个n不起作用......,我很感谢你和我们一起努力工作..

0 个答案:

没有答案