我从我的数组(byte []数据)接收来自simulink udp块的udp数据。数据打包为int32,所以首先我需要解压。java:接收UDP数据包以及如何保存它们
我不知道如何保存这些数据才能使用它。这些数据是位置,我想用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不能重写整个事情?
注意 “产生的原因:java.lang.ArrayIndexOutOfBoundsException”。你需要解决这个问题。 – bmargulies
使用DataInputStream而不是所有的位。 – EJP