ممنونم از پاسختون
فکر کنم من سوالم رو ناقص پرسیدم
قبل از هر چیز بگم که من قصد دارم از Alphabet Size 16 بیتی استفاده کنم
طبق فرموده شما Length باید دو برابر تعداد کاراکترهای Message باشه
اما منظور من Length نیست بلکه به عنوان مثال در ارسال پیغام "تست" با مسیج سنتر "+9891962978184" و به مقصد "+989121234567" باید کدPDU به شکل "AT+CMGS=20
0891891969928781F411000C918919123254760008AA06062A 0633062A" داشته باشم .
سوال من عدد 20 در این مثال هست ، باید جلوی AT+CMGS= عدد 20 رو قرار بدم بعد در خط بعدی کد PDU رو بزارم
لطفا راهنمایی کنید این عدد رو با کدام خاصیت این کامپوننت ها (SMSPduLib یا AtSMS) میتونم بدست بیارم؟
ضمنا شما فرمودین با خواص خود کامپوننت (SMSPduLib یا AtSMS) میتونم ارسال رو هم انجام بدم ممکنه راهنمایی کنید.
نمونه کدی که استفاده میکنم به این شکله:
SMSPDULib.SMS sms = new SMSPDULib.SMS();
sms.Direction = SMSPDULib.SMSDirection.Submited;
sms.PhoneNumber = txtPhoneNumber.Text;
sms.ServiceCenterNumber ="\"+9891962978184\"";
sms.ValidityPeriod = newTimeSpan(4, 0, 0, 0);
sms.Message = txtMessage.Text;
string pduSource = sms.Compose(SMSPDULib.SMS.SMSEncoding.UCS2);
txtHexadecimalPDUMessage.Text = pduSource;
port.Open();
port.Write("AT\r\n");
port.WriteLine("AT+CMGF=0\r\n");
port.WriteLine("AT+CMGS=" pduSource);
port.WriteLine("\r\n" + '\x001a');
با توجه با این کدها چطور باید عدد 20 در این مثال و بعد PDU رو پاس کنم؟؟؟

نوشته شده توسط
faravaghi
سلام،
طول پیام میشه طول همون رشته که PDU توی اون قرار داره!!
اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟
برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.