Hallo,
Irgendwie komme ich nicht so richtig weiter. Ich habe im Main-Program eine Bluetooth-Schnittstelle deklariert welche problemlos funktioniert. Jetzt habe ich einige Sensorklassen geschrieben, welche die Daten einsammeln und dann mittels Bluetooth senden. Bei der Klasse EWD benötigt ich jedoch die Bluetooth-Schnittstelle um die Sensoren zu kalibrieren. Dabei befindet sich die Methode solange in einer do/while schleife, bis erneut ein Zeichen über Bluetooth empfangen wird.
Wie kriege ich die Bluetooth-Schnittstelle an die Klasse EWD oder bestenfalls nur an die Methode "calibrateSensor" der Klasse EWD übergeben?
Bei dem Code kriege ich einen Compiler-Fehler in EWD.h "BluetoothSerial has not been declared".
//Main-Program
BluetoothSerial SerialBT;
void setup() {
Serial.begin(115200);
SerialBT.begin("Air"); //Bluetooth device name
Serial.println("The device started, now you can pair it with bluetooth!");
}
void loop() {
...
if(ewd.calibrateSensor(1,&SerialBT));
....
Da bei Deinen Fragmenten die Includes fehlen, kann man da wenig zu sagen.
Außerdem glaube ich, dass Du Pointer und Referenzen durcheinander bringst.
Du musst in der EWD.h auf alle Fälle die BluetoothSerial includieren.
Was soll daran komisch sein? Dann kann man halt nur Objekte dieser Klasse übergeben. Stream als Oberklasse aller Serial-Klassen hat natürlich den Vorteil dass die eigentliche Quelle egal ist. Das geht sowohl mit Software- als auch Hardware-Serial Klassen
Der Fehler mit "BluetoothSerial has not been declared" liegt vielleicht eher daran dass dass man die Klasse im Header auch inkludieren müsste