改变 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;
当我在示波器头文件中将 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;