1

我创建了一个具有一个接收器和五个发送器节点的网络。我想与所有节点共享一个数据(一个整数值)。我希望节点能够更新和读取共享整数值。我使用指针并尝试在节点之间共享内存。但是,由于 contiki 使用 protothreads,因此引用内存中包含的数据不会为其他节点保存,而是仅在单个节点中更新。这是我尝试过的。

code for the sender nodes 

 int *ptr;
 void share(int *val){
 ptr=val;
 printf(" the number after call is %d ",*ptr);
 }
 void display(){
   printf(" the number is %d ",*ptr);
 }
    code for the sink node

    void sendNumber(){
     int *val;
     *val = 12;
     share(val);
     }

当 sink 调用 share(val) 时,打印结果为

    the number after call is 12

如果 display() 被另一个节点调用,打印结果是

    the number is 1

发送者和接收器的代码都在不同的文件中。

我希望在 *val 中分配的数字显示在两个打印件中。即一旦 sink 节点调用节点 A 的 share(val),接收到的值应该保存在内存中,以供其余 4 个节点访问。但是,我的代码分别更新了所有 5 个节点的内存。

我真的非常感谢您的帮助。谢谢

4

0 回答 0