-1

请给我一个建议:

我想获得从 mote 发送信号的时间(我想在 SFD 引脚从 1 变为 0 时产生中断)我没有找到解决方案,但我找到了这个组件:组件: tos.chips.cc2420_tkn154.CC2420TransmitP

它提供了 cc2420Tx,这似乎给了我时间需要。但我无法使用它,因为默认情况下它使用 cc2420 文件夹中的组件,而不是 cc2420_tkn154 文件夹中的组件。

主要想法是我想测量从发送信号到接收确认的时间。我需要微秒精度。所有这些都将帮助我获得两个微粒之间的距离。

任何想法都会有所帮助。我到处搜索:论坛、tinyos 文档、示例……

谢谢 :)

4

1 回答 1

0

我不知道你想得到多低的级别,但是如果你有一个计时器,在 nesC 中你可以在每次计时器触发时获取本地时间:

uint32_t timestamp;

event void myTimer.fired() {

    timestamp = call myTimer.getNow();
    printf("Timestamp: %ld \n", timestamp);
}

如果您没有计时器,则可以使用组件 LocalTimeMilliC。将此添加到您的配置文件中:

components LocalTimeMilliC;
TestC.LocalTime -> LocalTimeMilliC;

...在实现的模块部分:

uses interface LocalTime<TMilli>;

...在代码中:

timestamp = call LocalTime.get();

但是,当您重置节点时,每个节点的本地时间将重新开始。您将不得不同步不同的时间。如果要计算微粒之间的距离,这可能不是最好的方法。从本文的摘要中引用:

部署的传感器节点的位置可以通过 TOA、TDOA 或接收信号强度 (RSS) 测量来找到。

对于RSSI ,在tinyos-2.1.1/apps/tutorials文件夹中有一个演示。

于 2013-09-03T10:23:01.857 回答