当前位置:编程学习 > C#/ASP.NET >>

C#写的winform操作短信猫打电话

   public int  Call(string telNum)
        {
            try
            {
               string result = this.SendAT("ATD" + telNum + ";");
               if (result == "OK")
               {
                   return 1;
               }
               else
               {
                   return 0;
               }
            }
            catch (Exception ex)
            {          
                return 0;
            }
        }
     private SerialPort sp;              //私有字段 串口对象
  public string SendAT(string ATCom)
        {
            string result = string.Empty;
            //忽略接收缓冲区内容,准备发送
            sp.DiscardInBuffer();

            //注销事件关联,为发送做准备
            sp.DataReceived -= sp_DataReceived;

            //发送AT指令
            try
            {
                sp.Write(ATCom + "\r");
            }
            catch (Exception ex)
            {
                sp.DataReceived += sp_DataReceived;
                throw ex;
            }

            //接收数据 循环读取数据 直至收到“OK”或“ERROR”
            try
            {
                string temp = string.Empty;
                while (temp.Trim() != "OK" && temp.Trim() != "ERROR")
                {
                    temp = sp.ReadLine();
                    result += temp;
                }
                return result;
            }
            catch (Exception ex)// 捕获的异常是操作已超时

            {
                throw ex;
            }
            finally
            {
                //事件重新绑定 正常监视串口数据
                sp.DataReceived += sp_DataReceived;
            }
        }
在网上找的方法 为什么执行的时候会报错  AT指令 打电话  winform c# 异常 --------------------编程问答-------------------- 不要沉 不要沉不要沉 不要沉不要沉 不要沉不要沉 不要沉 --------------------编程问答-------------------- 不要沉 不要沉不要沉 不要沉不要沉 不要沉不要沉 不要沉 --------------------编程问答-------------------- 设下断点看看在哪跳出先 --------------------编程问答--------------------
引用 3 楼 u011130289 的回复:
设下断点看看在哪跳出先



catch (Exception ex)// 捕获的异常是操作已超时 --------------------编程问答--------------------
引用 4 楼 at1011145875 的回复:
Quote: 引用 3 楼 u011130289 的回复:

设下断点看看在哪跳出先



catch (Exception ex)// 捕获的异常是操作已超时

你这个是异常,看看你设置的断点在哪跳出,不是要你的异常信息 --------------------编程问答--------------------
引用 5 楼 u011130289 的回复:
Quote: 引用 4 楼 at1011145875 的回复:

Quote: 引用 3 楼 u011130289 的回复:

设下断点看看在哪跳出先



catch (Exception ex)// 捕获的异常是操作已超时

你这个是异常,看看你设置的断点在哪跳出,不是要你的异常信息


    while (temp.Trim() != "OK" && temp.Trim() != "ERROR")
                {
                    temp = sp.ReadLine();
                    result += temp;
                }拨号倒是能成功 就是过几秒就报异常了    --------------------编程问答-------------------- 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊  还是沉了  --------------------编程问答-------------------- 你的短信猫支持语音通话?
返回不止OK,ERROR,还有可能CONNECT,RING,BUSY,NO ANSWER等,所以不要用while这样判断,否则就死循环了。
拨号成功你是怎么知道的,听到拨号音了?
发送AT命令出去不代表执行成功,你先发个最简单的 AT 试下看能不能回来OK。
--------------------编程问答-------------------- 短信猫的操作方法应该由供应商提供文档的吧,网上抄的好用得靠运气。 --------------------编程问答-------------------- 挂个电话给供应商或厂家,他们会免费提供开发的SDK,都花了钱就不要不好意思,直接问他要,不用客气。 --------------------编程问答--------------------
引用 8 楼 jshi123 的回复:
你的短信猫支持语音通话?
返回不止OK,ERROR,还有可能CONNECT,RING,BUSY,NO ANSWER等,所以不要用while这样判断,否则就死循环了。
拨号成功你是怎么知道的,听到拨号音了?
发送AT命令出去不代表执行成功,你先发个最简单的 AT 试下看能不能回来OK。

恩 我用的自己手机号 确实是响了  返回不止OK,ERROR,还有可能CONNECT,RING,BUSY,NO ANSWER等,所以不要用while这样判断,否则就死循环了。  这个可以看一下 --------------------编程问答--------------------
引用 9 楼 tcmakebest 的回复:
短信猫的操作方法应该由供应商提供文档的吧,网上抄的好用得靠运气。



问厂家要了  啥都没有  就给个AT指令集 --------------------编程问答--------------------
引用 10 楼 icdbow 的回复:
挂个电话给供应商或厂家,他们会免费提供开发的SDK,都花了钱就不要不好意思,直接问他要,不用客气。

问厂家要了  啥都没有  就给个AT指令集 --------------------编程问答-------------------- 这种东西问厂家要
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,