صفحه 9 از 10 اولاول ... 78910 آخرآخر
نمایش نتایج 321 تا 360 از 377

نام تاپیک: PDU Encoding And Decoding

  1. #321

    نقل قول: قسمت هشتم : ارسال یک پیام بدون محتوا

    توی دستور AT+CNMI=3,1
    ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.

  2. #322

    نقل قول: قسمت هشتم : ارسال یک پیام بدون محتوا

    این SR چیه
    من توی فرمان ها فقط MT,ME,SM رو دیدم

  3. #323
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: قسمت هشتم : ارسال یک پیام بدون محتوا

    سلام،
    همین جور شلاقی سوال کردی!
    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    متاسفانه AT+CMGR=?
    error می ده.
    آیا شما در جواب دستور AT جوابی که میگیرین OK است یا Error ؟
    اگه OK باشه پس نتیجتا این جوری برداشت میشه که وسیله ای که شما دارین از این دستور پشتیبانی نمیکنه!!! ولی اگه Error باشه یعنی شما به مودم متصل نیستید.
    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    توی دستور AT+CNMI=3,1
    ما توی قسمت اول یعنی mode فقط 0و1و2 داریم . چطور شما 3 رو آوردید.
    اینکه مودم شما چیرو پشتیبانی می کنه به خودش مربوطه!!!
    مگه من گفتم حتما اونی که من نوشتم وحی منزله!!!!
    مودمی که من دارم DWM-152 است و مثل اینکه شما گفتین حالت 3 نداره و دارم از روش دومی که گفتم استفاده می کنم. البته اینم بگم تو نرم افزارم اومدم حالتهای مختلف رو دیدم، از بهترین تا بدترین، به ترتیب هر کدوم جواب داد از اون استفاده می کنم.
    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    این SR چیه
    من توی فرمان ها فقط MT,ME,SM رو دیدم
    AT+CPMS="SR"

    این دستور هم مثل نقل بالا است. تو بعضی از مودم ها این رو داره.SR به معنی Status Report است.
    یعنی گزارش وضعیت تو بعضی مودم ها رو می تونید این جوری بخونید. اگه حالت 3 تو مودمی نباشه قاعدتا این رو هم نداره پس بهتره از حالت دوم استفاده کنید و پارامترها رو این جوری تنظیم کنید:
    AT+CNMI=1,2,0,1,0

    جوابش فقط رو هوا میاد، اگه وقتی اومد نتونستی بگیری از دست میره و دیگه هیچ!!! بدی کار همینه.
    یک مدل مودم دیلینک هست، DWM-156 :
    AT+CMNI=3,1,0,2,0
    AT+CPMS="SR"

    این چیزایی که گفتم رو پشتیبانی میکنه. در ضمن در مورد دستور:
    AT+CUSD=1,"*140*11#",15

    که برای گرفتن شارژ است رو به چه زیبایی براتون جواب میده. اگه کسی خواست مودم بخره این مدل را انتخاب کنه بهتره.
    یا حق

  4. #324

    نقل قول: PDU Encoding And Decoding

    AT رو ok می ده SMS هم می فرستم ولی نمی دونم چرا
    AT+CMGR رو Error می ده

  5. #325

    نقل قول: PDU Encoding And Decoding

    یک دنیا تشکر و قدردانی فراوان و ممنون از اینکه وقت گذاشتین

  6. #326

    نقل قول: PDU Encoding And Decoding

    یه سوال دیگه .ببخشید انیقدر سوال می کنم
    می خوام توی یه 2 تا thread ( همزمانی ) دو تا SMS بفرستم
    اینکار امکان پذیر هست یا باید یکی یکی بفرستم نمی شه چند تا بطور همزمان بفرستم
    من می خوام چند تا رو بفرستم باید یکی بفرستم منتظر بمونم تا جوابش بیاد بعد یکی دیگه بفرستم .
    2 - این سایت های فرستادن sMS چطور اینقدر سریع SMS ها رو می فرستند .مثل payamsms

  7. #327
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    AT رو ok می ده SMS هم می فرستم ولی نمی دونم چرا
    AT+CMGL رو Error می ده
    سلام،
    آیا از مودم ارسال می کنید یا موبایل؟ میشه مدل وسیله ای که باهاش کار می کنید رو بدونم؟
    در ضمن یک دستور دیگه است که تقریبا همین کار رو انجام میده، لطفا این دستور رو امتحان کن ببین چطوریه:
    AT+CMGL=?            LIST SMS MESSAGES FROM PREFERRED STORE

    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    یه سوال دیگه .ببخشید انیقدر سوال می کنم
    می خوام توی یه 2 تا thread ( همزمانی ) دو تا SMS بفرستم
    اینکار امکان پذیر هست یا باید یکی یکی بفرستم نمی شه چند تا بطور همزمان بفرستم
    من می خوام چند تا رو بفرستم باید یکی بفرستم منتظر بمونم تا جوابش بیاد بعد یکی دیگه بفرستم .
    این کار خوبه از نظر تئوری خوبه، یعنی وقتی فکر میکنی می بینی چقدر عالیه! دیگه لازم نیست اینقدر منتظر باشیم تا یکی ارسال بشه بعد یکی دیگه بفرستیم!
    من یک سوال میپرسم شما جواب بده.
    سوال : اگه شما یک ماشین داشته باشین، در آن واحد چند نفر می تونن پشت فرمون باشن؟
    بزارید جواب رو خودم بدم:
    جواب: منطقیه فقط یکی تا بتونید اون کارایی رو از ماشین داشته باشید. مودم هم همینه، یعنی وقتی دارید با کسی تماس میگیرید آیا میشه همزمان با یکی دیگه تماس بگیرید.(یعنی زمانی که داره شماره میگیره!)
    کامپوتر با این همه عظمتش در آن واحد یک کار بیشتر نمی تونه بکنه!!!!! از این پورت COM چه توقعی دارید. این که تازه زیر مجموعه CPU است.
    بعدشم وقتی با یک threadکار میکنید مدیریتش هم راحتره یعنی بعضی وقتها میشه آنتن میپره، مودم یک دفعه قطع میشه، اگه سیم کارت اعتباری باشه شارژ تموم کنه،.... و هزار اما و شاید.
    پس بهتره زیاد بفکر راههای خیلی خوب نباشین. چون بعضی وقت ها همین راههای خوب هم واقعا خیلی خوب هستن.
    نقل قول نوشته شده توسط aloneman2005 مشاهده تاپیک
    یه سوال دیگه .ببخشید انیقدر سوال می کنم
    2 - این سایت های فرستادن sMS چطور اینقدر سریع SMS ها رو می فرستند .مثل payamsms
    این سایتها میان از امکانات مخابرات استفاده میکنند نه مودم های معمولی و یا موبایل!!
    چطور میشه یک شب عید نوروز مخابرات اعلام میکنه در دقیقه اول سال تحویل بیش از چند 10 میلیون پیام رو جابجا کرده!!!

  8. #328

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط ahmadpj مشاهده تاپیک
    برای این تاپیک واقعا زحمت زیادی کشیدن و برای من هم خیلی مفید بود، اصول رو با حوصله و دقت خوبی شرح دادن...
    با این حال بعد از چند روز کلنجار رفتن با مسیج های فارسی چند پارتی، و البته دریافت مسیج هایی به زبان چینی و کره ای !! نهایتا مجبور شدم پورت مودم جی اس ام خودمو در حالتی که با نرم افزار ساخت شرکت خودش کار میکرد مانیتور کنم و ببینم واقعا چه کدها و اطلاعاتی میفرسته
    بخشی از این کدها رو میذارم که ببینیم روشها و داده ها میتونن شکل های دیگه ای هم داشته باشن:

    Length 12: AT+CMGS=153.
    Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 01 062806310627064A00200627064A064606A906470020064A06 A9002006450633064A062C002006280627002006860646062F 064A06460020067E06270631062A064A0020062F0631063306 2A0020064106310633062A0627062F06470020062806340647 002006280627064A062F002006450635064A0628062A002006 32064A0627062F064A
    Length 12: AT+CMGS=153.
    Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 02 002006A90634064A062F060C00200645062B06440627002006 280627064A062F002006280647002006280633062A06470020 06470627064A0020003600360020062A0627064A064A002006 2A06420633064A06450634002006A90631062F002006480020 06280639062F0020062706480646002006280633062A064700 200647062700200631
    Length 12: AT+CMGS=153.
    Length 320: 0691891901500041FF0B81MyPhon1234 0008 8C 050003 02 04 03 0648002006340645062706310647002006AF06300627063106 4A002006A90631062F00200648002006280627002006340645 062706310647002006A906440020067E064A06270645064706 270020064106310633062A0627062F0020062706440628062A 06470020062E064A0644064A0020062F064606AF0020064800 200641064606AF0020
    Length 11: AT+CMGS=75.
    Length 164: 0691891901500041FF0B81MyPhon1234 0008 3E 050003 02 04 04 062F0627063106470020064800200627064A06460020064A06 4700200628062E0634002006A906480686064A06A906340020 06280648062F



    اگر پیامک فارسی ما تا 70 کاراکتر باشه اون رو در یک پیامک میفرسته، اما اگر از 70 تا بیشتر شد اونوقت میاد 66 تا 66 تا جدا میکنه و میفرسته. دلیلش هم همون چیزیه که دوستان گفتن، بحث همون بایتهای اضافی.
    ثانیا کدها و مقدار ثابت رو چیزهای دیگه ای در نظر گرفته.
    من فقط به جای شماره ی خودم نوشتم MyPhon1234 که یهو هوس نکنین برای من مسیج انبوه بفرستین!

    باز هم از دو سه نفری که برای این تاپیک اینقدر وقت گذاشتن به سهم خودم تشکر میکنم...
    موفق باشید
    ***************************
    باسلام وتشکر فراوان
    یه سوالی برام پیش آمده من sample شما را تست کردم و جواب هم گرفتم اما دوباره که دارم تست می کنم
    با اینکه بعد از ارسال هر پارت جواب OK را می گیرم اما این بار هیچ sms دریافت نمی کنم . اشکال از کجا می تونه باشه؟
    با سپاس

  9. #329

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط faravaghi مشاهده تاپیک
    سلام،
    شما بیا ابتدا دستور زیر را تست کن :
    AT
    OK

    اگه جواب OK رو گرفتی پس مشخصه مودم درست متصل شده و شما الان به اون Connect هستید. حالا برای تست دستورات می تونید این کار رو انجام بدید:
    Test Command
    AT+CMGR=?

    Response
    OK

    اگه جواب بازم OK بود معلوم میشه مودم این دستورات رو پشتیبانی می کنه. بعد برای خوندن پیام ها باید از این دستور با همین فرمت استفاده کنید:
    Write Command
    AT+CMGR=<index>[,<mode>]

    Parameters
    <index> integer type; value in the range of location numbers supported by the associated memory
    <mode> 0 normal
    1 not change status of the specified SMS record
    همین جا بگم، وقتی پیامی دریافت می کنید مثل کد زیر میاد که میگه یه پیام جدید اومده و در سیم کارت در جایگاه 11 قرار داره:
    +CMTI: "SM",11

    وقتی می خواین این پیام جدید رو بخونید باید این دستور را بکار ببرید و جوابش هم به صورت زیر است:

    AT+CMGR=11
    +CMGR: 1,,159
    06918919015000400C91891915******0008117042022072818C0500038005010627064506310648
    0632002006280631062706CC002006340647062F0627002006 480642062A00200646062F06270631
    06CC06450020060C0020062706320020063906340642002006 4506AF064800200642063506470020
    06A90647002006450627002006480642062A00200646062F06 27063106CC06450020060C00200628
    06270020062D

    OK

    بجای قسمتی از شماره تلفن * گذاشتم. ترجمه این پیام که البته یک پیام چند قسمتی است این میشه:

    From:98915******* Time:2011/07/24 08:02:27 ب.ظ GMT+4.5
    Total: 5 Part: 1
    امروز برای شهدا وقت نداریم ، از عشق مگو قصه که ما وقت نداریم ، با ح

    وقتی هم که پیامی ارسال می کنید:

    AT+CMGS=32
    >0691891901500031840B81905*******F50008FF12063306440627064500200645062D0645062F<ctl+z >

    +CMGS: 38

    OK

    +CDS: 25
    0691891901500006260B81905*******F5118010419433811180104194838100

    این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:

    SMS_STATUS_REPORT
    Phone Number:0915*******
    Send time:2011/08/01 02:49:33 PM
    Receive time:2011/08/01 02:49:38 PM
    Status: Success
    *******************************
    سلام
    من در ارسال اس ام اس چند پارتی فارسی مشکل دارم یعنی یه با می فرسته ویه بار نه میشه منظورم پست 307 هست.می شه لطف کنید و PDU کامل متن بالا را بزارید تا تست کنم
    با تشکر

  10. #330
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    این PDU رو تست کنید. البته بگم بجای شماره تلفن که 0915123456 است شماره مورد نظر را بنویسید.
    PDU Number:1    Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F050106270645063106480632002006280631062706CC0020 06340647062F0627002006480642062A00200646062F062706 3106CC06450020060C00200627063200200639063406420020 064506AF06480020064206350647002006A906470020064506 27002006480642062A00200646062F0627063106CC06450020 060C0020062806270020
    PDU Number:2 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F0502062D06360631062A0020063406CC0637062706460020 06330631064506270646002006AF06310645002006AF064606 270647002006270633062A0020060C00200627063200200628 06470631002006450644062706420627062A0020062E062F06 27002006480642062A00200646062F0627063106CC06450020 060C0020062F06310020
    PDU Number:3 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F050306A90648064106470020062A06460020063A06CC0631 062A064506270646002006AF06480634064700200646063406 CC0646002006270633062A0020060C00200628064706310020 063306410631002006A9063106280020064806280644062700 2006480642062A00200646062F0627063106CC06450020060C 00200647063100200686
    PDU Number:4 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F05040646062F002006A906470020062E0648062800200627 0633062A00200634064706CC062F0627064606470020062806 4506CC063106CC06450020060C0020063206CC062806270633 062A00200648064406CC0020062D06CC0641002006A9064700 2006450627002006480642062A00200646062F0627063106CC 06450021062706440647
    PDU Number:5 Length For AT:57
    0691891901500051000B819051214365F70008FF2B060804B4 9F0505064500200639062C06440020062706440648064406CC 06A900200627064406410631062C

    اگه کامپوننت ATSMS رو دانلود کنید همین که من دادم رو بهتون میده. به نظر من یک کامپوننت کامله
    اینم لینکش: ارسال SMS به وسیله گوشی....مودم.....اینترنت

  11. #331

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط faravaghi مشاهده تاپیک
    سلام،
    این PDU رو تست کنید. البته بگم بجای شماره تلفن که 0915123456 است شماره مورد نظر را بنویسید.
    PDU Number:1    Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F050106270645063106480632002006280631062706CC0020 06340647062F0627002006480642062A00200646062F062706 3106CC06450020060C00200627063200200639063406420020 064506AF06480020064206350647002006A906470020064506 27002006480642062A00200646062F0627063106CC06450020 060C0020062806270020
    PDU Number:2 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F0502062D06360631062A0020063406CC0637062706460020 06330631064506270646002006AF06310645002006AF064606 270647002006270633062A0020060C00200627063200200628 06470631002006450644062706420627062A0020062E062F06 27002006480642062A00200646062F0627063106CC06450020 060C0020062F06310020
    PDU Number:3 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F050306A90648064106470020062A06460020063A06CC0631 062A064506270646002006AF06480634064700200646063406 CC0646002006270633062A0020060C00200628064706310020 063306410631002006A9063106280020064806280644062700 2006480642062A00200646062F0627063106CC06450020060C 00200647063100200686
    PDU Number:4 Length For AT:153
    0691891901500051000B819051214365F70008FF8B060804B4 9F05040646062F002006A906470020062E0648062800200627 0633062A00200634064706CC062F0627064606470020062806 4506CC063106CC06450020060C0020063206CC062806270633 062A00200648064406CC0020062D06CC0641002006A9064700 2006450627002006480642062A00200646062F0627063106CC 06450021062706440647
    PDU Number:5 Length For AT:57
    0691891901500051000B819051214365F70008FF2B060804B4 9F0505064500200639062C06440020062706440648064406CC 06A900200627064406410631062C

    اگه کامپوننت ATSMS رو دانلود کنید همین که من دادم رو بهتون میده. به نظر من یک کامپوننت کامله
    اینم لینکش: ارسال SMS به وسیله گوشی....مودم.....اینترنت
    ***************

    وقتی دستور atcommand زیر را اجرا می کنم پیغام خطایی نمی گیرم از طرفی اس ام اس هم دریافت نمی کنم به نظر شما اشکال از کجا می تونه باشه؟
    SerialPort1.WriteLine("AT&F" & vbCrLf)
    SerialPort1.WriteLine("AT" & vbCrLf)
    SerialPort1.WriteLine("AT+CPMS=""MT"",""MT"",""MT" "" & vbCrLf)
    M = M + SerialPort1.ReadExisting
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
    SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F0501062706450631064806320 02006280631062706CC002006340647062F062700200648064 2062A00200646062F0627063106CC06450020060C002006270 63200200639063406420020064506AF0648002006420635064 7002006A90647002006450627002006480642062A002006460 62F0627063106CC06450020060C0020062806270020" & vbCrLf & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
    SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F0502062D06360631062A00200 63406CC063706270646002006330631064506270646002006A F06310645002006AF064606270647002006270633062A00200 60C00200627063200200628064706310020064506440627064 20627062A0020062E062F0627002006480642062A002006460 62F0627063106CC06450020060C0020062F06310020" & vbCrLf & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
    SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F050306A906480641064700200 62A06460020063A06CC0631062A064506270646002006AF064 80634064700200646063406CC0646002006270633062A00200 60C00200628064706310020063306410631002006A90631062 800200648062806440627002006480642062A00200646062F0 627063106CC06450020060C00200647063100200686" & vbCrLf & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=153" & vbCr)
    SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF8B060804B49F05040646062F002006A906470 020062E06480628002006270633062A00200634064706CC062 F06270646064700200628064506CC063106CC06450020060C0 020063206CC062806270633062A00200648064406CC0020062 D06CC0641002006A90647002006450627002006480642062A0 0200646062F0627063106CC06450021062706440647" & vbCrLf & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=57" & vbCr)
    SerialPort1.WriteLine("0691891901500051000B81***** *****F70008FF2B060804B49F0505064500200639062C06440 020062706440648064406CC06A900200627064406410631062 C" & vbCrLf & Chr(26))

    آخرین ویرایش به وسیله M.Fekri : سه شنبه 01 شهریور 1390 در 14:25 عصر

  12. #332
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    شما بعد از ارسال هر پیام باید یک فالا زمانی مشخص صبر نمایید تا جواب ارسال را دریافت نمایید.
    اگه پیام شما ارسال شده باشه علاوه بر OK ، یک شماره مرجع به شما میده. اینو من تو تصویرتون نمی بینم.
    +CMGS: 38

    من توصیه می کنم از Hyper terminal برای ارسال و تست استفاده کنید.
    فایل های ضمیمه فایل های ضمیمه

  13. #333

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط faravaghi مشاهده تاپیک
    سلام،
    شما بعد از ارسال هر پیام باید یک فالا زمانی مشخص صبر نمایید تا جواب ارسال را دریافت نمایید.
    اگه پیام شما ارسال شده باشه علاوه بر OK ، یک شماره مرجع به شما میده. اینو من تو تصویرتون نمی بینم.
    +CMGS: 38

    من توصیه می کنم از Hyper terminal برای ارسال و تست استفاده کنید.
    ************
    سلام و با تشکر از اینکه وقت گذاشتین
    من امروز دوباره تست کردم و دیدم که پیام 2 پارتی را می فرسته و +cmgs را هم دریافت کردم اما نکته جالب اینکه برای پیام بیشتر از 2 صفحه با اینکه برای هر پارت +cmgs را دریافت مکنم + پیام ok اما گوشی پیامی دریافت نمی کنه؟

  14. #334
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    این بعضی وقت ها پیش میاد. یعنی ممکنه ترافیک مخابرات باعث این بشه!!!!
    باید یه نکته هم براتون بگم:
    وقتی قصد دارید پیامهای چند قسمتی بفرستید، باید آن را به قسمت های مختلف بشکنین و بعد بفرستید. یعنی برای پیامهای فارسی حداکثر 70 کاراکتر!!!!
    اینو گفتم تا بدونید اصلا ربطی نداره پیام شما 2، 3 و یا چند قسمتی باشه. اگه یکی رفت بقیه باید بره، مگر اینکه خط مشکل داسته باشه، سیم کارت شارژ نداشته باشه و یا مخابرات بازی دربیاره. هر قسمت به عنوان یک پیام میره.

  15. #335

    نقل قول: PDU Encoding And Decoding

    ممنون
    من با hyper هم تست کردم اما در این حالت دیگه cmgs+ را دریافت نمی کنم
    hyper.jpg

  16. #336
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    اگه گفتین PDU شما 153 کاراکتر است، تو این تصویر که هیچی نفرستادین؟
    در ضمن شما که با VB کار میکنید و این تاپیک رو تا تهش خوندین بهترین چیز اینه که از کامپوننتی که بهتون گفتم استفاده کنید. اولش یکم گیر داره، ولی شما که با مفاهیم آشنایید و دستورات رو میشناسید این کامپوننت خیلی کاراست.
    یکبار امتحان کنید

  17. #337

    نقل قول: PDU Encoding And Decoding

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

  18. #338

    نقل قول: PDU Encoding And Decoding

    در پست 331 من همون کد ایجاد شده توسط شما را ارسال می کنم ویک delay iهم بین هر گذاشتم چیزی دریافت نکردم از طرفی هم با کامپوننتی که شما گفتین پیام 2 پارتی را مفرسته و دریافت هم می کنم اما وقتی متن بیشتر از 2 پارت باشه با اینکه +Cmgs را هم گرفتم اما چیزی دریافت نکردم !

  19. #339
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    شما دقیقا چه جیزی می خواهید؟
    آیا تایید ارسال را نمی گیرید؟ یا اینکه وقتی پیام ارسال می کنید و جواب ارسال را هم میگیرین ولی به شماره مورد نظر نمیرسه؟

  20. #340

    نقل قول: PDU Encoding And Decoding

    این هم کد vb به همراه pdu ایجاد شده توسط کامپوننتی که زحمت اش را کشیدید:
    SerialPort1.WriteLine("AT" & vbCr)
    SerialPort1.WriteLine("AT+CPMS=""MT"",""MT"",""MT" "" & vbCr)
    SerialPort1.WriteLine("AT+CMGF=0" & vbCr)
    SerialPort1.WriteLine("AT+CMGS=152" & vbCr)
    SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF8B060804888E0301062706CC06460020063306C C0633062A064500200628062700200647062F0641002006270 6CC062C0627062F002006CC06A9067E06270631068606AF06C C002006480020062B0628062A00200627064406A9062A06310 648064606CC06A906CC0020062706370644062706390627062 A00200645062C0645064806390647002006470627" & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=152" & vbCr)
    SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF8B060804888E030206CC0020064806310632063 406CC0020063706310627062D06CC002006AF0631062F06CC0 62F0647002006270633062A0020000D000A062706CC0646002 0063306CC0633062A0645002006420627062F0631002006280 64700200645062F06CC063106CC062A002006A9064406CC064 7002006390645064406CC0627062A002006450627" & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    SerialPort1.WriteLine("AT+CMGS=126" & vbCr)
    SerialPort1.WriteLine("0691891901500071000A81***** *****0008FF71060804888E0303064406CC002006480020062 7062F0627063106CC00200645062C064506480639064700200 64806310632063406CC0020062706390645002006270632002 0062B0628062A0020064606270645002006270639063606270 621002006A90644062706330647062706CC0020" & Chr(26))
    System.Threading.Thread.Sleep(10000)
    M = M + SerialPort1.ReadExisting
    آخرین ویرایش به وسیله M.Fekri : سه شنبه 01 شهریور 1390 در 14:26 عصر

  21. #341

    نقل قول: PDU Encoding And Decoding

    به شماره مورد نظر نمی رسه آن هم در زمانی که بیش از 2 پارت باشه

  22. #342

    نقل قول: PDU Encoding And Decoding

    با ایرانسل بدون مشکل تا 5 پارت را می فرسته.مشکل هممراه اول بود

  23. #343
    کاربر دائمی آواتار reza6966
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    شیراز
    پست
    234

    نقل قول: PDU Encoding And Decoding

    با سلام خدمت همه اساتید
    من یه پروژه دارم که باید برنامه ارسال و دریافت اس ام اس به وسیله AT COMMANDS و مودم جی اس ام رو پیاده سازی کنم
    من خیلی جستجو کردم و چندین نمونه رو هم پیدا کردم اما همه با پورت سریال پیاده سازی شده بودند و من نتونستم این برنامه ها رو تست کنم , من این برنامه ها رو اینجا قرار میدم , دوستان کسی این برنامه ها رو تست کرده ؟؟؟ آیا کار می کنند ؟؟؟

    کسی از دوستان نمونه های تست شده دیگری ندارند ؟؟؟

    ممنون می شم کمکم کنید
    فایل های ضمیمه فایل های ضمیمه

  24. #344

    نقل قول: PDU Encoding And Decoding

    سلام
    وقتی هم که پیامی ارسال می کنید:

    AT+CMGS=32
    >0691891901500031840B81905*******F50008FF12063306440627064500200645062D0645062F<ctl+z >

    +CMGS: 38

    OK

    +CDS: 25
    0691891901500006260B81905*******F5118010419433811180104194838100

    این عدد 26 که در مبنای HEX است رو اگه تبدیل به دسیمال کنی میشه همون 38 که بالا دیدیم. یعنی اگه پیامی ارسال شد یک کد(38) میده، که وقتی گزارش تایید ارسال اومد بفهمیم مال کدوم پیام بوده. که ترجمه کد بالا میشه این:
    *************
    +CDS همیشه دریافت نمیشه.علت اش را می شه توضیح دهید؟
    با سپاس فراوان

  25. #345
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    دریافت نمی شوند یا بعضی وقت ها دریافت نمی شوند؟
    اگه دریافت نمی شوند باید برین
    AT+CNMI

    رو تنظیم کنید.
    اگه بعضی وقتها دریافت نمیشه، گفتم تو این حالت یک عیبی که داره اینه که اگه نتونید تو لحظه که میاد اون رو دریافت نکنید انگاری انداختی دور!!!
    اگه نتونی لحظه به لحظه پورت رو چک کنی بهتره از خالتی استفاده کنید که اینا تو حافظه ذخیره بشه.

  26. #346
    کاربر دائمی آواتار reza6966
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    شیراز
    پست
    234

    نقل قول: قسمت هشتم : ارسال یک پیام بدون محتوا

    چک کردن پیام کوتاه جدید و ایجاد یک کنترل از طریق پیام کوتاه

    با سلام خدمت دوستان عزیز
    من یه برنامه می خوام بنویسم که به محض رسیدن یک اس ام اس متن آن را چک کند و مثلا اگه نوشته بود SHUTDOWN یه کد را اجرا کند و کامپیوتر را خاموش کند
    دوستان کسی می تونه من رو راهنمایی کنه ؟؟؟؟؟

    مشکل من اینه که چجوری کدی بنویسم که به محض رسیدن پیام جدید متوجه بشه و متن پیام رو چک کند ؟؟؟؟

    ممنون می شم

  27. #347
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام،
    با کامپوننت که من کار میکنم اینجوریه که برای دریافت پیام های جدید یک Event داره که ست میشه و بهش میگی اگه این رویداد انجام شد یک تابع رو فراخوانی کنه. تو این تابع میتونید بگی پیام جدید رو دربانک ذخیره کنه، ویا یک پیغام به کاربر بدی که پیام جدید اومده ویا ...
    توی این رویداد شما میتونید تعریف کنید که بیاد پیام رو با متنی که میخوای مقایسه کنه اگه هر چی که شما گفتی بود یه تابع رو فراخوانی کن.
    به همین راحتی....
    تو کامپوننت های دیگه هم یه چیز عین این هست.

  28. #348
    کاربر دائمی آواتار reza6966
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    شیراز
    پست
    234

    نقل قول: PDU Encoding And Decoding

    ممنون دوست عزیز اما راه کلیشو می خوام انجام بدم
    می خوام با AT COMMAND ها خودم این event رو برنامه نویسی کنم

    ممنون می شم راهنمایی کنید

  29. #349
    کاربر دائمی آواتار reza6966
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    شیراز
    پست
    234

    نقل قول: PDU Encoding And Decoding

    https://barnamenevis.org/showthread.p...C%D9%85%D8%9Fl
    با سلام

    بله یک دستور AT هست بنام:

    AT+CNMI=2,1,0,1

    که میشه گفت event مودم را برای دریافت sms جدید فعال میکنه از این دستور به بعد هر گاه اس ام اس جدید بیاد به صورت زیر به نمایش در میاد:


    +CMTI: "ME",108
    این پاسخ از سمت مودم نمایانگر محل ذخیره سازی اس ام اس جدید می باشد.
    طی جستجویی که کردم این رو پیدا کردم اما متوجه منظورش و طریقه استفاده این AT COMMAND ها نشدم
    دوستان کسی می تونه من رو کمک کنه ؟؟؟؟

    چطوری زیر برنامه بنویسم که این عمل رو انجام بده ؟؟؟؟
    ممنون میشم

  30. #350
    کاربر دائمی آواتار reza6966
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    شیراز
    پست
    234

    نقل قول: PDU Encoding And Decoding

    مشکل در ارتباط بین مودم D link DWM-156 و hyperterminal
    با سلام خدمت همه دوستان
    من یه مودم D link DWM-156 خریدم که با استفاده از نرم افزار خود مودم می توان اس ام اس فرستاد اما وقتی می خوام با هایپر ترمینال بهش وصل شوم وصل می شود اما احازه تایپ هیچ دستوری درون اون صفحه بهم نمی ده
    کسی می دونه باید چی کارش کنم ؟؟؟؟
    ممنون می شم
    فکر کنم مشکل کار اینجاست که برنامه مخصوص خود D link پورت رو در اختیار می گیرد و با وجود اینکه برنامه رو می بندم پورت آزاد نیمشه
    کسی از دوستان نمی دونه چیکار باید انجام بدم تا پورت آزاد شه ؟؟؟؟

  31. #351

    نقل قول: PDU Encoding And Decoding

    سلام دوستان. از همتون ممنون بابت مطالبي گذاشتبن.
    فقط كاشكي اين مطالبو تو يه فايل pdf ميذاشتيد كه اينقدر پست‌ها زياد نشن و اونايي كه مثل من اينترنت پر سرعت ندارن واسه بازكردن صفحات عذاب نكشن.
    و اگه امكان داره پست‌هاي اضافي رو حذف كنيد تا يكم تعداد صفحات كمتر بشه.

  32. #352

    نقل قول: PDU Encoding And Decoding

    سلام کسی pdf این مطالب رو نداره؟
    من فرق بین اینکد 7 بیت و 8بیت و ucs2 چیه؟

  33. #353

    نقل قول: رمز گشایی پیام دریافت شده "SMS" به فرمت PDU در مود Default Alphabet قسمت اول

    سلام
    آقا روی این قسمت میشه توضیح بیشتری بدین؟

    اون 3 از کجا اومد؟

    ممنون

  34. #354

    نقل قول: رمز گشایی پیام دریافت شده "SMS" به فرمت PDU در مود Default Alphabet قسمت اول

    نقل قول نوشته شده توسط raravaice مشاهده تاپیک
    به علت پیچیدگی این مورد با ذکر یک مثال مطلب رو دنبال میکنیم.


    0791893905004102240C918939564208
    8400008060504112928110C2B0DC1D6E
    97DD657B7AEE7ACBCF
    این پیامی هست که به دست من رسیده؟!!!

    قسمت اول شماره مرکز پیام:

    0791893905004102

    07 : بدین معنی که شماره مرکز پیام 07H هفت بایت از این متن رو اشغال کرده که بعد از علامت شماره قرار میگیره.

    91 : بدین معنی که شماره مرکز پیام بین المللی است و با + شروع شده ("اگر غیر از این بود عدد 81 جایگزین میشد")

    893905004102 : این خود شماره مرکز پیام هست ، یه شمارش بزنید! میبینید که محتوای موجود دارای 6 بایت هست که با 1 بایت علاکت میشه 7 بایت یعنی همون عددی که در ابتدا داشتیم.این شماره هم مثل همیشه به صورت جفت معکوس هست که باید برای خوانا شدن معکوس بشه یعنی :
    داریم :
    89-39-05-00-41-02

    که بعد از بر عکس کردن میشه :
    98-93-50-00-14-20


    پس با احتساب علامت شماره داریم :
    +989350001420


    خیلی راحت بود مگه نه ;)

    24 : این عدد که یکی از پر معنا ترین اعداد برای ما هست 2 تا مسئله رو برامون روشن میکنه.

    این عدد چندین حالت میتونه داشته باشه که من عام اون رو بهتون میگم.
    04: برای SMS یعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery نکرده.
    24: برای SMSیعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery کرده.

    40:
    برای EMSیعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery نکرده.
    44:
    برای EMS یعنی شخصی که پیام رو فرستاده درخواست گزارش یا همون Delivery کرده.

    06: پیام فعلی یک گزارش هست.


    البته این اعداد همینجوری یلخی هم به دست نیامده و با 0 و 1 شده معادل باینری اونا سرو کار داره. ولی کلیات کار رو تا اینجا داشته باشید کفایت میکنه.

    پس تا اینجا ما فهمیدیم که با این عدد به 2 دسته اطلاعات میشه پی برد یکی نوع پیام و دیگری آیا درخواست گزارش از طرف فرستنده ارسال شده یا نه.

    حالا میخواهیم دقیق از روی عددی که توی این بایت وجود داره بفهمیم که نوع این کد چیه؟


    1. SMS دریافت شده = 0
    2. SMS ذخیره شده = 1
    3. گزارش دریافت یک پیام = 2
    4. EMS دریافت شده = 64
    5. EMS ذخیره شده = 65

    البته اون عدد 24 در مبنای 16 هست و این عدد هایی که من نوشتم تا اینجای کار ربطی به اون 24 نداره و همچنین در مبنای 10 هستند.

    اینجا باید عدد 24H رو با 3 و 64 در مبنای 10 And کنیم و هر دو نتیجه رو با هم جمع کنیم یعنی :

    36 دسیمال = 24 هگز = 00100100 باینری
    AND
    3 دسیمال = 3 هگز = 00000011 باینری
    جواب1
    0 دسیمال = 0 هگز = 00000000 باینری

    و داریم

    36 دسیمال = 24 هگز = 00100100 باینری
    AND
    64 دسیمال = 40 هگز = 01000000 باینری
    جواب2
    0 دسیمال = 0 هگز = 00000000 باینری

    که در جمع 2 جواب به عدد 0 میرسیم که میشه : SMS دریافت شده = 0

    فقط امیدوارم با AND باینری آشنا باشید!
    AND باینری!
    0AND0=0
    0AND1=0
    1AND1=1


    پس ما با AND کردن این عدد با 3 و 64 و جمع نتیجه ها به این نکته پی میبری که پیام ما چیه ولی یه نکته که اهمیت داره و کاربرد نداره اینه که:
    اگر جواب اول بشه 3 و جواب دوم بشه 64 نوع پیام میشه :
    EMS ارسال شده

    -----------------------------------------------------------------------------

    ادامه در پست بعد.

    موفق باشید
    سلام
    آقا روی این قسمت میشه توضیح بیشتری بدین؟

    اون 3 از کجا اومد؟

    ممنون

  35. #355

    نقل قول: PDU Encoding And Decoding

    سلام
    من کل تاپیک رو مطالعه کردم حیفم اومد از دوستان تشکر نکنم ، عالی بود خیلی زحمت کشیدید .
    این تاپیک تقریباً نتیجه سه چهار سال هم فکریه واقعاً ارزشمنده .
    ممنون از همه

  36. #356

    نقل قول: PDU Encoding And Decoding

    اساتید سلام
    من یه سوال دارم!
    همونطور که فرمودین بعد از AT+CMGS باید طول کارکتر رو بنویسیم بعد توی خط بعدی کد PDU Message اما من چطور میتونم این طول کارکترها رو بدست بیارم (با استفاده از کدام خاصیت کامپوننت ها)؟؟؟ سرویس سنتر شماره مقصد و پیام و سایر اطلاعات رو تونستم تبدیل به PDU کنم اما طولشو نمیدونم چطور بدست بیارم...
    البته اینم بگم از کاکپوننتها دارم استفاده میکنم دوستانی که از SMSPduLib یا AtSMS استفاده میکنن ممکنه راهنمایی بفرمایید.
    آخرین ویرایش به وسیله ab_ir_007 : شنبه 28 مرداد 1391 در 16:09 عصر

  37. #357
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

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

    برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.

  38. #358

    نقل قول: PDU Encoding And Decoding

    ممنونم از پاسختون
    فکر کنم من سوالم رو ناقص پرسیدم
    قبل از هر چیز بگم که من قصد دارم از 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 توی اون قرار داره!!
    اگه دارین از کامپوننت ها استفاده می کنید چه نیازی به این کاره؟ خودشون ارسال رو انجام میدن!؟

    برای بدست آوردن طول رشته میتونید به این سایت مراجعه کنید.
    آخرین ویرایش به وسیله ab_ir_007 : شنبه 28 مرداد 1391 در 22:43 عصر دلیل: اصلاح کد

  39. #359

    نقل قول: PDU Encoding And Decoding

    دوستان ممکنه یکی کمک کنه!!!!
    دقیقا همین کدها رو اگه توی هایپر ترمینال استفاده کنم در حالت pdu ارسال میشه اما وقتی کدهای سی شارپ تبدیل میشن هیچ اتفاقی نمیوفته یعنی کد کامل اجرا میشه ولی اس ام اس ای ارسال نمیشه!
    یکی کمک کنه واقعا گیج شدم دیگه....

  40. #360
    کاربر دائمی آواتار faravaghi
    تاریخ عضویت
    مهر 1388
    محل زندگی
    مشهد
    پست
    233

    نقل قول: PDU Encoding And Decoding

    سلام دوست عزیز،
    یه چیزی رو قبل پاسخ به سوال شما بگم و اون اینه که اگه از کامپوننت استفاده می کنید، دیگه دنبال خیلی جزئیات ریز نباشید!!!
    و اینم از همون موارده که شما دیگه به نحوه ارسال کار ندارید و فقط میگین که این پیام بره برای فلان شماره همین و بس!

    برای ارسال پیام شما ابتدا طول PDU رو به عنوان پارامتر به AT+CMGS پاس بدین به این شکل:
    AT+CMGS=20


    سپس خط فرمان حاضر میشه تا دستور شما رو اجرا کنه که همون ارسال پیام و گرفتن کد PDU است.

    شما میتونید در کامپوننت ATSMS از روش زیر برای ارسال استفاده کنید هرچند که همراه این کامپوننت هم Document است هم نمونه کد:

    Dim msgId As String = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text)

    ویا در سی شارپ :
    string msgId = oPhone.SendSMS(txtMSISDN.Text, txtMsg.Text);


    البته قبلش یکم تنظیمات داره که در زمان ساخت Object باید اون ها رو انجام بدین. مثلا همین که شماره پورت، کدینگ پیام چی باشه و ....
    oPhone.Encoding = EnumEncoding.Unicode_16Bit

صفحه 9 از 10 اولاول ... 78910 آخرآخر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •