我想做重新连接 - 即一旦使用 AT 命令序列(如 AT+CGATT、ATDT 等)与调制解调器建立 pdp 会话,我试图在断开连接后重新建立连接。所以我只想重置 ATDT 端口并重新发送命令..关闭和打开端口的方法有效 - 但很少有失败(ATDT命令成功发送但未收到响应)我正在尝试通过这种方法重置调制解调器的端口
//close port
{
if(fdDataPort != -1)
{
MSG_NOTICE("Closing AT[Data] port %d",fdDataPort);
close (fdDataPort);
MSG_NOTICE("Closed AT[Data] port",NULL);
fdDataPort= -1;
}
}
//打开端口
{
struct termios tio;
memset(&tio, 0, sizeof(termios));
if ((fdDataPort = open("/dev/ttyUSB2", O_RDWR | O_NOCTTY| O_SYNC | O_NONBLOCK )) != -1)
{
cfmakeraw (&tio);
tio.c_iflag = 0;//IGNCR;
tio.c_cflag |= CLOCAL | CREAD;
usleep(200000);
tcflush(fdDataPort, TCIOFLUSH);
tcsetattr(fdDataPort, TCSANOW, &tio);
tcflush(fdDataPort, TCIOFLUSH);
tcflush(fdDataPort, TCIOFLUSH);
cfsetospeed(&tio, B115200);
cfsetispeed(&tio, B115200);
tcsetattr(fdDataPort, TCSANOW, &tio);
usleep(200000);
return true;
}
}
这是重置 ttyUSB 的正确方法吗?或者有没有其他方法来重置调制解调器的串口,比如发送一些AT命令或者改变一些配置
一旦我关闭并打开端口。我尝试发送 ATZ 重置配置,但没有收到响应。甚至没有 ERROR 。这是否意味着端口未正确关闭?我被卡住了。请帮忙