Al probar el controlador D2xx desde FTDI, el dispositivo Android no lee ningún byte.
Debajo están los códigos:
al abrir un puerto para usar (ya que solo 1 puerto en android es el predeterminado para el primer puerto en la función de lista de dispositivos de UARTmanager). seguido de una de las respuestas en este sitio web para utilizar restartintask
private void openFunction() throws Exception
{
this.ftDev = UARTManager.openByIndex(SerialContext, portToUse);
if (!ftDev.isOpen())
{
throw new Exception("openFunction -- SerialCommunicator: Unable To open FTDI device for communication.");
}
this.ftDev.restartInTask();
}
una vez que se conectó, intentó enviar un mensaje:
int status = ftDev.write(byteToSend, byteToSend.length);
this.trace("send Status: " + Integer.toString(status));
- el problema aquí es que el retorno de estado de la escritura siempre es 5, no hay documentación en el sitio web de FTDI que indique qué significado tiene cada retorno de estado después de la operación de escritura. la longitud de bytetosend era 2
al leer del hardware que contiene el conjunto de chips FTDI:
public byte serialReadByte()
{
this.readCompleted = false;
new ReadAsyncTask().execute();
while(!this.readCompleted) {}
if(this.fromSerial != null && this.fromSerial.length > 0)
{
return this.fromSerial[0];
}
return null;
}
private class ReadAsyncTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... arg0) {
int totalRead = ftDev.getQueueStatus();
fromSerial = new byte[1];
if(totalRead > 0)
{
ftDev.read(fromSerial, 1);
}
readCompleted = true;
return null;
}
}
- el problema aquí es que nada se devuelve de la lectura. Siguiendo una de las respuestas aquí para ponerlo en un hilo como se ve en el código actual
fuera de opción aquí, tal vez ustedes tienen alguna idea sobre esto? El modelo FTDI es FT230XS-R y utiliza el UARTManager del controlador FTDI.
Se buscó otro controlador disponible en Internet, solo para encontrar que solo es compatible con FT232, ¿tal vez podrían sugerir un controlador que funcione para el chipset FTDI FT230XS-R?