短信猫发送短信没有回执

原创 2012年03月27日 14:50:02

       各位高手帮我看下。这个是用c#通过at指令发送手机短信的程序。

                 短信发出去接收方也收到短信了,但是没有任何的返回信息。串口好像也被一直占着。只有重新启用一下串口才能再次使用。。。。

 

 

 

        SerialPort port;

        //构造并初始化串口
        private void button2_Click(object sender, EventArgs e)
        {
            port = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);
            port.ReadTimeout = 20000;
            port.WriteTimeout = 20000;
            port.RtsEnable = true; 
            port.Open();
        }

        private void button1_Click(object sender, EventArgs e1)
        {
            string receiveData = string.Empty;
            int resultId = SendCommand("AT\r", ref receiveData, 3);
            resultId = SendCommand("AT+CMEE=1\r", ref receiveData, 3);
            resultId = SendCommand("AT+CNMI=2,1,0,1,1\r", ref receiveData, 3);
            resultId = SendCommand("AT+CMGF=0\r", ref receiveData, 3);
            resultId = SendCommand("AT+CSCS=\"HEX\"\r", ref receiveData, 3);
            resultId = SendCommand("AT+CMGS=16\r", ref receiveData, 3);
            if (receiveData.ToUpper().Contains(">"))
            {
                resultId = SendCommand("0031000D91688117407190F10000000112" + (char)(26), ref receiveData, 10);
            }
        }

        /// 发送各种命令       
        /// </summary>       
        /// <param name="Sendcmd">命令正文</param>       
        /// <param name="ReceiveData">返回结果</param>      
        /// /// <param name="Overtime">发送超时</param>     
        /// /// <returns>发送标识</returns>   
        private int SendCommand(string Sendcmd, ref string ReceiveData, int Overtime)
        {
            if (port.IsOpen)
            {
                try
                {
                    port.DiscardInBuffer(); //清空接收缓冲区        
                    port.Write(Sendcmd); //写入命令        
                    int num = 0, ret = 0;
                    while (num++ < Overtime)
                    {
                        System.Threading.Thread.Sleep(1000);
                        if (port.BytesToRead > 0) //存在需要读取的数据      
                        {
                            ret = port.BytesToRead;
                            break;
                        }
                        else
                        {
                            System.Threading.Thread.Sleep(1); //延时1秒 等待数据发送到端口上          
                        }
                    }
                    if (ret > 0) //如果要读取的数据存在 读取数据 并且 打开接收        
                    {
                        ReceiveData = port.ReadExisting(); //先读取再激活接收事件 ReadExecting()      
                    }
                    return ret;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return -1;
        }

       

相关文章推荐

Java調用短信貓發送短信

  • 2013年11月29日 08:27
  • 437KB
  • 下载

Android 发送短信 sms

Android 发送短信 sms   layout布局文件main.xml

At指令发送短信功能

  • 2012年05月02日 18:47
  • 6KB
  • 下载

发送短信必备包

  • 2013年11月19日 16:12
  • 380KB
  • 下载

android 发送短信的两种方式

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信;主要代码如下: Java代码   /**      * 直接调用短信接口发短信      *...

iOS--发送短信的demo

  • 2016年08月25日 14:10
  • 154KB
  • 下载

举例说明android如何实现发送短信的功能

短信和打电话一样,都是android手机的基本功能,下面以实例说明android如何实现发送短信的功能。 程序如下所示: import java.util.regex.Matcher; im...

发送短信控件(内附说明)

  • 2010年04月09日 11:13
  • 1.55MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:短信猫发送短信没有回执
举报原因:
原因补充:

(最多只允许输入30个字)