# Native Code > برنامه نویسی موبایل > سوال: عدم ارسال SMS با دستورات AT در گوشی N73

## man4toman

با سلام
من از کد زیر برای ارسال SMS استفاده میکنم:
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;

namespace WindowsFormsApplication5
{
    /// <summary>
    /// Important AT Command to this Program :
    /// 1:  AT+CPMS="SM"                           --- Get Information About SimCard
    /// 2:  AT+CGML="REC READ","REC UNREAD","ALL"     --- To Read Message
    /// 3:  AT+CGMR=#  --- To Read Message
    /// 4:  AT+CGMD=#  --- To Delete Message
    /// 5:  AT+CMGS    --- To Send Message
    /// </summary>

    public partial class SMS : Form
    {
        string PortNameSTR = "COM4";
        int BitRate = 460800;
        string atCommandStr = string.Empty;
        SerialPort comPort = new SerialPort();
        public SMS()
        {
            InitializeComponent();
            //COM SETTING
            comPort.PortName = PortNameSTR;
            comPort.BaudRate = BitRate;
            comPort.Parity = Parity.None;
            comPort.StopBits = StopBits.One;
            comPort.DataBits = 8;
            comPort.ReadBufferSize = 10000;
            comPort.ReadTimeout = 1000;
            comPort.WriteBufferSize = 10000;
            comPort.WriteTimeout = 10000;
            comPort.RtsEnable = true;
        }

        //5:  AT+CMGS    --- To Send Message
        private void sendSms()
        {
            if (!comPort.IsOpen)
                comPort.Open();
            comPort.DiscardInBuffer();

            comPort.DiscardOutBuffer();
            //Exam : 
            //AT+CMGS="09155154545"
            //message text
            //Ctrl+Z : Char.ConvertFromUtf32(26)
            //Enter : (char)13
            atCommandStr = "AT+CMGS=" + Char.ConvertFromUtf32(34) + textBox1.Text
                    + Char.ConvertFromUtf32(34) + (char)13 + richTextBox1.Text
                    + Char.ConvertFromUtf32(26);
            comPort.WriteLine(atCommandStr + (char)13);
            //read immediately response
            richTextBox1.Text = comPort.ReadExisting();
            comPort.Close();
        }



        private void button1_Click(object sender, EventArgs e)
        {
            sendSms();
        }

        private void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            int res;
            res = richTextBox1.Text.Length / 100;
            label1.Text = richTextBox1.Text.Length.ToString();
            label2.Text = "(" + res + ")";
        }

    }
}اما SMS (انگلیسی) سند نمیشه.نه در گوشی 6630 و نه N73.
هم بصورت 0911... و هم بصورت 98911... ارسال کردم ولی چیزی سند نمیشه.
گوشی از پورت 4 با کابل usb وصله.
منتظر کمک و راهنمایی شما هستم.
باتشکر

----------


## reza6384

فکر کنم مشکل شما به احتمال زیاد از این بخش کدتون باشه :


atCommandStr = "AT+CMGS=" + Char.ConvertFromUtf32(34) + textBox1.Text
                    + Char.ConvertFromUtf32(34) + (char)13 + richTextBox1.Text
                    + Char.ConvertFromUtf32(26);
            comPort.WriteLine(atCommandStr + (char)13);


ببینید ، اول باید حساب کنید که طول رشته PDU شما چقدره که توی بخش PDU  ENCODING / Decoding بحث شده.

این رو تست کنید :


comport.writeline("AT+CMGF=0") 
threading.thread.sleep(100)
comport.WriteLine("AT+CMGS=14")
threading.thread.sleep(100)
comport.writeline("0031000B819051154554F50000FF00" + CHR(26) )


با این کد یک sms خالی به شمارتون ارسال میشه. در ضمن بهتره اول pdu رو توی hyper terminal  تست کنید. این رو تست کنید اگر جواب نگرفتین بگین.

----------


## noorsoft

دوست عزیز برای اتصال با پورت USB از اکتیوایکسهای موجود در زبانهای برنامه نویسی نمی شه استفاده کرد 
در واقع شماره این پورتها توسط این کنترلها باز نمی شن برای اینکار شما دو راه دارین یا باید روی گوشی هایی کار کنید که به Com پورت وصل میشن و یا برای استفاده از پورت usb  از توابع Api  استفاده کنید

----------

