kopia lustrzana https://github.com/felHR85/UsbSerial
CTS and DSR signals will be read the first time a modem info packet is received
rodzic
c826e45bdf
commit
2c0ea553b1
|
@ -74,7 +74,8 @@ public class UsbService extends Service {
|
|||
private UsbSerialInterface.UsbCTSCallback ctsCallback = new UsbSerialInterface.UsbCTSCallback() {
|
||||
@Override
|
||||
public void onCTSChanged(boolean state) {
|
||||
mHandler.obtainMessage(CTS_CHANGE).sendToTarget();
|
||||
if(mHandler != null)
|
||||
mHandler.obtainMessage(CTS_CHANGE).sendToTarget();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -84,7 +85,8 @@ public class UsbService extends Service {
|
|||
private UsbSerialInterface.UsbDSRCallback dsrCallback = new UsbSerialInterface.UsbDSRCallback() {
|
||||
@Override
|
||||
public void onDSRChanged(boolean state) {
|
||||
mHandler.obtainMessage(DSR_CHANGE).sendToTarget();
|
||||
if(mHandler != null)
|
||||
mHandler.obtainMessage(DSR_CHANGE).sendToTarget();
|
||||
}
|
||||
};
|
||||
/*
|
||||
|
@ -238,10 +240,10 @@ public class UsbService extends Service {
|
|||
serialPort.setStopBits(UsbSerialInterface.STOP_BITS_1);
|
||||
serialPort.setParity(UsbSerialInterface.PARITY_NONE);
|
||||
/**
|
||||
* Flow control Options:
|
||||
* Current flow control Options:
|
||||
* UsbSerialInterface.FLOW_CONTROL_OFF
|
||||
* UsbSerialInterface.FLOW_CONTROL_RTS_CTS for CP2102 and FT232
|
||||
* UsbSerialInterface.FLOW_CONTROL_DSR_DTR for CP2102 and FT232
|
||||
* UsbSerialInterface.FLOW_CONTROL_RTS_CTS only for CP2102 and FT232
|
||||
* UsbSerialInterface.FLOW_CONTROL_DSR_DTR only for CP2102 and FT232
|
||||
*/
|
||||
serialPort.setFlowControl(UsbSerialInterface.FLOW_CONTROL_OFF);
|
||||
serialPort.read(mCallback);
|
||||
|
|
|
@ -72,6 +72,7 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
|
||||
private boolean ctsState;
|
||||
private boolean dsrState;
|
||||
private boolean firstTime; // with this flag we set the CTS and DSR state to the first value received from the FTDI device
|
||||
|
||||
private UsbCTSCallback ctsCallback;
|
||||
private UsbDSRCallback dsrCallback;
|
||||
|
@ -97,6 +98,7 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
dtrDsrEnabled = false;
|
||||
ctsState = true;
|
||||
dsrState = true;
|
||||
firstTime = true;
|
||||
mInterface = device.getInterface(iface >= 0 ? iface : 0);
|
||||
}
|
||||
|
||||
|
@ -128,6 +130,7 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
}
|
||||
|
||||
// Default Setup
|
||||
firstTime = true;
|
||||
if(setControlCommand(FTDI_SIO_RESET, 0x00, 0, null) < 0)
|
||||
return false;
|
||||
if(setControlCommand(FTDI_SIO_SET_DATA, FTDI_SET_DATA_DEFAULT, 0, null) < 0)
|
||||
|
@ -468,6 +471,14 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
boolean cts = (data[0] & 0x10) == 0x10;
|
||||
boolean dsr = (data[0] & 0x20) == 0x20;
|
||||
|
||||
if(firstTime) // First modem status received, set the flags and exit
|
||||
{
|
||||
ctsState = cts;
|
||||
dsrState = dsr;
|
||||
firstTime = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if(rtsCtsEnabled &&
|
||||
cts != ctsState && ctsCallback != null) //CTS
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue