再接続を行いたい - つまり、一連の 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 でもありません。これは、ポートが適切に閉じられていないということですか? 行き詰まっています。助けてください