AT 命令 发送/接收短信 [英] AT commands Send/receive SMS

查看:65
本文介绍了AT 命令 发送/接收短信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 AT 命令的新手.我正在使用诺基亚 E71 发送和接收短信.我正在设计一个发送短信的应用程序,但我的代码不起作用.

I am new to AT commands. I am using Nokia E71 to send and receive SMS. I am designing an application for sending SMS, but my code is not working.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;

namespace AT_commands
    {
    public partial class Form1 : Form
        {
        SerialPort serialPort;
        public Form1()
            {
            InitializeComponent();
            }

        public void Form1_Load(object sender, EventArgs e)
            {
            this.serialPort = new SerialPort();
            this.serialPort.PortName = "COM23";
            this.serialPort.BaudRate = 9600;
            this.serialPort.Parity = Parity.None;
            this.serialPort.DataBits = 8;
            this.serialPort.StopBits = StopBits.One;
            this.serialPort.Handshake = Handshake.RequestToSend;
            this.serialPort.DtrEnable = true;
            this.serialPort.RtsEnable = true;
            this.serialPort.NewLine = System.Environment.NewLine;
            send_sms();
            }
        public bool send_sms()
            {
            label1.Text = "Loaded Successfuly";
            String SMSMessage = "Message to send";
            String CellNumber = "+923333333333";
            String messageToSend = null;
            if (SMSMessage.Length <= 160)
                {
                messageToSend = SMSMessage;
                }
            else
                {
                messageToSend = SMSMessage.Substring(0, 160);
                }
            if (this.IsOpen == true)
                {
                this.serialPort.WriteLine(@"AT" + (char)(13));
                Thread.Sleep(200);
                this.serialPort.WriteLine("AT+CMGF=1" + (char)(13));
                Thread.Sleep(200);
                this.serialPort.WriteLine(@"AT+CMGS=""" + CellNumber + @"""" + (char)(13));
                Thread.Sleep(200);
                this.serialPort.WriteLine(SMSMessage + (char)(26));
                return true;
                }
            return false;
            }
        public void Open()
            {
            if (this.IsOpen == false)
                {
                this.serialPort.Open();
                }
            }

        public void Close()
            {
            if (this.IsOpen == true)
                {
                this.serialPort.Close();
                }
            }

        public bool IsOpen
            {
            get
                {
                return this.serialPort.IsOpen;
                }
            }

        public void Dispose()
            {
            if (this.IsOpen)
                this.Close();
            }
        }
    }

请帮我处理这个代码!

推荐答案

这是我的代码

using System;
using System.IO.Ports;
using System.Threading;
using System.Windows.Forms;

namespace CSharp_SMS
{
  public partial class Form_SMS_Sender : Form
  {
    private SerialPort _serialPort;
    public Form_SMS_Sender()
    {
        InitializeComponent();
    }

    private void buttonSend_Click(object sender, EventArgs e)
    {
        string number = textBoxNumber.Text;
        string message = textBoxMessage.Text;

        //Replace "COM7"withcorresponding port name
        _serialPort = new SerialPort("COM7", 115200);   

        Thread.Sleep(1000);

        _serialPort.Open();

        Thread.Sleep(1000);

        _serialPort.Write("AT+CMGF=1
");

        Thread.Sleep(1000);

        _serialPort.Write("AT+CMGS="" + number + ""
");

        Thread.Sleep(1000);

        _serialPort.Write(message + "x1A");

        Thread.Sleep(1000);

        labelStatus.Text = "Status: Message sent";

        _serialPort.Close();
        }
    }
}

这是一个链接 http://circuitfreak.blogspot.com/2013/03/c-programming-sending-sms-using-at.html

这篇关于AT 命令 发送/接收短信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆