من دارم یه برنامه ارسال sms با gsm modem مینویسم.مشکلم اینه که کدهای ارسالم متن خالی رو میفرستن اما هیچ متنی رو نمیتونه ارسال کنه.و خطای 305 میده.
این متد ارسال:
public string sendMsg(SerialPort port, string PhoneNo, string Message)
{
string s = "";
bool ERROR = false;
port.WriteLine("ATE1" + "\r");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.WriteLine("AT" + "\r");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.WriteLine("AT+CNMI=?\r\n");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.WriteLine("AT+CMGF=1\r\n");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.Write("AT+CSCA=\"+9898933*******\"" + "\r\n");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.Write("AT+CMGS=\"+9891********\"" + "\r\n");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
port.Write(Message + (char)26 + "\r");
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(15); if (i == 100) ERROR = true;
}
//s += "\r" + port.ReadExisting();
s = port.ReadExisting();
port.Close();
return s;
}
و این هم متد تعریف port:
public SerialPort OpenPort(string p_strPortName, int p_uBaudRate, int p_uDataBits, int p_uReadTimeout, int p_uWriteTimeout)
{
receiveNow = new AutoResetEvent(false);
SerialPort port = new SerialPort();
try
{
port.PortName = p_strPortName; //COM1
port.BaudRate = p_uBaudRate; //9600
port.DataBits = p_uDataBits; //8
port.StopBits = StopBits.One; //1
port.Parity = Parity.None; //None
port.ReadTimeout = p_uReadTimeout; //300
port.WriteTimeout = p_uWriteTimeout; //300
port.Encoding = Encoding.GetEncoding("iso-8859-1");
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;
}
catch (Exception ex)
{
throw ex;
}
return port;
}
فقط sms خالی رو ارسال میکنه و هیچ نوشته ای حتی یک حرف رو هم نمیتونه بفرسته و خطای 305 میده.
این هم خروجی برنامه در حالتی که خطا میده:
ATE1
OK
AT
OK
AT+CNMI=?
+CNMI: (0,1,2,3),(0,1,2,3),(0,2),(0,1,2),(0,1)
OK
AT+CMGF=1
OK
AT+CSCA="+9898933*******"
OK
AT+CMGS="+98915*******"
>
+CMS ERROR: 305
ممنون میشم دوستان هر کی میدونه مشکل کجاست راهنماییم کنه