Fixed close in CDCSerialDevice to enable reset on Arduino Leonardo/Micro

pull/25/head
Jim Condon 2016-02-10 14:29:57 -05:00
rodzic f70b68902c
commit 68eedd2988
1 zmienionych plików z 5 dodań i 3 usunięć

Wyświetl plik

@ -37,8 +37,8 @@ public class CDCSerialDevice extends UsbSerialDevice
(byte) 0x08 // bDataBits (8) (byte) 0x08 // bDataBits (8)
}; };
private static final int CDC_DEFAULT_CONTROL_LINE = 0x0003; private static final int CDC_CONTROL_LINE_ON = 0x0003;
private static final int CDC_DISCONNECT_CONTROL_LINE = 0x0002; private static final int CDC_CONTROL_LINE_OFF = 0x0000;
private UsbInterface mInterface; private UsbInterface mInterface;
private UsbEndpoint inEndpoint; private UsbEndpoint inEndpoint;
@ -92,7 +92,7 @@ public class CDCSerialDevice extends UsbSerialDevice
// Default Setup // Default Setup
setControlCommand(CDC_SET_LINE_CODING, 0, CDC_DEFAULT_LINE_CODING); setControlCommand(CDC_SET_LINE_CODING, 0, CDC_DEFAULT_LINE_CODING);
setControlCommand(CDC_SET_CONTROL_LINE_STATE, CDC_DEFAULT_CONTROL_LINE, null); setControlCommand(CDC_SET_CONTROL_LINE_STATE, CDC_CONTROL_LINE_ON, null);
// Initialize UsbRequest // Initialize UsbRequest
requestIN = new UsbRequest(); requestIN = new UsbRequest();
@ -111,9 +111,11 @@ public class CDCSerialDevice extends UsbSerialDevice
@Override @Override
public void close() public void close()
{ {
setControlCommand(CDC_SET_CONTROL_LINE_STATE, CDC_CONTROL_LINE_OFF, null);
killWorkingThread(); killWorkingThread();
killWriteThread(); killWriteThread();
connection.releaseInterface(mInterface); connection.releaseInterface(mInterface);
connection.close();
} }
@Override @Override