- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到一个奇怪的问题。我已经编写了一个应用程序,该应用程序将与arduino建立蓝牙SPP链接。 Arduino上的蓝牙设备配置为9600波特。我可以从arduino接收数据,但是似乎我收到了一些值为0或高峰值的故障。这很烦人,因为我确实需要图形部分的精确值,并且我知道arduino发送好的数据是因为我将其发送的内容记录在文件中。
我正在寻找解决或理解为什么会发生这种情况的方法,而不是创建平均值或类似的方法来制作“补丁”。
谢谢你的帮助。
这是一张可以解释我的问题的图片,arduino数据范围在101到103左右:
这是我创建连接并接收数据的代码:
private class ConnectedThread extends Thread {
private final DataInputStream mmInStream;
private final DataOutputStream mmOutStream;
public ConnectedThread(BluetoothSocket socket) {
InputStream tmpIn = null;
OutputStream tmpOut = null;
// Get the input and output streams, using temp objects because
// member streams are final
try {
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
} catch (IOException e) { }
mmInStream = new DataInputStream(tmpIn);
mmOutStream = new DataOutputStream(tmpOut);
}
public void run() {
byte[] buffer = new byte[1024]; // buffer store for the stream
int bytes; // bytes returned from read()
// Keep listening to the InputStream until an exception occurs
while (true) {
try {
// Read from the InputStream
bytes = mmInStream.read(buffer); // Get number of bytes and message in "buffer"
hBluetooth.obtainMessage(RECEIVE_MESSAGE, bytes, -1, buffer).sendToTarget(); // Send to message queue Handler
} catch (IOException e) {
break;
}
}
}
private void connectDevice() {
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
try {
btSocket = createBluetoothSocket(device);
} catch (IOException e) {
errorExit("Fatal Error", "In onResume() and socket create failed: " + e.getMessage() + ".");
}
mBluetoothAdapter.cancelDiscovery();
// Establish the connection. This will block until it connects.
Log.d(TAG, "...Connecting...");
try {
btSocket.connect();
Log.d(TAG, "....Connection ok...");
// Create a data stream so we can talk to server.
Log.d(TAG, "...Create Socket...");
mConnectedThread = new ConnectedThread(btSocket);
mConnectedThread.start();
mActionBar.setSubtitle("Connecté");
//If fail, we disconnect or display an error warning regarding the situation
} catch (IOException e) {
try {
btSocket.close();
mActionBar.setSubtitle("Deconnecté");
} catch (IOException e2) {
errorExit("Fatal Error", "In onResume() and unable to close socket during connection failure" + e2.getMessage() + ".");
}
}
return;
}
hBluetooth = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case RECEIVE_MESSAGE: // If we receive a message
byte[] readBuf = (byte[]) msg.obj;
String stringIncome = new String(readBuf, 0, msg.arg1); // Create string from byte array
stringBuilder.append(stringIncome);
int endOfLineIndex = stringBuilder.indexOf("\r\n"); // Determine the end-of-line
if (endOfLineIndex > 0) { // If we are at the end-of-line we parsed all the data that was sent
rmsgBluetooth = stringBuilder.substring(0, endOfLineIndex); // The string is extracted in a string object rmsgBluetooth
stringBuilder.delete(0, stringBuilder.length());
if(btSocket != null && btSocket.isConnected()){
//Here we send the value of the string to a txtbox
txtArduino.setText("Arduino: " + rmsgBluetooth);
if(rmsgBluetooth.matches("-?\\d+(\\.\\d+)?")) {
try{
sensorReading = Float.parseFloat(rmsgBluetooth);
}catch(NumberFormatException e){
}
}
最佳答案
我认为您的错误很可能是在解析字符串时出现的。尝试仔细调试线路
if(rmsgBluetooth.matches("-?\\d+(\\.\\d+)?")) {
try{
sensorReading = Float.parseFloat(rmsgBluetooth);
}catch(NumberFormatException e){
}
}
关于android - 蓝牙SPP(串行)故障(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15538575/
我已经使用基于 RFCOMM 和串行端口配置文件 (SPP) 的 MS 蓝牙套接字在我的 PC 和蓝牙设备之间建立了连接。 连续接收数据没有问题。但是,如果要发送一个字节(作为命令),设备不会接收到它
我们正在开发一款通过蓝牙使用 SPP(串行端口配置文件)的应用程序,开发人员正在讨论使用某种类型的协议(protocol)和数据包传输,还是仅在没有任何形式的 ACK、序列或大小信息的情况下流式传输数
我目前正在尝试构建一个库,以便在通用应用程序上使用串行端口配置文件 (SPP)。 据我所知,SPP 在 RFCOMM 之上运行。 RFCOMM 的基础知识在 MSDN 中进行了概述,这很好。我还能够“
如何通过蓝牙串行端口配置文件将数据从一台Mac发送到另一台Mac 情境 我正在寻找一种通过蓝牙将串行数据从一台Mac发送到另一台Mac的方法。串行通信已集成到许多创意编码平台(MaxMSP,Proce
我是 Android 开发的新手,除了无线连接两个设备外,我对蓝牙的真正工作原理一无所知。我一直在使用 BluetoothChat 示例,以及我购买的 Android 书籍中的示例。它们看起来非常相似
我有一个 SPP 蓝牙应用程序,问题出在这种情况下。android 设备已连接到蓝牙扬声器,当我尝试连接到我的 SPP Micro 设备时,出于同样的原因,蓝牙已连接。 我如何断开蓝牙扬声器与我的应用
不好意思 friend 打扰了。我是全职妈妈,是 Android 开发的新手,我把我们当作兼职工作。我有 Java 开发经验。 我试着查看那个蓝牙聊天示例,并在这里搜索了很多关于从哪里开始的信息。当我
我想开发一个 ios 应用程序,通过蓝牙 SPP 与另一个支持蓝牙的设备进行通信。 iOS 是否支持 SPP? 我检查了 iOS 支持的配置文件,但看不到有关 SPP 的任何信息.. http://s
我正在尝试使用 SPP 通过蓝牙(在 Java 中,使用 BlueCove API)在两台 PC 之间传输文件(MP3 大小约为 6 兆字节)。我可以使文件传输在一个方向上正常工作(例如,一个文件从客
我有一个带有板载蓝牙功能的嵌入式板。我的开发板运行 Linux,BlueZ 堆栈提供蓝牙支持。我可以访问所有 bluez 实用程序,例如 hciconfig、sdptool、rfcomm 等。 我需要
我有一个定制的蓝牙设备,我可以使用 Windows 10 与之配对和连接,它创建了 2 个 com 端口 - 一个列为传入端口,一个列为传出端口。 当我使用 32Feet C# 蓝牙库连接时,我能够发
我需要使用蓝牙 SPP 以 1.15k 的速率从远程蓝牙设备收集蓝牙数据。我按如下方式连接到远程设备。 try { tmp = device.createRfcommSocketToService
我有一些连接到 Android 手机的蓝牙设备,但我无法检测到断开连接。除非需要,否则蓝牙设备不会发送数据包,因此不能选择在数据包接收时使用看门狗来检测断开连接。我读过您可以使用 ACLDisconn
我们即将发布我们软件的新版本,对于之后的版本,我们的目标是使我们的蓝牙 SPP 连接的连接过程更加可靠。我们在我们的产品中使用 RN42 模块,目前,有时可能需要多次尝试才能连接到我们的电路板。 这是
我是 Android 编程的新手,现在遇到了一个问题。我想将我的 android 手机用作蓝牙服务器,这意味着当我打开一个特殊的 Activity 时,手机应该监听其他蓝牙设备(已经配对)并且其他设备
有人有 iOS 的 SPP 通信(蓝牙串口)示例代码吗?我需要在我的微芯片图片和 iphone 或 iPod 之间进行通信。 我知道我需要一个经过批准的苹果蓝牙 rs232BT 加密狗,我也有一些带有
我在尝试在我的项目中使用蓝牙时遇到问题。在以前的版本中,我使用 HC-05 蓝牙模块,它在连接任何设备后立即为我提供一个简单的串行连接。现在项目发展了,我们选择使用 SIM800H,因为它为我们提供了
我有一个相当简单的程序,主要基于此处发布的简单蓝牙测试客户端应用程序: http://www.anddev.org/code-snippets-for-android-f33/serial-over-
所以我在eclipse (API8) 上编译并成功运行了Android Bluetooth Chat 项目。 问题是,当我连接到我自己的嵌入式蓝牙设备 (http://www.sparkfun.com
我有一个使用蓝牙 SPP (RFCOMM) 与硬件通信的应用程序。该应用程序和蓝牙连接效果很好。问题是当另一个应用程序启动时也使用 SPP,然后其中一个应用程序停止。一旦任何一个应用程序停止,无论是通
我是一名优秀的程序员,十分优秀!