改变 Nreadings tinyos

Changing Nreadings tinyos

当我在示波器头文件中将 Nreadings 从 1 更改为 2 时,我最终从一个传感器获得了 4 个字节的数据。我的疑问是这 4 个字节是否在不同时刻以 2 组 2 字节的形式存在?如果是这样,我应该在显示它们之前对这 2 组进行平均吗?

示波器应用程序每隔固定时间间隔(在头文件中定义为 DEFAULT_INTERVAL)对传感器进行采样,一旦收集到 NREADINGS 个样本,它就会发送包含这些读数的数据包。然后,读数计数器重置为零。

因此,如果将 NREADINGS 更改为 2,将每两个样本发送一个数据包(并且将包含两个读数)。由于样本大小为 2 个字节 (uint16_t),因此每个数据包的读数数据为 4 个字节。您如何处理此类数据取决于您想要实现的目标。示波器附带一个 Java 应用程序,可以在图形上显示 BaseStation 应用程序接收到的数据(参见 README.txt)。

我觉得源码里都有解释:

/* Number of readings per message. If you increase this, you may have to
   increase the message_t size. */
NREADINGS = 10,

数据包定义:

typedef nx_struct oscilloscope {
  nx_uint16_t version; /* Version of the interval. */
  nx_uint16_t interval; /* Samping period. */
  nx_uint16_t id; /* Mote id of sending mote. */
  nx_uint16_t count; /* The readings are samples count * NREADINGS onwards */
  nx_uint16_t readings[NREADINGS];
} oscilloscope_t;