Java 是什么原因导致蓝牙通信异常滞后?
我正在尝试开发一个android应用程序,它可以与一个系统通信,该系统通过HC-05模块(波特率设置为57600)发送传感器数据,并在一个折线图中显示数据。作为测试,我没有将数据传递给图表,而是使用System.out.println()命令打印数据。问题是数据打印不顺畅,而是一次显示多行的块。所有数据都存在,但通信(或至少数据显示)滞后 该系统以100Hz的频率发送数据(2字节信息),运行该应用程序的平板电脑似乎并不困难,因为cpu/内存使用率较低 这是我用来处理通信/绘图的线程Java 是什么原因导致蓝牙通信异常滞后?,java,android,bluetooth,android-bluetooth,Java,Android,Bluetooth,Android Bluetooth,我正在尝试开发一个android应用程序,它可以与一个系统通信,该系统通过HC-05模块(波特率设置为57600)发送传感器数据,并在一个折线图中显示数据。作为测试,我没有将数据传递给图表,而是使用System.out.println()命令打印数据。问题是数据打印不顺畅,而是一次显示多行的块。所有数据都存在,但通信(或至少数据显示)滞后 该系统以100Hz的频率发送数据(2字节信息),运行该应用程序的平板电脑似乎并不困难,因为cpu/内存使用率较低 这是我用来处理通信/绘图的线程 privat
private class ReadInput implements Runnable {
private boolean bStop = false;
private Thread t;
public ReadInput() {
t = new Thread(this, "Input Thread");
t.start();
}
public boolean isRunning() {
return t.isAlive();
}
@Override
public void run() {
InputStream inputStream;
try {
inputStream = bTSocket.getInputStream();
int plot = 0;
iteration = 0;
while (!bStop) {
byte[] buffer = new byte[2];
int last = 0;
while (last < 2) {
last += inputStream.read(buffer, last, 2 - last);
}
final int sensor = byteArrayToInt(buffer);
System.out.println(sensor);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop() {
bStop = true;
}
}
私有类ReadInput实现可运行{
私有布尔值bStop=false;
私有线程t;
公共ReadInput(){
t=新线程(该“输入线程”);
t、 start();
}
公共布尔值正在运行(){
返回t.isAlive();
}
@凌驾
公开募捐{
输入流输入流;
试一试{
inputStream=bTSocket.getInputStream();
int plot=0;
迭代=0;
而(!bStop){
字节[]缓冲区=新字节[2];
int last=0;
while(最后一个<2){
last+=inputStream.read(缓冲区,last,2-last);
}
最终int传感器=byteArrayToInt(缓冲器);
系统输出打印LN(传感器);
}
}捕获(IOE异常){
e、 printStackTrace();
}
}
公共停车场(){
bStop=true;
}
}
已经尝试了生产者/消费者模式来分离通信和绘图,但没有成功