Serielle über Header Datein Senden

Hallo zusammen, ich übe mich weiter in C++ (Bin totaler Anfänger)
Dabei habe ich VisualStudio und PlatformIO Installiert und Programmiere mein ESP32.

In meiner main.cpp kann ich über WLAN und Serielle senden, so wie es viele Demos zeigen
die man im Internet sieht.

Zu meinen Problem, ich möchte die Serielle für Debug benutzen.
Weil ich mehrere Header Datein *.hpp und *.cpp habe. Aber aus andere Datein kann ich über
die Serielle nichts senden. Nur in der main.cpp.

Muss ich noch etwas einbinden ? Was mache ich falsch ?

mfg

Woher soll ich das wissen!
Ich sehe ja nix.

Tipp:

  1. Ein aufmerksames Lesen der Fehlermeldungen kann hilfreich sein.
  2. Ein geheim halten von Code und Fehlermeldungen ist kontraproduktiv.

ok dann zeige ich mal was ich habe. Aber bedenke ich bin Anfänger.
Deswegen auch meine Frage hier im Forum weil ich nicht weiter komme.

main.cpp

#include <Arduino.h>
#include <iostream>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <sstream>
#include <WIFI.h>
#include <stdio.h>
#include <stdlib.h>
#include <String.h>
#include <errno.h>
using namespace std; 
#include <float.h>
#include <math.h>
#include <stdio.h>

#include "includes/serial.hpp"

const char* ssid = "****************";  //Enter your wifi SSID
const char* password = "************";  //Enter your wifi Password

int port = 23;  
WiFiServer server(port);
WiFiClient client;

void setup() {
  Serial.begin(19200);
  Serial.println();
  
  WiFi.mode(WIFI_STA);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  server.begin(); 
}
void loop(){
    WiFiClient  client = server.available();   
    while(client.connected())
    {            
      //while (client.connected() && client.available())
      if (client.available()) 
      { 
        rec_str = "";
        rec_str =  client.readStringUntil('\n');           
        
        if (rec_str[0] == '1') 
        {
          client.println(rec_str);
          void berechne();
        }   
      }
    }                       
}

serial.hpp

#pragma once
#include <Arduino.h>
#include <iostream>
using namespace std;


  void(berechne);

serial.cpp

#include <Arduino.h>
#include <iostream>
#include <string>
using namespace std;

int a;
int b = 40;
int c = 20;


void berechne(){
a = b + c; 
Serial.println(a); //  Debug ausgabe 
}

mfg

Was ist das?

Meinst du da vielleicht:
void berechne();

Denn:

E:\Programme\arduino\portable\sketchbook\sketch_nov19c\sketch_nov19c.ino:5:5: warning: unnecessary parentheses in declaration of 'berechne' [-Wparentheses]
    5 | void(berechne);
      |     ^~~~~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_nov19c\sketch_nov19c.ino:5:5: note: remove parentheses
    5 | void(berechne);
      |     ^~~~~~~~~~
      |     -        -
sketch_nov19c:5:6: error: variable or field 'berechne' declared void
    5 | void(berechne);
      |      ^~~~~~~~

Je öfter du das wiederholst, desto fester glaubst du da selber dran.
Je mehr wird das zu einer unabänderbaren Wahrheit.

Es gibt einen Ausweg: Lernen!

In jeden Forum gibt es diese eine Person.

Und ich habe immer das Glück diese eine Person kennen zu lernen.

Hast du denn deine Fehler mal korrigiert?

Das könnte an Dir liegen.

Gruß Tommy

@wwerner aber sicher doch, in mein Programm war es richtig geschrieben, nur

hier im Forum hatte ich das falsch geschrienben.

mfg

Welchen Sinn macht der Prototype da?
Da soll doch bestimmt ein Funktionsaufruf hin!

Oder ist das auch wieder nur Fantasie Code um uns zu täuschen?

Übrigens:
Dein Gejammer empfinde ich als störend/ablenkend.
Investiere die Energie doch besser in konzentrierte Arbeit.

Und warum schreibst du das doppelt ?
Wäre da kopieren nicht einfacher und sicherer ?

Wir können nicht auf deinen Monitor schauen. Und hier war es falsch.