嘿伙计们在Arduino IDE中编译时遇到此错误
错误:没有' void sim :: sendSMS(char *)'在课程' sim'
中声明的成员函数void 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 :(得分: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]
处理。
此外,您不会在字符串末尾计算终止字符。