我想包在3G和TCP连接发送到服务器。下面是在.cpp,我发现.h文件中的链接:
https://os.mbed.com/users/Nels885/code/Adafruit_FONA_3G/
更具体地讲,我对TCPSend
如何工作Adafruit_FONA_3G
类下真糊涂。我想实现它,但我的代码似乎在功能packet[0] = 0;
到停留在bool Adafruit_FONA_3G::TCPsend(char *packet)
得到。
我曾尝试注释掉packet[0] = 0
;并且代码经过运行的所有道路。我也曾尝试初始化char* packet[32];
packet[0] = 0;
前后代码通过运行所有的方式。我假定的功能没有检测到分组输入。
下面是从.cpp文件的具体功能:
bool Adafruit_FONA_3G::TCPsend(char *packet)
{
if (strlen(packet) > 0)
{
mySerial.printf("%s", packet);
//mySerial.printf("%s\r\n", packet);
readline();
packet[0] = 0;
return true;
}
else
return false;
}
这是我主要的代码:
#include "mbed.h"
#include "Adafruit_FONA.h"
#define FONA_RST D4
#define FONA_TX D1
#define FONA_RX D0
#define FONA_RI D7 //not used
char replybuffer[255];
Adafruit_FONA_3G fona(FONA_TX, FONA_RX, FONA_RST, FONA_RI);
Serial pc(USBTX, USBRX);
int main()
{
fona.TCPinitialize();
char Timeout[21];
fona.getTCPtimeout(Timeout);
char * Server = "52.14.99.26";
uint16_t Port = 10001;
fona.TCPconnect(Server,Port);
char *Packet = "Pick Up %";
fona.TCPsend(Packet);
fona.TCPclose();
}
Adafruit_FONA_3G::TCPsend()
假定你传递一个读写缓存。你传递一个只读缓冲区。因此,更换
char *Packet = "Pick Up %";
同
char Packet[] = "Pick Up %";
问题是真的,你的编译器允许你来初始化只读值写入指针。这是你的编译器的一个缺点。