Merge pull request #170 from felHR85/cdc_rts_dtr

Allowing RTS and DTR turned on/off on CDC
pull/173/head
Felipe Herranz 2018-10-29 00:10:19 +01:00 zatwierdzone przez GitHub
commit d53c69c30f
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 17 dodań i 2 usunięć

Wyświetl plik

@ -19,6 +19,10 @@ public class CDCSerialDevice extends UsbSerialDevice
private static final int CDC_GET_LINE_CODING = 0x21; private static final int CDC_GET_LINE_CODING = 0x21;
private static final int CDC_SET_CONTROL_LINE_STATE = 0x22; private static final int CDC_SET_CONTROL_LINE_STATE = 0x22;
private static final int CDC_SET_CONTROL_LINE_STATE_RTS = 0x2;
private static final int CDC_SET_CONTROL_LINE_STATE_DTR = 0x1;
/*** /***
* Default Serial Configuration * Default Serial Configuration
* Baud rate: 115200 * Baud rate: 115200
@ -47,6 +51,8 @@ public class CDCSerialDevice extends UsbSerialDevice
private int initialBaudRate = 0; private int initialBaudRate = 0;
private int controlLineState = CDC_CONTROL_LINE_ON;
public CDCSerialDevice(UsbDevice device, UsbDeviceConnection connection) public CDCSerialDevice(UsbDevice device, UsbDeviceConnection connection)
{ {
this(device, connection, -1); this(device, connection, -1);
@ -235,13 +241,22 @@ public class CDCSerialDevice extends UsbSerialDevice
@Override @Override
public void setRTS(boolean state) public void setRTS(boolean state)
{ {
//TODO if (state)
controlLineState |= CDC_SET_CONTROL_LINE_STATE_RTS;
else
controlLineState &= ~CDC_SET_CONTROL_LINE_STATE_RTS;
setControlCommand(CDC_SET_CONTROL_LINE_STATE, controlLineState, null);
} }
@Override @Override
public void setDTR(boolean state) public void setDTR(boolean state)
{ {
//TODO if (state)
controlLineState |= CDC_SET_CONTROL_LINE_STATE_DTR;
else
controlLineState &= ~CDC_SET_CONTROL_LINE_STATE_DTR;
setControlCommand(CDC_SET_CONTROL_LINE_STATE, controlLineState, null);
} }
@Override @Override