2016-10-26 6 views
0

ArduinoのIDEでコンパイルするとき、私はこのエラーを取得していやあみんなエラー:no 'を無効SIM :: sendSMS(のchar *)' メンバークラスで宣言された関数 'シム'

エラー:no「を無効シム:: sendSMS(CHAR *)」クラスで宣言されたメンバ関数 'シム'

のボイドSIM :: sendSMS(char型のMSG [160])

私のヘッダファイルがある:

#ifndef sim_h 
#define sim_h 

#include "Arduino.h" 

class sim 
{ 
public: 
sim(); 
void smstextmode(); 
void testSIM900(); 
void sendSMS(char _msg[160]); 
private: 
char _msg[160]; 
}; 

#endif 

私のCPPファイル:

#include "Arduino.h" 
#include "sim.h" 

sim::sim() 
{ 
_msg= msg; 
} 

void sim::smstextmode() 
{ 
    Serial1.write("AT+CMGF=1\r\n"); 
    delay(2000); 
} 

void sim::testSIM900() 
{ 
    Serial1.write("AT\r\n"); 
    delay(1000); 
    Serial1.write("AT+CSCS?\r\n"); 
    delay(1000); 
} 

void sim::sendSMS(char msg[160]) 
{ 
    Serial1.write("AT+CMGS=\"+8295724554\"\r\n"); 
    delay(1500); 
    Serial1.write(msg); 
    delay(1000); 
    Serial1.write((char) 26) 

} 
+0

固定Serial1.write((char)26);まだ動かない.. –

答えて

0

多くの間違いがあります。例:

sim::sim() 
{ 
    _msg= msg; // where it should get this msg? 
       // Also it's not possible to do a copy of array like this. 
} 

パラメータとして渡されたmsgを送信する場合、なぜ、_msgが必要ですか?

void sim::sendSMS(char msg[160]) 

あなたはそれを呼び出すようにしたい場合は、あなたが正確に同じデータ型を使用する必要があります。

char something[160] = "some text to send"; 
instance.sendSMS(something); 

しかし、あなただけの文字列を直接渡すことはできません。

instance.sendSMS("some text to send"); 

を、それはだとしてconst char *のタイプであり、タイプchar[160]で処理することはできません。

また、文字列の最後に終了文字は含まれません。

関連する問題