首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C#获取连接gsm调制解调器的端口号

问使用C#获取连接gsm调制解调器的端口号
EN

Stack Overflow用户
提问于 2012-12-03 05:15:17
回答 1查看 1.9K关注 0票数 1

我计划用C#中的调制解调器从asp.net application.As发送短信,该项目将集成到另一个项目中,它将不会有任何用户输入的字段来输入com port.How,我可以从C#获得调制解调器连接的端口号。

谢谢,萨加尔。

EN

回答 1

Stack Overflow用户

发布于 2012-12-03 05:30:26

若要检查调制解调器是否连接到特定端口,可以将AT命令发送到此端口。如果在当前COM端口上找到调制解调器,下面的函数将返回true:

代码语言:javascript
复制
    private bool CheckExistingModemOnComPort(SerialPort serialPort)
    {
        if ((serialPort == null) || !serialPort.IsOpen)
            return false;

        // Commands for modem checking
        string[] modemCommands = new string[] { "AT",       // Check connected modem. After 'AT' command some modems autobaud their speed.
                                                "ATQ0" };   // Switch on confirmations
        serialPort.DtrEnable = true;    // Set Data Terminal Ready (DTR) signal 
        serialPort.RtsEnable = true;    // Set Request to Send (RTS) signal

        string answer = "";
        bool retOk = false;
        for (int rtsInd = 0; rtsInd < 2; rtsInd++)
        {
            foreach (string command in modemCommands)
            {
                serialPort.Write(command + serialPort.NewLine);
                retOk = false;
                answer = "";
                int timeout = (command == "AT") ? 10 : 20;

                // Waiting for response 1-2 sec
                for (int i = 0; i < timeout; i++)
                {
                    Thread.Sleep(100);
                    answer += serialPort.ReadExisting();
                    if (answer.IndexOf("OK") >= 0)
                    {
                        retOk = true;
                        break;
                    }
                }
            }
            // If got responses, we found a modem
            if (retOk)
                return true;

            // Trying to execute the commands without RTS
            serialPort.RtsEnable = false;
        }
        return false;
    }

在下一阶段,我们可以从调制解调器收集一些数据。

  • ATQ0 -打开确认(每次请求接收OK )
  • ATE0 -接通回波
  • ATI -获取调制解调器详细信息
  • ATI3 -获取扩展调制解调器详细信息(并非所有调制解调器都支持此命令)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13677540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档