@@ -57,11 +57,11 @@ public class Cp21xxSerialPort : CommonUsbSerialPort
5757 private const int FLUSH_READ_CODE = 0x0a ;
5858 private const int FLUSH_WRITE_CODE = 0x05 ;
5959
60- private static int GET_MODEM_STATUS_REQUEST = 0x08 ; // 0x08 Get modem status.
61- private static int MODEM_STATUS_CTS = 0x10 ;
62- private static int MODEM_STATUS_DSR = 0x20 ;
63- private static int MODEM_STATUS_RI = 0x40 ;
64- private static int MODEM_STATUS_CD = 0x80 ;
60+ private const int GET_MODEM_STATUS_REQUEST = 0x08 ; // 0x08 Get modem status.
61+ private const int MODEM_STATUS_CTS = 0x10 ;
62+ private const int MODEM_STATUS_DSR = 0x20 ;
63+ private const int MODEM_STATUS_RI = 0x40 ;
64+ private const int MODEM_STATUS_CD = 0x80 ;
6565 /*
6666 * SILABSER_IFC_ENABLE_REQUEST_CODE
6767 */
@@ -86,7 +86,7 @@ public class Cp21xxSerialPort : CommonUsbSerialPort
8686 private UsbEndpoint mReadEndpoint ;
8787 private UsbEndpoint mWriteEndpoint ;
8888
89- private IUsbSerialDriver Driver ;
89+ private new IUsbSerialDriver Driver ;
9090 private string TAG => ( Driver as Cp21xxSerialDriver ) ? . TAG ;
9191
9292
@@ -210,28 +210,16 @@ public override int Read(byte[] dest, int timeoutMillis)
210210 public override int Write ( byte [ ] src , int timeoutMillis )
211211 {
212212 int offset = 0 ;
213+ int writeLength ;
214+ int amtWritten ;
213215
214216 while ( offset < src . Length )
215217 {
216- int writeLength ;
217- int amtWritten ;
218-
219218 lock ( mWriteBufferLock ) {
220- byte [ ] writeBuffer ;
221219
222- writeLength = Math . Min ( src . Length - offset , mWriteBuffer . Length ) ;
223- if ( offset == 0 )
224- {
225- writeBuffer = src ;
226- }
227- else
228- {
229- // bulkTransfer does not support offsets, make a copy.
230- Buffer . BlockCopy ( src , offset , mWriteBuffer , 0 , writeLength ) ;
231- writeBuffer = mWriteBuffer ;
232- }
220+ writeLength = src . Length - offset ;
233221
234- amtWritten = mConnection . BulkTransfer ( mWriteEndpoint , writeBuffer , writeLength ,
222+ amtWritten = mConnection . BulkTransfer ( mWriteEndpoint , src , offset , writeLength ,
235223 timeoutMillis ) ;
236224 }
237225 if ( amtWritten <= 0 )
0 commit comments