当我将示波器头文件中的header从1更改为2时,我最终从一个传感器获得4字节的数据。我怀疑这4个字节是否在不同时刻以2组2字节的形式存在?如果是这样的话,我应该在显示前平均这2组吗?
发布于 2015-02-12 19:20:14
示波器应用程序在每个固定的间隔(在头文件中定义为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;https://stackoverflow.com/questions/28466439
复制相似问题