AftaB66
پنج شنبه 08 اردیبهشت 1390, 12:12 عصر
سلام دوستان
من دارم روي يه برنامه كار مي كنم كه ليستي از اس ام اس ها رو از طريق مودم GSM ارسال كنه و دليوري اونا دو هم دريافت كنه.. كه بعد از دريافت دليوري به كاربر پيغام لازم داده مي شه..
اما مشكلم اينه كه :
من قطعه كد زير رو براي دريافت پاسخ از سمت مودم نوشتم :
public string ReadResponse(SerialPort port, int timeout)
{
string buffer = string.Empty;
try
{
do
{
if (receiveNow.WaitOne(timeout, false))
{
string t = port.ReadExisting();
if (t.Contains("+CDS"))
{
portText += t;
return t;
}
portText += t;
buffer += t;
}
else
{
if (buffer.Length > 0)
throw new ApplicationException("Response received is incomplete.");
else
throw new ApplicationException("No data received from phone.");
}
}
while (!buffer.EndsWith("\r\nOK\r\n") && !buffer.EndsWith("\r\n> ") && !buffer.EndsWith("\r\nERROR\r\n"));
}
catch (Exception ex)
{
return ex.Message;
}
return buffer;
}
اما وقتي بعد از send شدن اس ام اس اين متد را با TimeOut = 7000 فراخواني مي كنم براي اس ام اس اول دليوري رو دريافت مي كنم ولي براي اس ام اس هاي بعدي نمي تونم دليوري رو بگيرم.. خودم فكر مي كنم راه حل كار توي همين Timeout باشه ولي هر چي سعي كردم نتونستم پيداش كنم..:افسرده:
ممنون مي شم اگه مي تونيد كمكم كنيد..
ضمنا اينو هم بگم كه من ليست اس ام اس ها رو توي يه حلقه For مي فرستم و توي اين حلقه بعد از ارسال اس ام اس و فراخواني متد ReadResponse به سراغ اس ام اس بعدي مي رم..
من دارم روي يه برنامه كار مي كنم كه ليستي از اس ام اس ها رو از طريق مودم GSM ارسال كنه و دليوري اونا دو هم دريافت كنه.. كه بعد از دريافت دليوري به كاربر پيغام لازم داده مي شه..
اما مشكلم اينه كه :
من قطعه كد زير رو براي دريافت پاسخ از سمت مودم نوشتم :
public string ReadResponse(SerialPort port, int timeout)
{
string buffer = string.Empty;
try
{
do
{
if (receiveNow.WaitOne(timeout, false))
{
string t = port.ReadExisting();
if (t.Contains("+CDS"))
{
portText += t;
return t;
}
portText += t;
buffer += t;
}
else
{
if (buffer.Length > 0)
throw new ApplicationException("Response received is incomplete.");
else
throw new ApplicationException("No data received from phone.");
}
}
while (!buffer.EndsWith("\r\nOK\r\n") && !buffer.EndsWith("\r\n> ") && !buffer.EndsWith("\r\nERROR\r\n"));
}
catch (Exception ex)
{
return ex.Message;
}
return buffer;
}
اما وقتي بعد از send شدن اس ام اس اين متد را با TimeOut = 7000 فراخواني مي كنم براي اس ام اس اول دليوري رو دريافت مي كنم ولي براي اس ام اس هاي بعدي نمي تونم دليوري رو بگيرم.. خودم فكر مي كنم راه حل كار توي همين Timeout باشه ولي هر چي سعي كردم نتونستم پيداش كنم..:افسرده:
ممنون مي شم اگه مي تونيد كمكم كنيد..
ضمنا اينو هم بگم كه من ليست اس ام اس ها رو توي يه حلقه For مي فرستم و توي اين حلقه بعد از ارسال اس ام اس و فراخواني متد ReadResponse به سراغ اس ام اس بعدي مي رم..