Skip to content

Commit 775788e

Browse files
committed
Update Cp21xxSerialDriver.cs
Set/Get DTR and RTS.
1 parent 51351b4 commit 775788e

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

UsbSerialForAndroid/driver/Cp21xxSerialDriver.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ private int GetStatus()
313313
{
314314
byte[] data = new byte[1];
315315
int result = mConnection.ControlTransfer((UsbAddressing)REQTYPE_DEVICE_TO_HOST, GET_MODEM_STATUS_REQUEST,
316-
0, mPortNumber, data, data.Length, USB_WRITE_TIMEOUT_MILLIS);
316+
0, 0, data, data.Length, USB_WRITE_TIMEOUT_MILLIS);
317317
if (result != 1)
318318
{
319319
throw new IOException("Get modem status failed: result=" + result);
@@ -338,11 +338,12 @@ public override bool GetDSR()
338338

339339
public override bool GetDTR()
340340
{
341-
return true;
341+
return (GetStatus() & MCR_DTR) != 0;
342342
}
343343

344344
public override void SetDTR(bool value)
345345
{
346+
SetConfigSingle(SILABSER_SET_MHS_REQUEST_CODE, (value ? MCR_DTR : 0) | CONTROL_WRITE_DTR);
346347
}
347348

348349
public override bool GetRI()
@@ -352,11 +353,12 @@ public override bool GetRI()
352353

353354
public override bool GetRTS()
354355
{
355-
return true;
356+
return (GetStatus() & MCR_RTS) != 0;
356357
}
357358

358359
public override void SetRTS(bool value)
359360
{
361+
SetConfigSingle(SILABSER_SET_MHS_REQUEST_CODE, (value ? MCR_RTS : 0) | CONTROL_WRITE_RTS);
360362
}
361363

362364
public override Boolean PurgeHwBuffers(Boolean purgeReadBuffers, Boolean purgeWriteBuffers)

0 commit comments

Comments
 (0)