1

我即将在 telosb motes 中实现一些算法。我需要做的是,获取一个文件并将其拆分为更小的对象,然后将对象拆分为更小的称为页面的对象,如下图所示。

之后,页面将被无线传输到其他节点。一次一个称为数据包。

我有一个 2000 字节的数组,我想如图所示溢出,页面的要求是每个数据包应小于 110 字节或更少。

nx_uint16_t file[1000];

    int j, A;
for ( j = 0;j<1000;j++)
            {

                int ra = (rand() +1) % 10;                  

            }
A = sizeof(file);
 printf("\n Array size: %d Bytes", A );

任何帮助,将不胜感激。

4

1 回答 1

1

如果您为 Object、Page 和 Packet 定义了三个大小,则使用所述大小的三个数组并连续复制元素。

由于您有 2000 个字节,将其分成 110 个字节的块意味着会有 ceil(2000/110) 数据包。但是,您的数据包可能包含标头或校验和或两者(前缀和后缀数据)。

byte array[2000];
byte packet[110];
unsigned packet_count = 0; 
for(int i = packet_count * 110, j = 0; j < 110; ++j, ++i)
    packet[j] = array[i] ;
++packet_count ;
forward(packet);

请注意,i从 开始,packet_count * 110j从 移动0109

于 2015-05-31T12:08:23.500 回答