2011-12-17 16 views
8

¿Alguien sabe cómo establecer la paridad con el controlTransfer en Android?estableciendo la paridad con el método de control de transferencia

No encuentro la explicación de los parámetros de este método en ninguna parte, solo información genérica en la ref.

Un ejemplo que encontré dice:

conn.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0); //data bit 8, parity none, stop bit 1, tx off 

pero necesito cambiar la paridad. ¿Alguien tiene una idea?

¡Muchas gracias!

+0

PLZ actualizarlo, si usted ha encontrado la respuesta ..... – yokks

Respuesta

15

se puede definir la combinación de bits para crear su propia configuración (paridad, bit de parada & bit de datos).

conn.controlTransfer(0x40, 0x04, 0x0008, 0, null, 0, 0); 

primera parámetro - 0x40 - solicitud para establecer u obtener datos de control

#define FTDI_SIO_SET_DATA_REQUEST_TYPE 0x40 

segundo parámetro - 0x04 - el tipo de datos que se deben establecer u obtener

#define FTDI_SIO_RESET  0 /* Reset the port */ 
#define FTDI_SIO_MODEM_CTRL  1 /* Set the modem control register */ 
#define FTDI_SIO_SET_FLOW_CTRL 2 /* Set flow control register */ 
#define FTDI_SIO_SET_BAUD_RATE 3 /* Set baud rate */ 
#define FTDI_SIO_SET_DATA 4 /* Set the data characteristics of the port */ 
#define FTDI_SIO_GET_MODEM_STATUS 5 /* Retrieve current value of modern status register */ 
#define FTDI_SIO_SET_EVENT_CHAR 6 /* Set the event character */ 
#define FTDI_SIO_SET_ERROR_CHAR 7 /* Set the error character */ 

tercer parámetro - 0x0008 - bit de datos 8, paridad ninguno, bit de parada 1, tx desactivado - ¿Se pasan los datos reales?

El tercer parámetro es un dato de 16 bits que puede ser formado a partir de las constantes se definen a continuación:

Bits 0 to 7 -- Number of data bits 

Bits 8 to 10 -- Parity 
      0 = None 
      1 = Odd 
      2 = Even 
      3 = Mark 
      4 = Space 
Bits 11 to 13 -- Stop Bits 
      0 = 1 
      1 = 1.5 
      2 = 2 
Bit 14 
      1 = TX ON (break) 
      0 = TX OFF (normal state) 
Bit15 -- Reserved 


#define FTDI_SIO_SET_DATA_REQUEST  FTDI_SIO_SET_DATA 

#define FTDI_SIO_SET_DATA_PARITY_NONE (0x0 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_ODD (0x1 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_EVEN (0x2 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_MARK (0x3 << 8) 
#define FTDI_SIO_SET_DATA_PARITY_SPACE (0x4 << 8) 
#define FTDI_SIO_SET_DATA_STOP_BITS_1 (0x0 << 11) 
#define FTDI_SIO_SET_DATA_STOP_BITS_15 (0x1 << 11) 
#define FTDI_SIO_SET_DATA_STOP_BITS_2 (0x2 << 11) 
#define FTDI_SIO_SET_BREAK    (0x1 << 14) 

Para la velocidad de transmisión:

* Value Baud Rate speed 
* 0×2710 300 
* 0×1388 600 
* 0x09C4 1200 
* 0x04E2 2400 
* 0×0271 4800 
* 0×4138 9600 
* 0x80D0 14400 
* 0x809C 19200 
* 0xC04E 38400 
* 0×0034 57600 
* 0x001A 115200 
* 0x000D 230400 
* 0×4006 460800 
* 0×8003 921600 
*/ 

Consulte los enlaces siguientes para más detalles:

http://read.pudn.com/downloads181/sourcecode/embed/842049/usb/serial/ftdi_sio.h__.htm

http://www.mev.co.uk/pages/Support/USB-Baud-Spoof.html

+0

Gracias yokks !!! Esta información no es fácil de encontrar. Esto realmente me ayudó a superar los últimos obstáculos que se comunican con mi dispositivo USB objetivo. –

Cuestiones relacionadas