PDA

View Full Version : سوال: کند شدن برنامه در هنگام ارسال اس ام اس با gsm modem



patrik68
چهارشنبه 06 اردیبهشت 1396, 11:17 صبح
سلام خدمت دوستان برنامه نویس
من با gsm modem پیامک ارسال میکنم با اینکه از بک گراند ورکر استفاده کردم ولی همچنان هنگام ارسال پیامک برنامه برای تقریبا 5 ثانیه هنگ میکنه (فقط برای یک پیامک حالا گروهی بماند) نمیشه کاری کرد که این 5 ثانیه هم کاربر نبینه ؟ از کامپوننت kylix استفاده میکنم
ممنون

Javad_raouf
چهارشنبه 06 اردیبهشت 1396, 11:52 صبح
سلام وقتی از بک گراند ورکر استفاده کنید دیگه مشکلی نباید باشه اصولا
کدتون رو بزارید ضمن اینکه پیشنهاد می کنم از کامپوننت رایگان GsmComm استفاده کنید خیلی عالیه اوپن سورس هم هست

patrik68
چهارشنبه 06 اردیبهشت 1396, 12:34 عصر
private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)
{

ArrayList a = new ArrayList();
long lSendReference = 0;

for (int i = 0; i < Number.Items.Count; i++)
{
backgroundWorker2.ReportProgress(i);
axKylixSMS1.RequestDeliveryReport = cbRequestReport.Checked.CompareTo(false);
axKylixSMS1.SendInterval = int.Parse(txtSendInterval.Text);
axKylixSMS1.SendRetryTimes = int.Parse(txtSendRetryTimes.Text);
axKylixSMS1.SendTimeout = int.Parse(txtSendTimeout.Text);
axKylixSMS1.SMSValidity = 1;
if (cbWAPPush.Checked)
lSendReference = axKylixSMS1.SendWAPPush(Number.Text, txtSMSText.Text, txtWAPURL.Text);
else
{
lSendReference = axKylixSMS1.SendSMS(Number.Items[i].ToString(), txtSMSText.Text + i.ToString());
//Thread.Sleep(300);
}
if (lSendReference < 1)
{
axKylixSMS1.GetLastError(1);

}
}
MessageBox.Show("\nSent successfully. \n\nReference: " + lSendReference.ToString());
}

Javad_raouf
شنبه 09 اردیبهشت 1396, 09:38 صبح
من با BackgroundWorker تست کردم و ارسال کردم هیچ مشکلی نبود سیستم هم هنگ نکرد
اگر می تونید سورس کاملتون رو بزارید
شایدم مشکل از کامپوننت axKylixSMS باشه که خیلی بعید می دونم چون اصلا ربطی نداره

patrik68
دوشنبه 11 اردیبهشت 1396, 08:19 صبح
سلام دوست عزیز متاسفانه این مشکلو هنوز دارم همه چی در ارسال پیامک درسته و بدون مشکل کار میکنه ولی همین چند لحظه هنگ کردن برنامه حل نشده

alirezabigdeli
پنج شنبه 18 آبان 1396, 14:25 عصر
درود
منم همین مشکل رو دارم
با backgroundworker و thread تست کردم ولی بی فایده بود
از کامپوننت kylix استفاده میکنم

FirstLine
شنبه 20 آبان 1396, 14:47 عصر
با سلام
از کدام نوع و برند Gsm Modem استفاده میکنید؟
با تشکر

alirezabigdeli
شنبه 25 فروردین 1397, 20:18 عصر
با سلام
از کدام نوع و برند Gsm Modem استفاده میکنید؟
با تشکر

درود
از sim800c استفاده میکنم
برای اتصال به مودم توسط ترد از کد زیر استفاده میکنم



Thread t1 = new Thread(new ThreadStart(connect_gsm));
t1.SetApartmentState(ApartmentState.STA);
t1.Start();




void connect_gsm() // تابع اتصال به gsm با استفادهع از thread
{
AxKYLIXSMSLib.AxKylixSMS aa = new AxKYLIXSMSLib.AxKylixSMS();


aa.CreateControl();

aa.NewSMSReceived += new AxKYLIXSMSLib._DKylixSMSEvents_NewSMSReceivedEvent Handler(kylix_new_sms);
aa.NewDeliveryReport += new AxKYLIXSMSLib._DKylixSMSEvents_NewDeliveryReportEv entHandler(kylix_new_delivery);

aa.RegisterName = "00000000000000";
aa.RegisterCode = "000000000000000000000000000000000000000000";
aa.NeedLog = 1;
aa.ConnectionParameter = "com3,115200";

aa.IsConcatenatedSMS = 1;
aa.RequestDeliveryReport = 1;
aa.AutoDeleteAllReport = 0;
aa.AutoDeleteNewSMS = 0;



aa.Connect();
MessageBox.Show("connect");
aa.RejectIncomingCall = 1;




private void kylix_new_sms(object sender, AxKYLIXSMSLib._DKylixSMSEvents_NewSMSReceivedEvent e)
{
MessageBox.Show(e.text, e.number);
}
private void kylix_new_delivery(object sender, AxKYLIXSMSLib._DKylixSMSEvents_NewDeliveryReportEv ent e)
{
MessageBox.Show(e.number, "payam tahvil dade shod");
}

هنگ برنامه برای اتصال ، از بین رفته فقط
event handleهایی ک برای کامپوننت تعریف کردم کار نمیکنن
فکر کنم باید سرویس بنویسم که بلد نیستم ،تو نت هم اموزش کاملی پیدا نکردم

alirezabigdeli
شنبه 25 فروردین 1397, 20:45 عصر
الان اینو چطوری میتونم خیلی ساده ببرم تو سرویس؟