Hallo,
ich möchte einen Langen String zerlegen, der nach diesem Muster aussieht:
payload =("101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116;201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216;301,302,303,304,305,306,98,308,309,310,311,312,313,314,315,316;401,402,403,404,405,406,98,408,409,410,411,412,413,414,415,416;");
Es sind immer 16 Werte, die eigentlich zwischen 0 und 255 varieren. Hier habe ich sie in Hundertergruppen unterteil um besser debuggen zu können.
Der Code sieht folgendermaßen aus
int payload_length = 5;
while (payload_length > 4) {
int mustereinwert;
for (int musterwert = 0; musterwert < 16; musterwert++) {
mustereinwert = payload.substring(0, payload.indexOf(',')).toInt(); payload = payload.substring(payload.indexOf(',') + 1);
USE_SERIAL.print(musterwert); USE_SERIAL.print(". Wert: "); USE_SERIAL.println(mustereinwert);
}
payload_length = payload.substring(payload.indexOf(',') + 1).length();
USE_SERIAL.println("-");
}
}
Die Ausgabe funktioniert beim ersten Block, aber verschiebt sich dann jeweils immer um eine Stelle.
Was könnte ich denn hier noch ändern?
- Wert: 101
- Wert: 102
- Wert: 103
- Wert: 104
- Wert: 105
- Wert: 106
- Wert: 107
- Wert: 108
- Wert: 109
- Wert: 110
- Wert: 111
- Wert: 112
- Wert: 113
- Wert: 114
- Wert: 115
- Wert: 116
- Wert: 202
- Wert: 203
- Wert: 204
- Wert: 205
- Wert: 206
- Wert: 207
- Wert: 208
- Wert: 209
- Wert: 210
- Wert: 211
- Wert: 212
- Wert: 213
- Wert: 214
- Wert: 215
- Wert: 216
- Wert: 302
- Wert: 303
- Wert: 304
- Wert: 305
- Wert: 306
- Wert: 98
- Wert: 308
- Wert: 309
- Wert: 310
- Wert: 311
- Wert: 312
- Wert: 313
- Wert: 314
- Wert: 315
- Wert: 316
- Wert: 402
- Wert: 403
- Wert: 404
- Wert: 405
- Wert: 406
- Wert: 98
- Wert: 408
- Wert: 409
- Wert: 410
- Wert: 411
- Wert: 412
- Wert: 413
- Wert: 414
- Wert: 415
- Wert: 416
- Wert: 416
- Wert: 416
- Wert: 416