преобразование строки В тип const char* с помощью Arduino

Я использую библиотеку Arduino. Я хотел бы записать некоторые данные с датчика, отметить дату и время и записать их на SD-карту.

чтобы создать имя текстового файла, я попытался

    String dataFileName = String(String(sedClock.getTime().year(),DEC) + 
                         String(sedClock.getTime().month(),DEC) + 
                         String(sedClock.getTime().day(),DEC) + 
                         String(sedClock.getTime().hour(),DEC) + 
                         String(sedClock.getTime().minute(),DEC) + 
                         String(sedClock.getTime().second(),DEC) + '_log.txt');

затем я хотел бы войти в этот файл с помощью

      pinMode(SD_PIN,OUTPUT);
      dataFile = SD.open(dataFileName,FILE_WRITE);

но я

    no matching function call to SDClass::open(String&, int) 
    candidates are: File SDClass::open(const char*,uint_8)

но кажется, что строка Arduino не имеет эквивалента

    (const char *) dataFileName.c_str()

поэтому я не могу понять, как сделать правильный преобразование

любая помощь была бы весьма признательна.

2 ответов


Спасибо за помощь. Решение

    char __dataFileName[sizeof(dataFileName)];
    dataFileName.toCharArray(__dataFileName, sizeof(__dataFileName));

    pinMode(SD_PIN,OUTPUT);
    dataFile = SD.open(__dataFileName,FILE_WRITE);