我们正在试验一系列新的平板电脑,我们尝试的每一款都存在RN4678板传输速率慢的问题。我们目前使用联想M10 FHD Plus。我们尝试了一些,如Teclast M40S、诺基亚T20和三星Galaxy Tab A8。前两名球员的转会率很低,而后者虽然不错,但并不理想。我们不能使用联想M10 Plus第三代,因为按钮离角落太近,无法与平板电脑支架一起使用。
这是我的代码:
public void SendMessage(BluetoothSocket socket, String msg) {
OutputStream outStream;
try {
outStream = BluetoothConnectionService.outputStream;
outStream.write("S".getBytes());
Thread.sleep(4000);
processThread = true;
mApp.running = true;
BluetoothSocketListener bsl = new BluetoothSocketListener(socket,
CollectingDetail.this);
Thread messageListener = new Thread(bsl);
messageListener.start();
timer = new CounterClass(remaingTime, 1000);
timer.start();
bt_stop.setText("Stop");
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED);
filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
registerReceiver(bluetoothReceiver, filter);
bluetoothReceiver.setRegistered(true);
} catch (IOException | InterruptedException e) {
Log.e("BLUETOOTH_COMMS", e.getMessage());
connectSocket();
}
}
public static class BluetoothSocketListener implements Runnable {
private final WeakReference<CollectingDetail> wrActivity;
private BluetoothSocket socket;
public BluetoothSocketListener(BluetoothSocket socket, CollectingDetail collectingDetail) {
this.socket = socket;
wrActivity = new WeakReference<CollectingDetail>(collectingDetail);
}
@Override
public void run() {
final CollectingDetail activity = wrActivity.get();
if (activity != null) {
activity.inStream = null;
if (!Thread.currentThread().isInterrupted()) {
int bufferSize = 512;
byte[] buffer = new byte[bufferSize];
Log.i("Bluetooth bytes", new String(buffer));
activity.inStream = BluetoothConnectionService.inputStream;
int availableBytes;
int bytesRead = -1;
String message = "";
while (activity.processThread) {
message = "";
try {
availableBytes = activity.inStream.available();
if (availableBytes > 0) {
bytesRead = activity.inStream.read(buffer);
if (bytesRead != -1 && bytesRead < bufferSize) {
message = new String(buffer, 0, bytesRead);
if (activity.mainHandler != null) {
activity.mainHandler.post(new MessagePoster(message, activity));
}
}
}
} catch (IOException e) {
Log.e("BLUETOOTH_COMMS", "Error reading bytes");
try {
socket.close();
} catch (IOException e1) {
Log.e("BLUETOOTH_COMMS", "Could not close socket");
}
activity.processThread = false;
}
}
}
}
}
}
public void seprateData(String message) {
try {
message = message.replaceAll("(\r\n|\n|\r)", ",");
String[] a = message.split(",");
boolean goodData = false;
for (int i = 0; i < a.length; i++) {
final String data = a[i];
if (data.length() > 0 && !data.equals(" ")) {
if (data.length() >= 10 && data.startsWith("5A")) {
al_sepratedMessageList.add(data);
goodData = true;
}
}
}
if (goodData) {
calculation();
if (ConnectThrough.equalsIgnoreCase("usb")) {
UsbConnectionSerivce.sendMessage("K");
} else {
BluetoothConnectionService.sendMessage(socket, "K");
}
}
} catch (Exception e) {
Log.e("BiSym", "Error Parsing BiSym Data");
}
}
有没有什么方法可以在不更改固件的情况下提高传输速率?其他人似乎也面临过类似的问题,但没有一个答案有真正的解决方案。你能帮我一下吗。谢谢
我担心这可能是软件无法解决的问题,可能是BT硬件或固件的问题。我该如何与老板沟通
我担心这可能是软件无法解决的,可能是BT硬件或固件的问题。我该如何与老板沟通?
不同之处在于信号的滤波质量,更好的滤波器、更窄的带宽意味着更低的信噪比。更低的SNR意味着更快的传输。
更好的模拟滤波器意味着更多的组件和略高的成本和损耗,然而,由于蓝牙的宽带特性,大多数模拟滤波器只能过滤带外信号(附近的AM/FM/TV广播公司(。
除了模拟滤波器外,还将数字滤波器应用于信号,以缩小频带内的带宽,这项技术的损耗很小,但需要在芯片中包括更多的处理能力、更多的晶体管和更多的成本。
滤波器的阶数和FIR或IIR类型决定了滤波器的特性。
大多数设计师会将成本降至最低,以满足最低规格,有些设计师会平衡成本与性能,走得更远,你永远不会知道。
你告诉你的老板,更好的平台执行的数字过滤远远超出了蓝牙规范的要求。
我刚刚测试了Teclast M40 Plus,它没有这个问题。
有些东西想让我相信这是UNISOC蓝牙堆栈的问题。Teclast M40 Plus的联发科没有这个问题。
编辑:在联想M10 Plus第三代联发科Helio G80上也进行了测试,没有问题。如果我们必须使用它,我们可能需要一个新的平板电脑支架。