我想重新连接 - 即一旦使用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重置配置,但没有收到响应。甚至没有错误。这是否意味着端口未正确关闭?我被困了。请帮忙