Klasse erstellen für serial event

Hallo, ich versuche gerade aus einer Serial Event Funktion eine Klasse bauen. Jedoch mache ich irgendwo einen Fehler und sehe ihn nicht. Zudem versuche ich erst jetzt in Arduino eigene Klassen zu erstellen und bin geerell leider nicht so fit mit Klassen und muss das aufholen. Deshalb seid bitte gnädig mit mir :slight_smile: . Unten der Code. Danke für eure Hilfe.

Interrupt.cpp (432 Bytes)
Interrupt.h (273 Bytes)
Intterupt_class.ino (340 Bytes)

Setze Deinen Code bitte in Codetags. Wie das geht, steht hier.

Gruß Tommy

.h-Datei:

#ifndef INTERRUPT_H
#define INTERRUPT_H
#include <Arduino.h>

class Interrupt
{
  private: 
    
    
  public:
    String inputString = "";
    bool stringComplete = false;
    Interrupt();
    void serialEvent();
};

extern Interrupt Interrupt

#endif

.cpp-Datei

#include "Interrupt.h"

Interrupt::Interrupt(){
}

void Interrupt::serialEvent(){
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag so the main loop can
    // do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

Ino-Datei:

#include "Interrupt.h"

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  if (Interrupt.stringComplete) {
    Serial.println(inputString);
    delay(1000);
    Interrupt.inputString = "";
    Interrupt.stringComplete = false;
}

Wird nirgendwo aufgerufen.
Drum auch keine Funktion!

Dann, sind da einige Fehler drin, so dass es nicht kompiliert!

Interrupt.h (238 Bytes)
sketch_oct10b.ino (362 Bytes)
Interrupt.cpp (452 Bytes)

Behebt die schlimmsten Böcke.

Warum nennst du die Klasse Interrupt? Soll doch eher eine Ergänzung für HardwareSerial sein?

Funktionen und Methoden sehen sehr ähnlich aus, aber es sind zwei verschiedene Dinge. Die Zugehörigkeit zu einer Klasse sorgt dafür dass sich Methoden bei bestimmten Dingen anders verhalten.

kannst du mal beschreiben was du eigentlich damit erreichen willst?
Also wie würde ein Anwender das in einem Usersketch anwenden - was ist der Zweck?

Funktionsfähig:
Interrupt.h (769 Bytes)
sketch_oct10b.ino (299 Bytes)

1 Like

Vielen Dank. Ich werde es jetztnochmal testen, ob es mit meinem bisherigen Programm kompatibel ist. Zur Klärung der anderen Fragen. ich habe die Funktion von dieser Seite:

ich benötige die Klasse/Funktion für 2 Arduinos, die ich gleichzeitig betreibe und wollte wegen der Mehrfachverwendung und zwecks der Übung mal eine Klasse erstellen, da ich noch mehrere Klassen erstellen muss, um es übersichtlich zu machen und keinen Spaghetticode zu erstellen und weiterer Megrfachverwendung.

Danke euch :slight_smile:

Die hat aber nichts mit Klassen zu tun.
Auch nichts mit Interrupts.
Vielleicht am Rande, aber nicht unmittelbar.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.