@@ -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