Hallo Forum Gemeinde,
vlt. könnt ihr mir helfen? Habe schon viel im Internet gesucht aber
leider nicht gefunden was mir hilft, bzw das macht was ich möchte.
Ich möchte Binärezustände meiner Variablen (Arduino Mega) an mein
processingprogramm senden. Manchmal funktioniert es, aber oft kommt
folgende Fehlermeldung:
StringIndexOutOfBoundsException: String index out of range: 1
Arduinocode (ausschnitt):
1 | Serial.print((VS1));
|
2 | Serial.print(VS2);
|
3 | Serial.print(VS3);
|
4 | Serial.print(VS4);
|
5 | Serial.print(GAB1);
|
6 | Serial.print(GAB2);
|
7 | Serial.print(AHS);
|
8 | Serial.print(L1);
|
9 | Serial.print(L2);
|
10 | Serial.print(L3);
|
11 | Serial.print(L4);
|
12 | Serial.print(automatik);
|
13 | Serial.print(autostoer);
|
14 | Serial.print(digitalRead(52));
|
15 | Serial.print(digitalRead(53));
|
16 | Serial.print(G1RB);
|
17 | Serial.print(G1RS);
|
18 | Serial.print(G2RB);
|
19 | Serial.print(G2RS);
|
20 | Serial.println("");//Ende der Sendung
|
processincode:
1 | String Info;
|
2 | String inString;
|
3 | char bs0,bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11,bs12,bs13,
|
4 | bs14,bs15,bs16,bs17,bs18,bs19;
|
5 | void draw()
|
6 | {
|
7 |
|
8 |
|
9 | Info = inString;
|
10 |
|
11 | bs0 =(Info.charAt (0));
|
12 | bs1 = (Info.charAt (1)); Hier makiert das Programm den genannten Fehler
|
13 | bs2 =(Info.charAt (2));
|
14 | bs3 =(Info.charAt (3));
|
15 | bs4 = (Info.charAt (4));
|
16 | bs5=(Info.charAt (5));
|
17 | bs6=(Info.charAt (6));
|
18 | bs7= (Info.charAt (7));
|
19 | bs8=(Info.charAt (8));
|
20 | bs9 =(Info.charAt (9));
|
21 | bs10 =(Info.charAt (10));
|
22 | bs11 =(Info.charAt(11));
|
23 | bs12 =(Info.charAt (12));
|
24 | bs13 =(Info.charAt(13));
|
25 | bs14 =(Info.charAt (14));
|
26 | bs15 =(Info.charAt(15));
|
27 | bs16 =(Info.charAt (16));
|
28 | bs17 =(Info.charAt(17));
|
29 | bs18 =(Info.charAt (18));
|
30 | bs19 =(Info.charAt(19));
|
31 |
|
32 |
|
33 |
|
34 | VS1 = int(bs0);
|
35 | VS2 = int(bs1);
|
36 | VS3 = int(bs2);
|
37 | VS4 = int(bs3);
|
38 | GAB1 = int(bs4);
|
39 | GAB2 = int(bs5);
|
40 | AHS = int(bs6);
|
41 | L1 = int(bs7);
|
42 | L2 = int(bs8);
|
43 | L3 = int(bs9);
|
44 | L4 = int(bs10);
|
45 | auto = int(bs11);
|
46 | autostoer = int(bs12);
|
47 | GBE1 = int(bs13);
|
48 | GBE2 = int(bs14);
|
49 | G1RB = int(bs15);
|
50 | G1RS = int(bs16);
|
51 | G2RB = int(bs17);
|
52 | G2RS = int(bs18);
|
53 |
|
54 | ....es folgt nur die Verarbeitung der eingelesenen daten
|
55 |
|
56 | void serialEvent(Serial myPort)
|
57 | {
|
58 | while (myPort.available() == 19)
|
59 | {
|
60 | inString = myPort.readString();
|
61 | }
|
62 | }
|
wäre echt klasse wen mir jemand da weiter Helfen kann:)
danke im Vorraus
gruß rené