Mainar
دوشنبه 13 مهر 1394, 12:03 عصر
من دارم یه برنامه ارسال 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
ممنون میشم دوستان هر کی میدونه مشکل کجاست راهنماییم کنه
این متد ارسال:
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
ممنون میشم دوستان هر کی میدونه مشکل کجاست راهنماییم کنه