Pages: [1]   Go Down
Author Topic: Serial String Analysieren und verwenden.  (Read 345 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo, habe mir hier nun doch mal angemeldet da ich bei einem Problem nicht weiterkomme.

ich bekomme über die Serielle Schnittstelle einen String gesendet.

Dieser sieht wie folgt aus: schaltcode|01011000|21:28:15|

jetzt soll der Arduino überprüfen ob am Anfang  "schaltcode" steht und dann die 8 zahlen als werte verwenden.

Es gibt im Internet ein paar beispiele wie ein String mit dem Arduino empfangen wird aber danach einfach nur der String verglichen, habe da etwas mit versucht es zu meinen Bedürfnissen umzuschreiben aber es will einfach nicht hinhauen.

Ich muss ganz ehrlich sagen das ich Bascom mittlerweile irgendwie besser als Arduino finde nur ist bei Arduino der Upload einfacher und es läuft meistens auf jedem Board... naja nur mal so angemerkt...


hoffe ihr nehmt mir meine Rechtschreibung nicht übel smiley-grin

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 236
Posts: 20281
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C hat eine grauenhafte Stringverwaltung wenn Du Basic gewohnt bist.

Schreibe die erhaltenen Zeichen in ein Array und vergleiche das Array mit dem Referenzarray wo "schaltcode".
Mann kann sich das Leben auch leichter machen wenn man "schaltcode" Durch ein Zeichen abkürzt.
Grüße Uwe
 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für die Antwort.

Das problem mit dem einen zeichen ist, dass es der serielle port aus einem Router mit DD-WRT ist und dort auch noch jede menge anderer sachen rauskommen.
Mit dem schaltcode am anfang möchte ich verhindern das eine falsche Ausgabe verwendet wird.

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Habs  nun hinbekommen.
Bei den Code's die ich im Internet gefunden hatte wurde per strcmp immer nur der ganze string verglichen.
Ich habe es jetzt so gemacht das alles mit nullen aufgefüllt wird bis auf das "schaltcode".
Falls es irgendwann mal wem nutzt.


Code:
char Comp(char* This){

 while(Serial.available() > 0) // Don't read unless
   // there you know there is data
 {
   if(index < 36) // One less than the size of the array
   {
     inChar = Serial.read(); // Read a character
     inData[index] = inChar; // Store it
     index++; // Increment where to write next
     inData[index] = '\0'; // Null terminate the string
   }
 }
ma=splitString(inData,'|',1);
 for(int i=11;i<36;i++){
     inData[i]=0;
   }

 if(strcmp(inData,"schaltcode|")  == 0){
   
   
   for(int i=0;i<36;i++){
     inData[i]=0;
   }
   index=0;
   return(0);

 }
 else{
   index=0;
   return(1);
 

 }
}
Logged

Pages: [1]   Go Up
Jump to: