Hi,
Eigentlich sollte mein Programm so funktionieren, dass ich bestimmte Zahlen sende und er entsprechend dem Code drauf reagiert.

Das Programm startet mit der Variable Modus=0.
Nur wenn es "-32766" empfängt, soll Modus=1 werden und alles was dann Empfangen wird in ein Array geschrieben werden, bis es "-32768" Empfängt.

Ich habe Ausgaben im Programm die mir anzeigen, wenn "-32766" korrekt empfangen wurde und wenn das geklappt hat soll es jedes Mal ausgeben, wenn es etwas anderes als "-32768" Empfängt.

Wenn ich nach dem Reset als erstes "-32766" sende, dann erkennt er das auch und zeigt mir das an. Egal, was ich dann sende, schreibt er mir raus, dass es <> "-32768" ist. Sollte ich nach dem Reset etwas anderes als "-32766" senden, erkennt er diese auch nicht mehr.

Kurzgesagt der erste Empfang klappt, alles andere wird danach nicht mehr erkannt. Kann mir einer sagen, wo der Fehler liegt?

Code:
 
Dim Empfangen As String * 8

 Do
     Input Empfangen
     If Modus=1 Then 'array befüllen
        If Empfangen<> "-32768" Then 'Befehl, das array fertig
                print "anders als 68"
                Incr Befehlsindex
                Befehlsarray(Befehlsindex)=Val(Empfangen)
        Else
                Modus=2
                i=0
                while i< Befehlsindex
                        incr i
                        Print Befehlsarray(i)
                Wend
        End If
     ElseIf Modus=2 Then
        If Empfangen="-32767" Then 'Befehl, Programm starten
           gosub run
        End If
     ElseIf Modus=0 Then
        If Empfangen="-32766" Then 'Befehl, das array zu befüllen
                Modus=1
                Befehlsindex=0
                print "66 erkannt"
        End If
     End If

  Loop