0

我从 simulink udp block 收到数组中的 udp 数据(byte[] 数据)。数据被打包为 int32 ,所以首先我需要解压它。

我不知道如何保存这些数据才能使用它。这些数据是位置,我想使用 OpenGL ES 将它们可视化。我想将数据保存到一个数组中,并能够在下一次迭代中将下一个数据包添加到该数组中,而不是重写整个数组(因为循环)

目前数据大小为1200 * 96。数组是一个不错的选择吗?

       int j = 0 ;
  float[] bin1 = new float[(data.length/2)];
  while (j < data.length ) {
    if ( data[2*j+2] >= 0  ) {

      String unhx =(binary(data[2*j+3])+binary(data[2*j+2])+binary(data[2*j+1])+binary(data[2*j]));
      float unbin = ((float)unbinary(unhx)/100);
      bin1[j/2] = unbin;
      print(bin1[1]);
    }

    else if  ( data[2*j+2] < 0 && data[2*j+3] < 0 ) {
      data[2*j] = (byte)(-data[2*j]);
      data[2*j+1] = (byte)(-data[2*j+1]);
      String unhx =(binary(data[2*j+1])+binary(data[2*j]));
      float unbin = ((-1)*(float)unbinary(unhx)/100);
      bin1[j/2] = unbin;
      print(bin1[1]);
      }
      j = j + 2;
  }

现在的问题是,每次新数据包到来时它都会重写整个 bin1 数组,我怎么能将新数据包添加到 bin1 而不是重写整个事情?

4

3 回答 3

0

再一次 Melisa,你必须在进入 while 循环之前声明你的数组。这样一旦您离开循环,它们就会保持在范围内。这意味着,离开循环后,您仍然可以访问该数组。:) 希望这可以帮助。

于 2012-06-14T13:50:31.550 回答
0

回复您编辑的问题:

Melisa,您可能需要考虑使用浮点数列表而不是浮点数数组。否则,您可能会发现自己调整大小并复制数组以添加更多数据。列表/链接列表理论上具有无限长度(您实际上不必担心长度),您可以继续添加浮点数。

列表

于 2012-06-14T14:09:17.680 回答
0

我在这里看到的一个问题是在while循环中您使用计数器作为变量int j=0,但没有在哪里增加j可能是问题的计数器变量。

j = 0 ;
while (j < data.length){
float[] array = new float[] {myData};
j++;
}
于 2012-06-14T13:02:38.703 回答