|
|
(One intermediate revision by one other user not shown) |
Line 1: |
Line 1: |
| == Issue Identification: ==
| | {{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/usb-serial-port/close-serial-after-disconnect}} |
| During the operation of an application that reads from a serial port, if an error message stating "Level 3 halted" appears in the log, it typically indicates that the serial port cable has been disconnected.
| |
| == Recommended Solution: ==
| |
| # '''Immediate Action upon Error Detection:'''
| |
| #* Upon encountering this error, the application should immediately close the serial port.
| |
| # '''Attempt to Reopen the Serial Port:'''
| |
| #* After closing, the application should try to reopen the serial port.
| |
| # '''Handling Persistent Connection Issues:'''
| |
| #* If the application fails to reopen the serial port, check and reconnect the serial port cable as necessary.
| |
| == Java SDK Implementation: ==
| |
| * '''Catching DeviceException during Serial Port Read:'''
| |
| ** In the Java SDK, you can handle this situation by catching the DeviceException when performing serial port read operations.
| |
| == Code Snippet Example: ==
| |
| <syntaxhighlight lang="java">
| |
| try {
| |
| byte[] readBytes = new byte[256];
| |
| SerialPortOperationResult serialPortOperationResult = serialPortDevice.waitForRead(readBytes.length, TimeConstants.FOREVER);
| |
| int resultCode = serialPortOperationResult.getResultCode();
| |
| if (resultCode == SerialPortOperationResult.SUCCESS) {
| |
| byte[] data = serialPortOperationResult.getData();
| |
| Logger.debug("read success:" + new String(data));
| |
| } else if (resultCode == SerialPortOperationResult.LEVEL_3_HALTED) {
| |
| Logger.debug("devices is gone, please close it first, then open it again.");
| |
| serialPortDevice.close();
| |
| }
| |
| } catch (DeviceException e) {
| |
| e.printStackTrace();
| |
| }
| |
| </syntaxhighlight >
| |
| This approach ensures the application can effectively manage unexpected disconnections and attempts to re-establish the serial port connection.
| |