Я хочу наследовать класс SPIFFS, чтобы расширить его для моих методов. Является ли это возможным? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть проект ESP32, использующий фреймворк Arduino, и у меня проблема.Я хочу создать свой класс, который будет наследоваться от класса SPIFFS.Просто хочу добавить метод readConfig и использовать его в моем проекте.

Возможно ли это?

Я использую что-то вроде.SSDReader.h

#pragma once
#include <Arduino.h>
#include <SPIFFS.h>
#include <FS.h>

using namespace fs;
class SSDReader: public SPIFFSFS {
  public:
    void getConfig();

};

extern SSDReader ssd;

SSDReader.cpp

#include "SSDReader.h"

void SSDReader::getConfig() {

}

main.cpp

#pragma once
#include <Arduino.h>
#include "include/SSDReader.h“

void setup() {
  // Init SSDReader
  if (!ssd.begin()) {

  }
}

void loop() {

}

Компилируется, но тогда ssd:

.pioenvs/esp32dev/src/main.cpp.o:(.literal._Z5setupv+0x10): undefined reference to `ssd'
collect2: error: ld returned 1 exit status
*** [.pioenvs/esp32dev/firmware.elf] Error 1

Спасибо, С уважением, Петр Сурек

1 Ответ

0 голосов
/ 08 апреля 2019

Благодаря KIIV я смог редактировать свой код следующим образом.

SSDReader.h

#pragma once
#include <Arduino.h>
#include <SPIFFS.h>

using namespace fs;
class SSDReader : public SPIFFSFS {
  public:
    SSDReader() : SPIFFSFS{ SPIFFS } { };
    void getConfig();

  protected:
};

SSDReader.cpp

#include "SSDReader.h"

//SSDReader::SSDReader() {}


void SSDReader::getConfig() {

}

main.cpp

#include <Arduino.h>
#include "include/SSDReader.h"
//#include "include/Display.h"

// Variables
SSDReader ssd;
bool enableSerial = false;

//Display display;

void setup() {
  if (enableSerial)
    Serial.println(9600);

  // Init SSDReader
  if (!ssd.begin()) {

  }

}

void loop() {

}

И это работает.Большое спасибо.Я собираюсь больше заниматься самообучением.

...