0

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

4

0 に答える 0