نمایش نتایج 1 تا 40 از 377

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

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #8
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    42
    پست
    1,944

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

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


    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 ارسال شده

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

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

    موفق باشید

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

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

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