Kan mijn bibliotheek niet compileren omdat "String geen type een naam geeft"

Ik schrijf een kleine bibliotheek om wat code uit de arduino-schets te verwijderen en herbruikbaar te maken. Het probleem is dat het niet compileert, omdat "String geen type een naam geeft".

Dit is mijn code (verlaagd):

myESP.h:

#ifndef MYESP_H
#define MYESP_H

#include "Arduino.h"

#include 

#include 
#include 
#include 
#include 
#include 
#include 

class myESP {
    private:
        const char* _ssid;
        const char* _password;
        const char* _host;
    public:
        myESP();
        myESP(char * ssid, char * pwd, char * host);
        String macToStr(const uint8_t* mac);
        String doGet(String data, String sensor, int duration);
};
#endif

myESP.cpp:

#include 

#include "Arduino.h"
#include "myESP.h"

myESP::myESP() {}

myESP::myESP(char * ssid, char * pwd, char * host) {
    _host = host;
    _password = pwd;
    _ssid = ssid;
}

myESP::String macToStr(const uint8_t* mac) {
}

myESP::String doGet(String data, String sensor, int duration) {

}

Wanneer ik het probeer te compileren, krijg ik het volgende:

/Users/lbedogni/Documents/Arduino/libraries/myESP/myESP.cpp:14:1:   error: 'String' in 'class myESP' noemt geen type myESP :: String   macToStr (const uint8_t * mac) {

     

/Users/lbedogni/Documents/Arduino/libraries/myESP/myESP.cpp:22:1:   error: 'String' in 'class myESP' noemt geen type myESP :: String   doGet (String-gegevens, String-sensor, int-duur) {

Ik heb geprobeerd de volgorde van de import te veranderen, bibliotheken te veranderen, maar het compileert nog steeds niet.

Enig idee?

2
# include - de IDE bevat automatisch het type String , zodat u deze niet nodig hebt.
toegevoegd de auteur Nick Gammon, de bron

1 antwoord

Uw syntaxis is verkeerd in mijnESP.cpp. Verander dit:

myESP::String macToStr(const uint8_t* mac) {
}

myESP::String doGet(String data, String sensor, int duration) {

}

hieraan:

String myESP::macToStr(const uint8_t* mac) {
}

String myESP::doGet(String data, String sensor, int duration) {

}

Het retourtype is String en de functie-implementatie moet worden voorafgegaan door de klassenaam myESP :: . Uiteraard moet u ook de hoofdtekst van de implementatie invullen of krijgt u meer fouten omdat u niets retourneert.

2
toegevoegd