我即将在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 );
任何帮助都将不胜感激。
答案 0 :(得分:1)
如果对象,页面和数据包有三个定义的大小,则使用所述大小的三个数组并按顺序复制元素。
由于你有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 * 110
开始,而j
从0
移至109
。