#
Junjie
17 小时以前 c8de85433e5800a7b5595a96d99f4b49f24c38b4
src/main/java/com/zy/core/network/ZyRgvConnectDriver.java
@@ -15,6 +15,8 @@
    private boolean connected = false;
    private DeviceConfig deviceConfig;
    private ZyRgvConnectApi zyRgvConnectApi;
    private volatile boolean closed = false;
    private Thread selfThread;
    public ZyRgvConnectDriver(DeviceConfig deviceConfig) {
        this.deviceConfig = deviceConfig;
@@ -23,12 +25,16 @@
    @Override
    @SuppressWarnings("InfiniteLoopStatement")
    public void run() {
        while (!Thread.currentThread().isInterrupted()) {
        selfThread = Thread.currentThread();
        while (!closed && !Thread.currentThread().isInterrupted()) {
            try {
                if (!connected) {
                    connect();
                }
                Thread.sleep(1000);
            } catch (InterruptedException ie) {
                Thread.currentThread().interrupt();
                break;
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -49,9 +55,21 @@
    @Override
    public void close() {
        zyRgvConnectApi.disconnect();
        zyRgvConnectApi = null;
        closed = true;
        Thread t = selfThread;
        if (t != null) {
            try { t.interrupt(); } catch (Exception ignore) {}
        }
        if (zyRgvConnectApi != null) {
            zyRgvConnectApi.disconnect();
            zyRgvConnectApi = null;
        }
        connected = false;
    }
    public void start() {
        Thread t = new Thread(this);
        t.start();
    }
    public ZyRgvStatusEntity getStatus() {
@@ -64,4 +82,4 @@
    public CommandResponse sendCommand(RgvCommand command) {
        return zyRgvConnectApi.sendCommand(command);
    }
}
}