kopia lustrzana https://github.com/felHR85/UsbSerial
first version with custom baudrates
rodzic
ac88abca1a
commit
4108a6905e
|
@ -187,6 +187,12 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
@Override
|
||||
public void setBaudRate(int baudRate)
|
||||
{
|
||||
short[] encodedBaudRate = encodedBaudRate(baudRate);
|
||||
|
||||
if(encodedBaudRate != null) {
|
||||
connection.controlTransfer(FTDI_REQTYPE_HOST2DEVICE, FTDI_SIO_SET_BAUD_RATE
|
||||
, encodedBaudRate[0], encodedBaudRate[1], null, 0, USB_TIMEOUT);
|
||||
}else{
|
||||
int value = 0;
|
||||
if(baudRate >= 0 && baudRate <= 300 )
|
||||
value = FTDI_BAUDRATE_300;
|
||||
|
@ -218,8 +224,10 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
value = FTDI_BAUDRATE_921600;
|
||||
else
|
||||
value = FTDI_BAUDRATE_9600;
|
||||
|
||||
setControlCommand(FTDI_SIO_SET_BAUD_RATE, value, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDataBits(int dataBits)
|
||||
|
@ -734,7 +742,7 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
|
||||
// Encoding baudrate as freebsd driver:
|
||||
// https://github.com/freebsd/freebsd/blob/1d6e4247415d264485ee94b59fdbc12e0c566fd0/sys/dev/usb/serial/uftdi.c
|
||||
private short[] encodeBaudRate(int baudRate){
|
||||
private short[] encodedBaudRate(int baudRate){
|
||||
boolean isFT232A = false;
|
||||
boolean clk12MHz = false;
|
||||
boolean hIndex = false;
|
||||
|
@ -808,8 +816,8 @@ public class FTDISerialDevice extends UsbSerialDevice
|
|||
}
|
||||
divisor |= (encodedFraction[frac] << 14) | fastClk;
|
||||
|
||||
ret[0] = (short) divisor;
|
||||
ret[1] = (short) (divisor >> 16);
|
||||
ret[0] = (short) divisor; //loBits
|
||||
ret[1] = (short) (divisor >> 16); //hiBits
|
||||
|
||||
|
||||
if(hIndex) {
|
||||
|
|
Ładowanie…
Reference in New Issue