FAQ TWedge
Wie kann man Daten in einer Schleife lesen, ohne StartListen zu verwenden?
Wie kann man Daten in einer Schleife lesen, ohne StartListen zu verwenden?
Nehmen wir an, Sie möchten von zwei Skripten aus auf einen bestimmten COM-Anschluss (nacheinander) zugreifen, können ihn aber nur von jeweils einem Skript aus öffnen. Sie können StartListen() nicht verwenden, da dies den Port die ganze Zeit über belegt, solange die Datenerfassung aktiv ist.
Im Folgenden zeigen wir Ihnen, wie Sie den Port öffnen, Daten synchron lesen und dann den Port wieder schließen, damit das andere Skript auf den Port zugreifen kann.
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();