SIM800L字符串连接

时间:2017-02-10 11:25:11

标签: string arduino gsm

我从一个网站获取此代码,我将其用作从连接到我的Arduino Mega的SIM800L发送SMS消息的指南。

#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
}

我在中间添加了一些代码,以便它将通过串行连接从我的Python GUI中的用户接收字符串输入。

#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*是一个指向地址的指针。无论如何要将串行监视器中的字符串添加到文本中吗?

1 个答案:

答案 0 :(得分:1)

您必须将Arduino User.aggregate([ { '$unwind': '$pets' }, { '$lookup': { 'from': 'pets', 'localField': 'pets', 'foreignField': '_id', 'as': 'pets' } }, { '$unwind': { 'path': '$pets', 'preserveNullAndEmptyArrays': true } } { '$group': { '_id': '$_id', 'role': { '$first': '$role' }, 'isVolunteer': { '$first': '$isVolunteer' }, 'pet_count': { '$sum': 1 }, 'lost_pets': { '$sum': { '$cond': ['$pets.petLost.lost', 1, 0] } } } }, { '$group': { '_id': null, 'users_count': { '$sum': { '$cond': [{'$eq': ['$role', 'user']}, 1, 0] } }, 'volunteer_count' : { '$sum': { '$cond': ['$isVolunteer', 1, 0] } }, 'pet_count': { '$sum': '$pet_count' }, 'lost_pets': { '$sum': '$lost_pets' } } }, { '$project': { '_id': 0, 'role': '$_id', 'statistics': { 'users': '$users_count', 'volunteers': '$volunteer_count', 'pets': '$pet_count', 'lostpets': '$lost_pets' } } } ]).exec((err, result) => { if (err) { console.log(err); } res.status(200).json(result); }); 对象转换为标准C字符串。您可以使用String类的c_str()方法执行此操作。它将返回String指针。

现在,您可以使用C库char*中的strncat函数连接两个字符串,也可以使用strncpy连接。

string.h

请注意,如果缓冲区中没有足够的空间,它将简单地删除剩余的数据。