FAQ TWedge
¿Cómo Leer Datos en un Bucle Sin Usar StartListen?
¿Cómo Leer Datos en un Bucle Sin Usar StartListen?
Dado el caso en que quiera acceder a un puerto COM específico desde dos scripts, pero solo puede abrirlo desde uno a la vez. Por lo tanto, no puede usar StartListen() porque esto ocupará el puerto todo el tiempo mientras el script (recopilación de datos) esté activo.
A continuación le mostramos cómo abrir el puerto, leer datos y luego cerrar el puerto para que el otro script pueda acceder a él.
hConn2.Open(funcOnConnectionLost2);
var arr2Data = null;
retries2 = 60; // wait maximum 1 minute for data (60 * 1000 ms)
while (retries2-- > 0)
{
try
{
Print ("Waiting for data from " + hConn2.Port);
var currData = hConn2.ReadData(100, 1000); // try to read max 100 Bytes in 1 sec
if (arr2Data == null)
arr2Data = currData; // first data packet
else
arr2Data.concat(currData); // subsequent data packet -> append
}
catch (err)
{
// stop when we have data already (no data packet after successful read)
if (arr2Data != null)
break;
}
}
processData2 (arr2Data);
if (hConn2.IsOpen)
closeConnection2();