2016-10-26 50 views
0

嘿,夥計們在Arduino的IDE編譯時,我得到這個錯誤錯誤:沒有「無效SIM :: sendSMS(字符*)」類中聲明成員函數「卡」

錯誤:沒有「無效SIM :: sendSMS(字符*)」中的類的成員函數聲明爲 'SIM'

空隙SIM :: sendSMS(炭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

Fixed 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,如果您要發送味精作爲參數傳遞?

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]類型處理。

此外,你不計算在字符串末尾的終止字符。

相關問題