我创建了一个具有一个接收器和五个发送器节点的网络。我想与所有节点共享一个数据(一个整数值)。我希望节点能够更新和读取共享整数值。我使用指针并尝试在节点之间共享内存。但是,由于 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 个节点的内存。
我真的非常感谢您的帮助。谢谢