Das passiert vermutlich in der Schleife:
1. Du sendest den ersten Befehl. Serial-Write braucht zur Verarbeitung 0ms, weil es selbst nicht sendet, sondern den Befehl nur in den seriellen Ausgabepuffer schiebt.
2. Da zu diesem Zeitpunkt noch gar nichts gesendet, geschweige denn geantwortet wurde, ist die Anzahl bytes at Board 0. Es wird ein leerer String aus dem true-Case gebildet.
3. Dann nach 50ms wird der zweite Befehl an den Ausgabepuffer gesendet. Inzwischen ist wahrscheinlich etwas im Eingangspuffer eingetrudelt, der false-Case mit Visa-Read wird ausgeführt.
4. Wenn die Antworten ein Zeilenende-Zeichen enthalten, warte Read so lange, bis das Zeilenende kommt und liest die Antwort aus.
5. Der Antwort-String-Array müßte also so aussehen:
Index 0: Leerer String
Index 1: Antwort auf das erste Kommando.
Die Antwort auf das zweite Kommando verschwindet im Nirvana. (Die Puffer werden bei der erneuten Initialisierung gelöscht)
So hingegen könnte es funktionieren: