2012-07-23 15 views
7

私はArduinoライブラリを使用しています。私はセンサーからデータをログに記録し、日時スタンプしてSDカードに書きたいと思います。私はArduinoを使用して文字列をconst char *に変換する

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) 

を得る。しかし、それはそうですアルドゥーノの文字列には、

(const char *) dataFileName.c_str() 

は、だから私は、任意の助けをいただければ幸いです

正しい変換を行う方法を見つけ出すことはできません。

答えて

14

ありがとうございました。その解決策は、get length Stringにstr.length()+ 1を使用した

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

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

です。次に例を示します。char __dataFileName [dataFileName.length()+ 1]; dataFileName.toCharArray(__ dataFileName、sizeof(__ dataFileName)); – Guihgo

関連する問題