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) 0x80, (byte) 0x00, (byte) 0x00,
|
||||||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||||
};
|
};
|
||||||
|
rtsCtsEnabled = false;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
setControlCommand(CP210x_SET_FLOW, 0, dataOff);
|
setControlCommand(CP210x_SET_FLOW, 0, dataOff);
|
||||||
break;
|
break;
|
||||||
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
||||||
|
@ -280,6 +282,7 @@ public class CP2102SerialDevice extends UsbSerialDevice
|
||||||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||||
};
|
};
|
||||||
rtsCtsEnabled = true;
|
rtsCtsEnabled = true;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
setControlCommand(CP210x_SET_FLOW, 0, dataRTSCTS);
|
setControlCommand(CP210x_SET_FLOW, 0, dataRTSCTS);
|
||||||
setControlCommand(CP210x_SET_MHS, CP210x_MHS_RTS_ON, null);
|
setControlCommand(CP210x_SET_MHS, CP210x_MHS_RTS_ON, null);
|
||||||
byte[] commStatusCTS = getCommStatus();
|
byte[] commStatusCTS = getCommStatus();
|
||||||
|
@ -294,6 +297,7 @@ public class CP2102SerialDevice extends UsbSerialDevice
|
||||||
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
(byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x00
|
||||||
};
|
};
|
||||||
dtrDsrEnabled = true;
|
dtrDsrEnabled = true;
|
||||||
|
rtsCtsEnabled = false;
|
||||||
setControlCommand(CP210x_SET_FLOW, 0, dataDSRDTR);
|
setControlCommand(CP210x_SET_FLOW, 0, dataDSRDTR);
|
||||||
setControlCommand(CP210x_SET_MHS, CP210x_MHS_DTR_ON, null);
|
setControlCommand(CP210x_SET_MHS, CP210x_MHS_DTR_ON, null);
|
||||||
byte[] commStatusDSR = getCommStatus();
|
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)
|
if(setControlCommand(FTDI_SIO_SET_BAUD_RATE, FTDI_BAUDRATE_9600, 0, null) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Flow control disabled by default
|
||||||
|
rtsCtsEnabled = false;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
|
|
||||||
// Initialize UsbRequest
|
// Initialize UsbRequest
|
||||||
requestIN = new UsbRequest();
|
requestIN = new UsbRequest();
|
||||||
requestIN.initialize(connection, inEndpoint);
|
requestIN.initialize(connection, inEndpoint);
|
||||||
|
@ -332,14 +336,18 @@ public class FTDISerialDevice extends UsbSerialDevice
|
||||||
{
|
{
|
||||||
case UsbSerialInterface.FLOW_CONTROL_OFF:
|
case UsbSerialInterface.FLOW_CONTROL_OFF:
|
||||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, 0, null);
|
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, 0, null);
|
||||||
|
rtsCtsEnabled = false;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
break;
|
break;
|
||||||
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
||||||
rtsCtsEnabled = true;
|
rtsCtsEnabled = true;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
int indexRTSCTS = 0x0001;
|
int indexRTSCTS = 0x0001;
|
||||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexRTSCTS, null);
|
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexRTSCTS, null);
|
||||||
break;
|
break;
|
||||||
case UsbSerialInterface.FLOW_CONTROL_DSR_DTR:
|
case UsbSerialInterface.FLOW_CONTROL_DSR_DTR:
|
||||||
dtrDsrEnabled = true;
|
dtrDsrEnabled = true;
|
||||||
|
rtsCtsEnabled = false;
|
||||||
int indexDSRDTR = 0x0002;
|
int indexDSRDTR = 0x0002;
|
||||||
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexDSRDTR , null);
|
setControlCommand(FTDI_SIO_SET_FLOW_CTRL, FTDI_SET_FLOW_CTRL_DEFAULT, indexDSRDTR , null);
|
||||||
break;
|
break;
|
||||||
|
@ -460,15 +468,17 @@ public class FTDISerialDevice extends UsbSerialDevice
|
||||||
boolean cts = (data[0] & 0x10) == 0x10;
|
boolean cts = (data[0] & 0x10) == 0x10;
|
||||||
boolean dsr = (data[0] & 0x20) == 0x20;
|
boolean dsr = (data[0] & 0x20) == 0x20;
|
||||||
|
|
||||||
if(cts != ctsState) //CTS
|
if(rtsCtsEnabled &&
|
||||||
|
cts != ctsState && ctsCallback != null) //CTS
|
||||||
{
|
{
|
||||||
ctsState = !ctsState;
|
ctsState = !ctsState;
|
||||||
ctsCallback.onCTSChanged(ctsState);
|
ctsCallback.onCTSChanged(ctsState);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dsr != dsrState) //DSR
|
if(dtrDsrEnabled &&
|
||||||
|
dsr != dsrState && dsrCallback != null) //DSR
|
||||||
{
|
{
|
||||||
dsrState = ! dsrState;
|
dsrState = !dsrState;
|
||||||
dsrCallback.onDSRChanged(dsrState);
|
dsrCallback.onDSRChanged(dsrState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue