Der Hintergrund dafür ist, dass ich die IMEI später als Variable per Get übertragen will.
Ich dachte mir, dass ich WhileSimpleRead() so modifiziere, dass statt des Serial.print(datain) die Daten in eine Variable geschrieben werden.
So ganz habe ich dein Problem nicht verstanden... du kannst die Variable ja als char[]-Array definieren und dann in einer Schleife zuweisen, also z. B. 10 Zeichen in der Schleife einlesen... das geht aber nur so, wenn du jeweils nur ein Zeichen auf einmal einliest und zuweist, ansonsten kannst du die Funktion strcat() zum Konkatenieren (Aneinanderfügen) von Strings benutzen
char input[11];
for (int index = 0; index < 10; index++)
{
input[index] = _cell.read();
}
input[10] = '\0'; // String abschließen
aber datain ist immer nur exakt ein Zeichen.
ich habe jeweils ein zeichen pro Zeile bei
Serial.print(datain);
Serial.print("\n");
nur dataout hat mehr Zeichen, 15
habe es erst versucht in ein Array zu schreiben. Hat funktioniert.
Als ich allerdings das Array wieder mit strcat verbinden wollte, war ich wieder bei der gleichen Fehlermeldung wie am Anfang
void SIMCOM900::WhileSimpleReadOut()
{ int x = 0; int n = 0;
char dataout[15];
int datain;
while(_cell.available()>0){
datain=_cell.read();
if(datain>0 and datain != 'O' and datain != 'K')
{ if(x>5 and x<21)
{ Serial.print(datain);
Serial.print("\n");
//dataout[n] = datain;
strcat(dataout, datain);
n++;
}
x++;
}
}
/*
char myIMEI[16];
for(x=0;x<15;x++)
{ char a = dataout[x];
strcat(myIMEI, a);
} myIMEI[16] = '\0';
*/
}
Du kannst mit strcat nur zwei Strings (d. h. character-Arrays) verbinden, nicht jedoch ein Zeichen hinzufügen - für diesen Fall musst du das Zeichen einzeln hinzufügen, wie ich es in meinem ersten Post beschrieben habe.