我正在尝试在Windows 10上实现Java应用程序,以便能够使用低功耗蓝牙将数据发送到Feather 32u4 Bluefruit。
我购买了BLED112加密狗以能够使用bglib和bgapi
我通过使用串口成功地将Java代码连接到加密狗,但是我不知道如何连接到设备...
谢谢您的帮助,
PS:这是我的实际代码:
static BGAPITransport bgapi;
static BLEDevice bledevice = null;
public static void main(String[] args) {
System.out.println("Program started");
bgapi=connectBLED112();
bledevice=bgapi.
System.out.println("Finished successfully");
}
public static BGAPITransport connectBLED112() {
SerialPort port = connectSerial();
try {
return new BGAPITransport(port.getInputStream(), port.getOutputStream());
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
return null;
}
public static String selectSerialPort() {
CommPortIdentifier serialPortId = null;
Enumeration enumComm;
enumComm = CommPortIdentifier.getPortIdentifiers();
while (enumComm.hasMoreElements()) {
serialPortId = (CommPortIdentifier) enumComm.nextElement();
if(serialPortId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
System.out.println(serialPortId.getName());
}
}
return serialPortId.getName();
}
public static SerialPort connectSerial() {
try {
String portName = selectSerialPort();
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {
System.err.println("Error: Port " + portName + " is currently in use");
}
else {
CommPort commPort = portIdentifier.open("BLED112", 2000);
System.out.println("port = " + commPort);
if (commPort instanceof SerialPort) {
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | SerialPort.FLOWCONTROL_RTSCTS_OUT);
serialPort.setRTS(true);
System.out.println("serial port = " + serialPort);
return serialPort;
} else {
System.err.println("Error: Port " + portName + " is not a valid serial port.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
最佳答案
这可能已经晚了,但是这里有:
首先,查找BLED112 Api。它是在线的,相当容易找到。那就是您要保留的内容,并提供很多参考。
它也在这里:https://www.silabs.com/documents/login/reference-manuals/Bluetooth_Smart_Software-BLE-1.6-API-RM.pdf
其次,开始收听BLED112上的广告。在Api文档中可以找到一个命令。 api参考文档中也列出了连接命令。
关于java - 将数据从BLED112发送到BLE设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51332939/