AT命令发送/接收SMS
我是AT命令的新手。 我正在使用诺基亚E71发送和接收短信。 我正在设计一个发送短信的应用程序,但我的代码无效。
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=1r"); Thread.Sleep(1000); _serialPort.Write("AT+CMGS="" + number + ""rn"); Thread.Sleep(1000); _serialPort.Write(message + "x1A"); Thread.Sleep(1000); labelStatus.Text = "Status: Message sent"; _serialPort.Close(); } } }
这是一个链接https://circuitfreak.blogspot.com/2013/03/c-programming-sending-sms-using-at.html
为什么不在form_load()本身打开端口连接,以后可以像以前那样在最后关闭它。
并在Form_Load()中执行这些操作:
string cmd = "AT"; port.WriteLine(cmd + "r"); port.Write(cmd + "r"); port.WriteLine("AT+CMGF=1");
并简化短信发送代码:
port.WriteLine("AT+CMGS="" + PhNumber + """); port.Write(Message + char.ConvertFromUtf32(26));
试试这种方式..你没有打开到串口的连接。 我试过了,它对我来说很好。
上述就是C#学习教程:AT命令发送/接收SMS分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
private void button1_Click(object sender, EventArgs e) { this.serialPort = new SerialPort(); this.serialPort.PortName = "COM5"; 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; serialPort.Open(); send_sms(); } public bool send_sms() { String SMSMessage = "gsm MESSAGE FROM .NET C#"; String CellNumber = "+9233333333333"; String messageToSend = null; if (SMSMessage.Length <= 160) { messageToSend = SMSMessage; } else { messageToSend = SMSMessage.Substring(0, 160); } if (serialPort.IsOpen) { 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; }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1004524.html