Guest User

strings

a guest
Dec 3rd, 2012
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #define MAXSTRING 5
  2. char inString[MAXSTRING+1]; // Space for the string plus Nullbyte
  3. byte index = 0;
  4. char finishflag = 0;
  5.  
  6. void setup()
  7. {
  8.   Serial.begin(9600);
  9.   pinMode(13, OUTPUT);
  10. }
  11.  
  12. void loop()
  13. {
  14.     /*
  15.      *  Task 1:
  16.      *  Serielle Daten abrufen
  17.      */
  18.     if(Serial.available())
  19.     {
  20.         // Mindestens ein Zeichen empfangen
  21.         char zeichen = Serial.read();
  22.        
  23.         // Überprüfen ob c ein Sonderzeichen ist (CR+LF)
  24.         // Außerdem ob Buffer zu voll
  25.         if( (zeichen=='\r') ||
  26.             (zeichen=='\n') ||
  27.             (index >= MAXSTRING) )
  28.         {
  29.             inString[MAXSTRING] = 0; // Für definiertes Ende sorgen
  30.                         inString[index] = 0; // Reguläres Ende
  31.                         finishflag = 1; // Für Weiterverarbeitung
  32.             index = 0;
  33.             // Serielle Pipeline flushen
  34.             while(Serial.available())
  35.                 Serial.read();
  36.         }
  37.         else
  38.         {
  39.             // Zeichen in String lesen
  40.             inString[index++] = zeichen;
  41.         }
  42.     }
  43.    
  44.     /*
  45.      * Task 2:
  46.      * Wenn ein String vollständig ist (finishflag == 1)
  47.      * String weiterverarbeiten
  48.      */
  49.     if(finishflag)
  50.     {
  51.         finishflag = 0;
  52.         if( !strcmp(inString, "start"))
  53.         {
  54.             Serial.write("Start empfangen\n");
  55.             digitalWrite(13, HIGH); // set the LED on
  56.         }
  57.         else if( !strcmp(inString, "stopp"))
  58.         {
  59.             Serial.write("Stop empfangen\n");
  60.             digitalWrite(13, LOW); // set the LED on
  61.         }
  62.     }
  63.  
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment