У меня есть этот код с веб-сайта, который я использую в качестве руководства для отправки SMS-сообщения с SIM800L, подключенного к моей Arduino Mega.SIM800L string concatenation
#include <Sim800l.h>
#include <SoftwareSerial.h>
Sim800l Sim800l; //declare the library
char* text;
char* number;
bool error;
void setup(){
Sim800l.begin();
text="Testing Sms";
number="+542926556644";
error=Sim800l.sendSms(number,text);
// OR
//error=Sim800l.sendSms("+540111111111","the text go here");
}
void loop(){
//do nothing
}
Я добавил некоторые биты кода в середине, так что он будет получать строку ввода от пользователя в моем GUI Python через последовательное соединение.
#include <Sim800l.h>
#include <SoftwareSerial.h>
Sim800l Sim800l; //declare the library
char* text;
char* number;
bool error;
String data;
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available() > 0)
{
data = Serial.readString();
Serial.print(data);
sendmess();
}
}
void sendmess()
{
Sim800l.begin();
text="Power Outage occured in area of account #: ";
number="+639164384650";
error=Sim800l.sendSms(number,text);
// OR
//error=Sim800l.sendSms("+540111111111","the text go here");
}
Я пытаюсь объединить данные из моего serial.readString()
до конца text
. Обычные методы, такие как +
и %s
, не работают.
В Arduino IDE я получаю эту ошибку:
error: cannot convert ‘StringSumHelper’ to ‘char*’ in assignment
Если я правильно char*
указатель, который указывает на адрес. Есть ли способ добавить строку из последовательного монитора в текст?
* Arduino * имеет класс 'String', который имеет метод' 'concat()'] (https://www.arduino.cc/en/Reference/StringConcat), 'text' может быть просто объявлен «String», чтобы использовать эту функцию с гораздо меньшим количеством кода, чем в принятом ответе. И если * конкатенация * не соответствует вашим потребностям, то у 'String' также есть [оператор добавления] (https://www.arduino.cc/en/Tutorial/StringAdditionOperator). –