kopia lustrzana https://github.com/felHR85/UsbSerial
CTS and DSR implementations added to CH340
rodzic
14e5190f87
commit
ff4c839585
|
@ -123,6 +123,9 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
restartWorkingThread();
|
restartWorkingThread();
|
||||||
restartWriteThread();
|
restartWriteThread();
|
||||||
|
|
||||||
|
// Create Flow control thread but it will only be started if necessary
|
||||||
|
createFlowControlThread();
|
||||||
|
|
||||||
// Pass references to the threads
|
// Pass references to the threads
|
||||||
setThreadsParams(requestIN, outEndpoint);
|
setThreadsParams(requestIN, outEndpoint);
|
||||||
|
|
||||||
|
@ -140,6 +143,7 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
{
|
{
|
||||||
killWorkingThread();
|
killWorkingThread();
|
||||||
killWriteThread();
|
killWriteThread();
|
||||||
|
stopFlowControlThread();
|
||||||
connection.releaseInterface(mInterface);
|
connection.releaseInterface(mInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,6 +153,8 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
boolean ret = openCH34X();
|
boolean ret = openCH34X();
|
||||||
if(ret)
|
if(ret)
|
||||||
{
|
{
|
||||||
|
// Create Flow control thread but it will only be started if necessary
|
||||||
|
createFlowControlThread();
|
||||||
setSyncParams(inEndpoint, outEndpoint);
|
setSyncParams(inEndpoint, outEndpoint);
|
||||||
asyncMode = false;
|
asyncMode = false;
|
||||||
return true;
|
return true;
|
||||||
|
@ -161,6 +167,7 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
@Override
|
@Override
|
||||||
public void syncClose()
|
public void syncClose()
|
||||||
{
|
{
|
||||||
|
stopFlowControlThread();
|
||||||
connection.releaseInterface(mInterface);
|
connection.releaseInterface(mInterface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,13 +288,23 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
switch(flowControl)
|
switch(flowControl)
|
||||||
{
|
{
|
||||||
case UsbSerialInterface.FLOW_CONTROL_OFF:
|
case UsbSerialInterface.FLOW_CONTROL_OFF:
|
||||||
|
rtsCtsEnabled = false;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
setCh340xFlow(CH34X_FLOW_CONTROL_NONE);
|
setCh340xFlow(CH34X_FLOW_CONTROL_NONE);
|
||||||
break;
|
break;
|
||||||
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
case UsbSerialInterface.FLOW_CONTROL_RTS_CTS:
|
||||||
|
rtsCtsEnabled = true;
|
||||||
|
dtrDsrEnabled = false;
|
||||||
setCh340xFlow(CH34X_FLOW_CONTROL_RTS_CTS);
|
setCh340xFlow(CH34X_FLOW_CONTROL_RTS_CTS);
|
||||||
|
ctsState = checkCTS();
|
||||||
|
startFlowControlThread();
|
||||||
break;
|
break;
|
||||||
case UsbSerialInterface.FLOW_CONTROL_DSR_DTR:
|
case UsbSerialInterface.FLOW_CONTROL_DSR_DTR:
|
||||||
|
rtsCtsEnabled = false;
|
||||||
|
dtrDsrEnabled = true;
|
||||||
setCh340xFlow(CH34X_FLOW_CONTROL_DSR_DTR);
|
setCh340xFlow(CH34X_FLOW_CONTROL_DSR_DTR);
|
||||||
|
dsrState = checkDSR();
|
||||||
|
startFlowControlThread();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -311,13 +328,13 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
@Override
|
@Override
|
||||||
public void getCTS(UsbCTSCallback ctsCallback)
|
public void getCTS(UsbCTSCallback ctsCallback)
|
||||||
{
|
{
|
||||||
//TODO
|
this.ctsCallback = ctsCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void getDSR(UsbDSRCallback dsrCallback)
|
public void getDSR(UsbDSRCallback dsrCallback)
|
||||||
{
|
{
|
||||||
//TODO
|
this.dsrCallback = dsrCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -516,7 +533,7 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((buffer[1] & 0x01) == 0x00) //DSR ON
|
if((buffer[0] & 0x02) == 0x00) //DSR ON
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}else // DSR OFF
|
}else // DSR OFF
|
||||||
|
@ -559,6 +576,11 @@ public class CH34xSerialDevice extends UsbSerialDevice
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createFlowControlThread()
|
||||||
|
{
|
||||||
|
flowControlThread = new FlowControlThread();
|
||||||
|
}
|
||||||
|
|
||||||
private void startFlowControlThread()
|
private void startFlowControlThread()
|
||||||
{
|
{
|
||||||
flowControlThread.start();
|
flowControlThread.start();
|
||||||
|
|
Ładowanie…
Reference in New Issue