Arduino und FSX - CodeIn GetChar

Gast #4404986
Lesenswert?
• ▲
▼
Guten Abend,

ich habe seit kurzem einen Arduino und möchte diesen primär nutzen, um 
etwas mehr Kenntnis in der Materie zu bekommen. Idee war, den Arduino 
ein bisschen mit FSX zu nutzen, um z. B. Heading-Werte, Höhen, den 
Autopiloten usw. zu setzen.

Bisher habe ich immer den Weg "vom Arduino" in den "FSX" genommen (mit 
dem Tool Link2FS). Nun möchte ich aber auch am Arduino auf Basis des 
seriellen Datenstroms eine LED ein- und ausschalten.

Wenn ich den AP einschalte, sendet FSX an die serielle Schnittstelle 
"=a0", beim Einschalten "=a1" (beides ohne ""). Die Daten kommen soweit 
korrekt beim Arduino an.

Nun möchte ich, dass bei der Zeichenkette "=a1" die LED an Pin 4 
eingeschaltet wird und LED an Pin 5 aus geht, bei der Zeichenkette "=a0" 
die LED an Pin 4 wieder aus geht, LED an Pin 5 dann an.

Mein Code sieht wie folgt aus (auf Basis von Code aus dem Netz):

[c]
int CodeIn;// used on all serial reads
void setup()
{

  // Lets set the output pin modes (longhand)
  pinMode(4, OUTPUT); //
  pinMode(5, OUTPUT); //

  Serial.begin(115200);
}

void loop() {

  if (Serial.available()) {//checks the serial read buffer
    CodeIn = getChar();// reads one charactor via it's own routine (char 
getChar)
    if (CodeIn == '=') {
      EQUAL(); // The first identifier is "=", goto EQUAL void

    }
  }//end of yes there is something to read
} // end of void loop (The main one)

char getChar()// Get a character from the serial buffer
{
  while (Serial.available() == 0); // wait for data
  return ((char)Serial.read()); // Thanks Doug
}// end of getchar void.

void EQUAL() {   // The first identifier was "="
  CodeIn = getChar(); // Get the second identifier
  switch (CodeIn) { // Now lets find what to do with it
    case 'a'://Found the second identifier (Autopilot)

  }// end of switch
}// end of lessthan void
[c]

Ich komme mit dem Switch Case nicht weiter.
Ich muss ja nicht nur den zweiten Wert auslesen (beides a) sondern auch 
den dritten (also ob 0 oder 1), damit ich steuern kann ob der Autopilot 
an ist oder eben nicht.

Hat jemand dazu eine Idee?
Danke,
Moritz

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.