2012-08-25 | #1 (permalink) |
论坛管理员
注册日期: 2009-06-30
帖子: 861
|
CDMA猫用AT命令发中文短信(C#)
CDMA猫真是!@#¥#%(*,连PDU都不支持,只能发文本短信。而且发中文短信居然是UNICODE,无法在超级终端里输入。只能写程序。
网上这个问题谈论地比较多,做起来比较累,还偶尔会出乱码。还是将C#的成功代码帖一下吧。 转载请注明来源 void SendCHNSms(string content,string phone) { //中文CDMA发送,UNICODE编码字节 byte[] b = Encoding.BigEndianUnicode.GetBytes(content); //CDMA的AT命令手机号码前面不能加86,否则虽然显示成功发送,但短信中心回应错误代码5 if(phone.IndexOf("86")==0) { phone = phone.Substring(2); } //假设是COM3口 SerialPort sp = new SerialPort("com3"); //和GSM猫不同,波特率是115200,这个问题困扰了很久的说 sp.BaudRate = 115200; sp.Open(); //设置中文短信 sp.Write("AT+WSCL=6,4\r"); Thread.Sleep(500); //设置文本格式短信 sp.Write("AT+CMGF=1\r"); Thread.Sleep(500); //设置发送的号码和发送内容字节长度 sp.Write("AT+CMGS=\"" + phone + "\"," + b.Length + "\r"); Thread.Sleep(500); //写入 sp.Write(b, 0, b.Length); Thread.Sleep(500); //写入CTRL+Z结束短信内容,注意在UNICODE模式下需要两个字节,这个也是不能在超级终端下操作的原因 byte[] b2 = new byte[] { 0x00, 0x1a }; sp.Write(b2, 0, b2.Length); sp.Close(); }
__________________
让世界倾听我们的笛声 |