kopia lustrzana https://github.com/felHR85/UsbSerial
rtsCts and dtrDsr flags put into some places where they are needed
rodzic
b47e5311a6
commit
bdf60c2bc5
|
@ -270,6 +270,8 @@ public class CP2102SerialDevice extends UsbSerialDevice
|
|||
(byte) 0x00, (byte) 0x80, (byte) 0x00, (byte) 0x00,
|
||||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||
};
|
||||
rtsCtsEnabled = false;
|
||||
dtrDsrEnabled = false;
|
||||
setControlCommand(CP210x_SET_FLOW, 0, dataOff);
|
||||
break;
|
||||
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
||||
|
@ -280,6 +282,7 @@ public class CP2102SerialDevice extends UsbSerialDevice
|
|||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||
};
|
||||
rtsCtsEnabled = true;
|
||||
dtrDsrEnabled = false;
|
||||
setControlCommand(CP210x_SET_FLOW, 0, dataRTSCTS);
|
||||
setControlCommand(CP210x_SET_MHS, CP210x_MHS_RTS_ON, null);
|
||||
byte[] commStatusCTS = getCommStatus();
|
||||
|
@ -294,6 +297,7 @@ public class CP2102SerialDevice extends UsbSerialDevice
|
|||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||
};
|
||||
dtrDsrEnabled = true;
|
||||
rtsCtsEnabled = false;
|
||||
setControlCommand(CP210x_SET_FLOW, 0, dataDSRDTR);
|
||||
setControlCommand(CP210x_SET_MHS, CP210x_MHS_DTR_ON, null);
|
||||
byte[] commStatusDSR = getCommStatus();
|
||||
|
|
|
@ -142,6 +142,10 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
if(setControlCommand(FTDI_SIO_SET_BAUD_RATE, FTDI_BAUDRATE_9600, 0, null) < 0)
|
||||
return false;
|
||||
|
||||
// Flow control disabled by default
|
||||
rtsCtsEnabled = false;
|
||||
dtrDsrEnabled = false;
|
||||
|
||||
// Initialize UsbRequest
|
||||
requestIN = new UsbRequest();
|
||||
requestIN.initialize(connection, inEndpoint);
|
||||
|
@ -332,14 +336,18 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
{
|
||||
case UsbSerialInterface.FLOW_CONTROL_OFF:
|
||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, 0, null);
|
||||
rtsCtsEnabled = false;
|
||||
dtrDsrEnabled = false;
|
||||
break;
|
||||
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
||||
rtsCtsEnabled = true;
|
||||
dtrDsrEnabled = false;
|
||||
int indexRTSCTS = 0x0001;
|
||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexRTSCTS, null);
|
||||
break;
|
||||
case UsbSerialInterface.FLOW_CONTROL_DSR_DTR:
|
||||
dtrDsrEnabled = true;
|
||||
rtsCtsEnabled = false;
|
||||
int indexDSRDTR = 0x0002;
|
||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexDSRDTR , null);
|
||||
break;
|
||||
|
@ -460,15 +468,17 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
boolean cts = (data[0] & 0x10) == 0x10;
|
||||
boolean dsr = (data[0] & 0x20) == 0x20;
|
||||
|
||||
if(cts != ctsState) //CTS
|
||||
if(rtsCtsEnabled &&
|
||||
cts != ctsState && ctsCallback != null) //CTS
|
||||
{
|
||||
ctsState = !ctsState;
|
||||
ctsCallback.onCTSChanged(ctsState);
|
||||
}
|
||||
|
||||
if(dsr != dsrState) //DSR
|
||||
if(dtrDsrEnabled &&
|
||||
dsr != dsrState && dsrCallback != null) //DSR
|
||||
{
|
||||
dsrState = ! dsrState;
|
||||
dsrState = !dsrState;
|
||||
dsrCallback.onDSRChanged(dsrState);
|
||||
}
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue