gpt4 book ai didi

c++ - Adafruit Fona 3g 库;这究竟是如何工作的?

转载 作者:行者123 更新时间:2023-11-30 04:52:09 31 4
gpt4 key购买 nike

我正在尝试通过 3g 和 TCP 连接向服务器发送数据包。下面是我找到的 .cpp 和 .h 文件的链接:

https://os.mbed.com/users/Nels885/code/Adafruit_FONA_3G/

更具体地说,我真的很困惑 TCPSendAdafruit_FONA_3G 类下的工作方式。我正在尝试实现它,但我的代码似乎卡在 packet[0] = 0; 函数 bool Adafruit_FONA_3G::TCPsend(char *packet) 下。

我试过注释掉 packet[0] = 0;并且代码一直运行。我还尝试在 packet[0] = 0; 之前初始化 char* packet[32]; 并且代码一直运行。我假设该函数未检测到数据包输入。

这是 .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 %";

问题实际上是您的编译器允许您使用只读值初始化可写指针。这是你的编译器的缺点。

关于c++ - Adafruit Fona 3g 库;这究竟是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564528/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com