صفحه 1 از 10 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 377

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

  1. #1

    PDU Encoding And Decoding

    تو این تاپیک توضیحات کامل کد کردن و خواندن PDU را توضیح میدم
    امیدوارم دوستان هم همکاری کنند تا یک منبع کامل تو این زمینه آماده کنیم.
    آخرین ویرایش به وسیله noorsoft : چهارشنبه 15 خرداد 1387 در 16:15 عصر

    Farshad Nooranian


  2. #2

    نقل قول: PDU ٍEncoding & Decoding

    سلام .

    تاپیک خیلی مفیدی هست . فقط اگر امکان داره از مباحث پایه شروع کنید . یعنی از صفر !

    مرسی ...

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

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

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



    همانطور که میدونید برای ارسال پیام کوتاه به فرمت PDU نیاز به قسمتهای تفکیک شده اطلاعات هست.

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

    قسمت دوم نوع شماره هست که آیا این شماره از نوع بین الملل هست ("یعنی با + شروع شده یا خیر")
    اگر شماره با + شروع شده باشه عدد 91 و در غیر این صورت عدد 81 جایگزین میشه و این جفت کاراکتری 1 واحد به تعداد شماره اضافه میکنه.


    قسمت سوم اصل شماره است که میبایست 2 تا،2تا جدا و معکوس بشه و هر جفت 1 واحد به تعداد خانه اول اضافه میکنه و همینطور اگر تعداد اعداد فرد باشه باید عدد آخر با مقدار F0 جمع بشه.

    مثال:
    1) برای یک شماره بین المللی که با + شروع شده.
    +98-912-1234567


    ما میام این شماره رو بر حسب نیاز خودمون تفکیک میکنیم تا مفهوم بهتر درک بشه.
    +98-91-21-23-45-67


    چون با + شروع شده پس عددی که باید در خانه دوم قرار بگیره 91 هست.

    حالا همانطور که شماره رو به صورت جفتهای 2 تایی مشخص کردیم ای جفت هارو معکوس میکنیم و کار رو ادامه میدیم یعنی :

    +89-19-12-32-54-76


    تکلیف + با جایگزاری عدد 91 در خانه دوم مشخص شده پس حذف میشه.نتیجه:

    89-19-12-32-54-76



    پس کدی که تا اینجا تولید شده بدون در نظر گرفته خانه اول که تعداد هست شده:

    91-89-19-12-32-54-76


    با شمارش جفت دوتایی به عدد 7 میرسی پس این عدد را باید به عنوان شمارش گر در مبنای HEX در خانه اول جایگزاری نماییم و این نکته هم در یاد داشته باشید که چون عدد ما یک رقمی است و در اینجا با جفت کاراکتری اعداد سروکار داریم مقدار بی ارزش 0 سمت چپ عدد را جایگزاری میکنیم یعنی 07.

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

    07-91-89-19-12-32-54-76


    و کدی که با ید ارسال بشه:
    0791891912325476


    این شده شماره مرکز پیام به صورت PDU در قالب یه شماره بین الملل.

    2) برای یک شماره معمولی.
    0098-912-1234567


    ما میام این شماره رو بر حسب نیاز خودمون تفکیک میکنیم تا مفهوم بهتر درک بشه.
    00-98-91-21-23-45-67


    چون با + شروع نشده پس عددی که باید در خانه دوم قرار بگیره 81 هست.

    در این نوع خواندن شماره همیشه اولین رقم از سمت چپ حذف میشه یعنی وقی شماره با 0098 وارد میشه سمت چپ ترین عدد حذف شده و عدد 098 برای ما باقی میمونه.پس تا اینجا نتیجه شده:

    0-09-89-12-12-34-56-7


    که صفر سمت چپ حذف میشه پس داریم:


    09-89-12-12-34-56-7



    حالا همانطور که شماره رو به صورت جفتهای 2 تایی مشخص کردیم ای جفت هارو معکوس میکنیم و کار رو ادامه میدیم یعنی :

    90-98-21-21-43-65-7


    و چون تعداد ارقام ما فرد هست پس سمت راست ترین عدد با F0 جمع میشه پس داریم:

    90-98-21-21-43-65-F7



    پس کدی که تا اینجا تولید شده بدون در نظر گرفته خانه اول که تعداد هست شده:

    81-90-98-21-21-43-65-F7


    با شمارش جفت دوتایی به عدد 8 میرسی پس این عدد را باید به عنوان شمارش گر در مبنای HEX در خانه اول جایگزاری نماییم و این نکته هم در یاد داشته باشید که چون عدد ما یک رقمی است و در اینجا با جفت کاراکتری اعداد سروکار داریم مقدار بی ارزش 0 سمت چپ عدد را جایگزاری میکنیم یعنی 08.

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

    08-81-90-98-21-21-43-65-F7


    و کدی که با ید ارسال بشه:
    0881909821214365F7


    این شده شماره مرکز پیام به صورت PDU در قالب یه شماره معمولی.

    تصویر بالا هم تو ضمیمه اضافه کردم تا اگر احیانا تصویر رو از هاست برداشتم ضمیمه این پست باشه.

    موفق باشید
    عکس های ضمیمه عکس های ضمیمه

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

    قسمت دوم :Status Report

    قسمت دوم :Status Report یا درخواست گزارش از مرکز پیام

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

    اگر نیاز دارید عدد :31
    اگر نیاز ندارید عدد:11

    با ید به رشته بالا و دقیقا بعد از شماره مرکز پیام اضافه بشه.

    موفق باشید

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

    قسمت سوم : Message Refrence

    قسمت سوم : Message Refrence

    وقتی شما با دستوری مثل AT+CMGW پیامی رو داخل سیم کارت ذخیره میکنی اون پیام یه شماره Index داره که در پاسخ دستور به شما بر میگرده، این شماره همون شمارست که در اصل شما میگی اونو بفرسته.

    که اصطلاحا بهش میگن SMS SUBMIT

    ما اینجا 00 رو برای این مورد در نظر میگیریم بدین معنا که پیام در این کد ارسال میشه و هیچ رفرنسی نداره.

    موفق باشید

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

    قسمت چهارم : شماره مقصد

    قسمت چهارم : شماره مقصد


    همانطور که در عکس مشاهده میکنید این قسمت تفاوتهای کمی با تعیین شماره مرکز پیام تو قسمت اول داره که شامل:

    1.کد بین المللی بودن شماره در شمارش لحاظ نمیشود.
    2.شماره به صورت جفت شمارش نمیشود و هر عدد نماینده 1 واحد در شما رش میباشد البته اگر تعداد اعداد فرد باشد باز هم همانند شماره مرکز پیام با F0 جمع میشود ولی مقدار F در تعداد شمارش محاسبه نمیشود.
    3.مقدار سمت چپ ترین عدد حفظ میشود.

    مثال برای نوع بین المللی:

    شماره مقصد :
    +989121234567


    پس داریم:
    تعداد ارقام بدون احتساب + برابر با 12 که چون با مبنای 16 سروکار داریم معادل آن یعنی C را جایگزین میکنیم.یعنی خانه اول شمارش کارکتر میشود :

    0C


    این شماره با + نماینده یک شماره بین الملل شروع شده پس در خانه دوم عدد 91 جایگزین میشود پس تا اینجا داریم:

    0C-91


    شماره همانند شماره مرکز پیام به جفت دوتایی تفکیک و معکوس میشه یعنی:

    شماره اصلی شامل:
    98-91-21-23-45-67


    شماره بعد از معکوس شدن و حذف + :
    89-19-12-32-54-76


    ادغام نهایی:

    0C-91-89-19-12-32-54-76


    0C91891912325476


    مثال برای نوع معمولی:

    شماره مقصد :
    09121234567


    پس داریم:
    تعداد ارقام برابر با 11 که چون با مبنای 16 سروکار داریم معادل آن یعنی B را جایگزین میکنیم.یعنی خانه اول شمارش کارکتر میشود :

    0B


    این شماره یک شماره معمولی است پس در خانه دوم عدد 91 جایگزین میشود پس تا اینجا داریم:

    0B-81


    شماره همانند شماره مرکز پیام به جفت دوتایی تفکیک و معکوس میشه یعنی:

    شماره اصلی شامل:
    09-12-12-34-56-7


    شماره بعد از معکوس شدن :
    90-21-21-43-65-F7


    ادغام نهایی:

    0B-81-90-21-21-43-65-F7


    0B819021214365F7



    موفق باشید
    عکس های ضمیمه عکس های ضمیمه

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

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

    این قسمت از کد ما یه یه حالت رزرو شده داره مخصوص پروتکل های پیام هست که دارای یه مبحث جدا و چه بسا طولانی هست که برای اجتناب و جلوگیری از هر گونه سر در گمی از کد 00 استفاده میکنیم.

    پس قسمت پنجم کد خودمون رو با :00
    پر میکنیم

    موفق باشید

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

    قسمت ششم: نوع کاراکترها

    قسمت ششم: نوع کاراکترها

    منظور اینه که شما به BTS میگی متنی که داری میفرستی یه متن معمولی هست یه از کاراکتر های 2 بایتی توش استفاده شده که در این حالت :

    متن معمولی = DefaultAlphabet = شامل 160 کاراکتر برای هر پارت = برابر با کد 00

    کاراکترهای 2 بایتی = UCS2 = شامل 70 کاراکتر برای هر پارت = برابر با کد 08


    موفق باشید

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

    قسمت هفتم : طول عمر پیام

    قسمت هفتم : طول عمر پیام

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

    که برابر است با:

    1 ساعت = 0B
    3 ساعت = 1D
    6 ساعت = 47
    12 ساعت = 8F
    1 روز = A7
    1 هفته = C4
    حداکثر = FF

    موفق باشید

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

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

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

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

    مثال 1:

    مشخصات:
    شماره مرکز پیام = 989350001400+
    گزارش=بدون گزارش
    شماره Index=متن فعلی
    شماره مقصد = 09351234567
    پروتکل=00
    نوع محتوا = DefaultAlphabet
    مدت زمان نگهداری = حداکثر
    متن = خالی


    079189390500410011000B819053214365F70000FF


    موفق باشید

  11. #11
    توي اين پست تصميم دارم يكي از كامل ترين و منعطف ترين نمونه هايي رو كه توي نت ديدم رو بزارم .. اين نمونه به زبان VB.NET پياده سازي شده و واقعا در اين زمينه محشر هست ..

    اينم يك رفرنس جامع براي كار با SMS در C#‎

    يك نمونه براي vb كارها در زمينه ي كار با SMS

    اينم يكي ديگه براي كار با SMS در VB

    اينم براي دريافت SMS در VB

    اينم يك نمونه براي ارسال SMS در VB

    يك نمونه براي C#‎ كارها ...

    خوب فعلا كافيه .. چيز بهتري در اين زمينه ندارم ديگه .. منتظر ياري گرم مدير اين بخش كه قرار بود با هم همكاري كنيم تا يك كتابخانه كامل در اين زمينه بسازيم هستم ...

    با تشكر از زحمات raravaice عزيز ... خيلي ممنون ...

    يا حق ...
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله noorsoft : چهارشنبه 15 خرداد 1387 در 10:59 صبح دلیل: دسترسی آسان

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

    قسمت نهم : تهیه محتوای پیام برای 1 پارت پیام در مود DefaultAlphabet

    قسمت نهم : تهیه محتوای پیام برای 1 پارت پیام در مود DefaultAlphabet



    با در نظر گرفتن مقدار اسکی هر کاراکتر و حذف سمت چپ ترین بیت از 8 بیت میتونیم به علامت 7 بیتی اون کاراکتر برسیم:

    مثلا برای کاراکتر a داریم

    HEX=61
    Binary 8 bit= 01100001
    Binary 7 bit = 1100001


    و همینطور برای کاراکتر ® داریم


    HEX=AE
    Binary 8 bit = 10101110
    Binary 7 bit = 0101110


    یک استثناء
    نکته مهم برای کاراکتر @ داریم :


    HEX=64
    Binary 8 bit = 01000000
    Binary 7 bit = 1000000


    ولی به دلیل اینکه از تداخل این کاراکتر با À پرهیز کنیم چون برای À داریم:


    HEX=C0
    Binary 8 bit = 11000000
    Binary 7 bit = 1000000


    به جای علامت 7 بیتی @ که در اینجا مشابه هست مقدار 0 رو در نظر میگیریم و چو ما به هفت بیت نیاز داریم معادل 0000000 رو به کد خودمون پیوست میدیم.

    ------------------------------------------------------------
    در مطالب بالا ماتونستیم هر کاراکتر رو به مقدار 7 بیتی خودش تبدیل کنیم.
    حالا باید این مقادیر باینری رو به صورت پشت سر هم به معادل HEX در مبنی 8 بیتی تبدیل کنیم که با ذکر یک مثال مسئله رو براتون روشن میکنم.

    مثلا برای کلمه @©Book داریم.


    B
    HEX=42
    Binary 8 bit = 01000010
    Binary 7 bit = 1000010

    o
    HEX=6F
    Binary 8 bit = 01101111
    Binary 7 bit = 1101111

    o
    HEX=6F
    Binary 8 bit = 01101111
    Binary 7 bit = 1101111
    k
    HEX=6B
    Binary 8 bit = 01101011
    Binary 7 bit = 1101011

    ©
    HEX=A9
    Binary 8 bit = 10101001
    Binary 7 bit = 0101001

    @
    Binary 7 bit = 0000000


    پس تا اینجا داریم :

    1000010-1101111-1101111-1101011-0101001-0000000
    حالا باید همه نتیجه رو بر عکس کنیم یعنی :


    0000000-0101001-1101011-1101111-1101111-1000010
    اگر دقت کنید در کد بالا ما 42 بیت داریم که بر 8 تقسیم نمیشه پس تا جایی که کد باینری ما بر 8 بخش پذیر باشه از سمت چپ به اون 0 اضافه میکنیم یعنی:


    000000-0000000-0101001-1101011-1101111-1101111-1000010
    حالا 8 بیت 8 بیت جدا سازی میکنیم تا کد ما بیاد رو مد 8 بیتی یعنی :


    00000000-00000010-10011101-01111011-11110111-11000010
    حالا این کد رو به معادل HEX اون بر میگردونیم یعنی :


    00-02-9D-7B-F7-C2
    اگر یادتون باشه یه بار باینری هارو برعکس کردیم حالا دوباره این کارو روی HEX انجام میدیم یعنی:

    C2-F7-7B-9D-02-00
    کلمه ما آماده ارسال هست ولی هنوز تعداد اون معلوم نیست.
    این عدد تعداد کاراکتر های وارد شده ما در مبنای 16 هست که در اینجا 6 کاراکتر داریم.دقت کنید چون داریم 1 بیت از هر کاراکتر کم میکنیم امکان داره تعداد جفت کد هگز ما این عدد نشه پس باید محاسبه این عدد رو از روی مجموع کل کاراکتر های وارد شده انجام بدیم.

    پس کد نهایی ما میشه:


    06-C2-F7-7B-9D-02-00
    وچیزی که باید ارسال بشه

    06C2F77B9D0200
    مبارکه;)

    موفق باشید
    عکس های ضمیمه عکس های ضمیمه

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

    قسمت دهم : تهیه محتوای پیام برای 1 پارت پیام در مود UCS2

    قسمت دهم : تهیه محتوای پیام برای 1 پارت پیام در مود UCS2 ("کلمات فارسی و UTF-8")

    خوشبختانه کار ما برای این مورد خیلی راحت تره!
    اما چرا؟! :)

    توی این مد بر خلاف DefaultAlphabet (که برای هر کاراکتر با 1 بایت سرو کار داریم) با 2 بایت سرو کار داریم.

    یعنی توی DefaultAlphabet برای کاراکتر a معادل هگز داشتیم برابر با 61 ولی اینجا معادل هگز اون میشه 0061

    علت اونم که خودتون بهتر از من میدونید چون کاراکتر ها در مد UTF-8 در 2 بایت ذخیره میشن.

    ومیتونم بهتون اینو بگم که هیچکدوم از مراحل پیچیده حالت DefaultAlphabet در اینجا انجام نمیشه.

    و فقط کافیه که معادل اسکی 2 بایتی هر کاراکتر رو پشت سر هم ردیف کنیم.

    فقط به یه نکته باید توجه کنید که هم تو این مد و هم تو مد DefaultAlphabet باید رعایت بشه اونم اینکه توی مد DefaultAlphabet صفر بی ارزش یعنی 0 در سمت چپ عدد درسته که از لحاظ ریاضی بی ارزش هست ولی اینجا ما لازمش داریم.

    مثلا معادل اسکی در پایه HEX برای حرف م عدد 645 هست ولی چون برای هر کاراکتر در این مد 4 تا صفر رزرو شده حتما باید صفر سمت چپ گذاشته بشه یعنی برای حرف م داریم 0645

    با یه مثال مسئله رو روشن میکنم:

    پیام رو با جمله زیر کد میکنیم.

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

    د = 06F2
    ا = 0627
    ش = 0634
    Space = 0020
    م = 0645
    ه = 0647
    ر = 0631
    ا = 0627
    ن = 0646
    Space = 0020
    ش = 0634
    ی = 06CC
    ط = 0637
    و = 0648
    ن = 0646
    ی =
    06CC
    Space = 0020
    ن = 0646
    ک = 06A9
    ن =
    0646
    . = 002E


    پس کدی که باید ارسال بشه :


    062F062706340020064506470631062706460020063406CC06 370648064606CC0020064606A90646002E
    تعداد کاراکتر های ما در این مثال 21 عدد است که چون داره توی 2 بایت ذخیره میشه پس در اصل داره 42 بایت ارسال میشه که عدد 42 در مبنای 16 برابر میشه با 2A که باید قبل از متن قرار بگیره یعنی:

    2A062F062706340020064506470631062706460020063406CC06 370648064606CC0020064606A90646002E
    خیلی راحت بود مگه نه.;)

    مخلص داش مهران و بقیه دوستان هم هستیم.;)

    موفق باشید

  14. #14

    نقل قول: PDU ٍEncoding & Decoding

    raravaice عزير من اسم كوچيكتون رو نميدونم پس تا موقع اي كه اسمت رو نگي به نام كاربريت صدات ميزنم ..

    اقا زحمت كشيدي اين رفرنس رو ارائه دادي .. اگه كاملش كني عالي ميشه .. همون طور كه ديدي من نمونه هايي رو گذاشتم كه هر كدوم براي خودشون يك سري مشكلاتي رو داشتن ...

    ايا شما نمونه ي خوبي براي اين كار سراغ دارين كه از انعطاف بالايي برخوردار باشه ؟؟

    دارم روي اين موضوع كار ميكنم و دارم تركيبي از بهترين نمونه ها رو بازنويسي ميكنم .. اگه شما هم چيز خوبي دارين در اختيار بزارين ... اگه كارم با موفقيت رو به رو شد همين جا ميزارمش ..

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

    نقل قول: PDU ٍEncoding & Decoding

    به خدا توکل کن و مابقی بحث رو که درباره ارسال در 2 یا چند پارت پیام دنبال هم هست رو گوش کن.;)
    من کلا یه دوره زیاد سر به سر موبایل و سیم کارت و BTS هاش میزاشتم هر چی هست اطلاعات اون دورست.
    کامل و بدون نقص و همینطور تست شدست حالا از روی مطالب شما به هر زبانی که دوست داشتی بشین سورس بنویس.

    موفق باشید

  16. #16

    نقل قول: PDU ٍEncoding & Decoding

    مشتاقانه منتظر اس ام اس پارتي هستم من توي زبان برنامه نويسي محدوديتي ندارم ... بعد از تكميل شدن رفرنست رندوم ميزنم به يه زبان ترجمش ميكنم

    بعد از اين بحث ميپريم روي AT ها كه بايد سه نفري روش بحث كنيم ... من و تو و noorsoft .. نميدونم چرا اصلا پيداش نيست !!! ؟ به اميد خداوند تبارك يك چيز توپ سه تايي جمع و جور ميكنيم ...

    راستي اسم شريف رو نگفتي ... !!

    يا حق ...

  17. #17
    VIP آواتار raravaice
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Tehran
    سن
    40
    پست
    1,944
    همانطور که در قسمت های قبل به صورت بخش به بخش گفتم برای تهیه یک کد PDU قابل ارسال ما به چند قسمت تفکیک شده نیاز داریم که به ترتیب شامل :

    1.تعداد ارقام شماره مرکز پیام
    2.نوع شماره مرکز پیام "81,91"
    3.خود شماره مرکز پیام به صورت برعکس دوتایی
    4.کد درخواست گزارش از مرکز پیام"31،11"
    5.Message Refrence
    6.تعداد ارقام شماره مقصد
    7.نوع شماره مقصد"91,81"
    8.خود شماره مقصد به صورت برعکس دوتایی
    9.نوع پروتکل که شما برای SMS همیشه 00 رو جایگزین کنید.
    10.نوع فرمت که :08 برای UTF و 00 برای معمولی که در حالت 08 هر پارت شامل حداکثر 70 کاراکتر و در حالت 00 هر پارت شامل حداکثر 160 کاراکتر میباشد.
    11.طول عمر پیام
    12.تعداد بایتهای محتوای پیام
    13.محتوای پیام

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

    1.وقتی پیام شما بیشتر از 1 پارت هست("حالا بر حسب نوع میشه یک پارت رو به 160 یا 70 کاراکتر تقسیم کرد اشاره من به صورت کلی مسئله هست") کد درخواست در هر حالتی که هست با 40H جمع میشه.
    یعنی برای عدم ارسال گزارش داریم51H و برای ارسال گزارش داریم 71H

    2.عدد ثابت 060804 دقیقا بعد از مرحله 12 و قبل از مرحله 13 جاگزاری میشه که کارش اینه که به مرکز پیام میگه این پیام ادامه دارد.

    3.بعد از این عدد ثابت 32 بیت رزرو شده داریم که حاوی یه عدد تصادفی برای شماره گزاری پیامهای ماست یعنی چی؟
    پیامی که ما در چند پارت میفرستیم بعد از این که مرکز پیام با کد 060804 متوجه شد ادامه داره و بتونه با دقت رد یابی کنه به یه کد احتیاج داره که در این قسمت قرار میگیره و میتونه یه عدد تصادفی بین 0000 و FFFF باشه و این عدد در سرآیند همه قسمتهای این پیام قرار میگیره.

    4.بعد از این عدد تصادفی که در اصل کد پیام ما هست باید به مرکز پیام بفهمونیم که منتظر چند قسمت باید باشه پس 16 بیت بعد از اون رو به این کار اختصاص دادن یعنی از 02 تا FF که میشه : 02 پیام من 2 قسمت داره و FF پیام من 255 قسمت داره.

    5.بعد از اینکه تعداد کل رو فرستادیم حالا باید ترتیب رو مشخص کنیم و به مرکز پیام بگیم این پیامی که الان رسیده دستت قسمت شماره چندم پیام هست که از 01 شروع میشه و با تعداد کل تموم میشه و بدین صورت ترتیب پشت سر هم قرار گرفتن هم لحاظ کردیم.

    6.محتوای پیام رو بدون هیچ تغییری وارد میکنیم.

    یه نکته که باید بهش خوب دقت کنید اینه که:

    060804-0000-02-01

    خودش شامل 7 بایت هست که دقیقا بعد از طول بایتهای محتوی قرار گرفته پس این 7 بایت هم سرباریه برای محتوای پیام و در نتیجه در حالتی که پیام ما از 1 پارت بیشتر هست باید 7 بایت رو از محتوی اول کم کنیم و اینارو جا بدیم و اون 7 بایتی رو که کم کردیم بعلاوه 1 بایت ناقص ما که توی پاورقی بهش اشاره شده به اول پیام بعد اضافه کنیم.

    مسئله یه کم پیچیده است ولی خیلی مهم و جالبه.
    یه مثال میزنم که موضوع مشخص بشه:

    شماره مرکز پیام = 989350001400+
    شماره مقصد = 09351234567
    فرمت و محتوی پیام = فارسی شامل 200 کاراکتر "م"
    تمایل به دریافت گزارش دارم=71 چو در چند پارت داره ارسال میشه
    طول عمر پیا حداکثر باشه=FF

    خوب ، یه حساب کتاب میکنیم ببینیم متن ما قرار هست توی چند پارت ارسال بشه.
    از اونجایی که فرمت ما UTF هست پس در هر پارت حداکثر باید 70 کاراکتر جا بگیره یعنی :

    همانطور که گفتم ما 7 بایت سر بار اضافه داریم پس باید بشه.


    200 / 66 = 3.03


    یعنی 3 قسمت کامل و یه جزء کوچک که توی قسمت 4 قرار میگیره.
    پس پیام ما در حقیقت 4 پارت داره.

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

    1.تعداد بایتهای شماره مرکز پیام + کد نوع شماره = 07
    2.نوع شماره مرکز پیام که اینجا با "+" شروع شده= 91
    3.شماره مرکز پیام به صورت معکوس شده= 893905004100
    4.درخواست گزارش = 71
    5. رفرنس پیام = 00
    6.تعداد ارقام شماره مقصد = 0B
    7.نوع شماره مقصد چون معمولی هست = 81
    8. بر عکس شده شماره مقصد = 9053214365F7 "چون تعداد 11 فرد هست رقم آخر با F0 جمع شده"
    9.نوع پروتکل = 00
    10.نوع فرمت چون UTF هست پس = 08
    11.مدت زمان انتظار در شبکه حداکثر = FF
    12. تعداد بایتهای پیام اول = 8B ("توضیح در پاورقی ")
    13.عدد ثابت = 060804
    14.کد تصادفی پیام = 661D
    15.تعداد کل قسمتها = 04
    16.شماره ردیف پارت قسمت اول = 01
    17.محتوی پیام شامل = [66 بار تکرار (0645) که معادل کد اسکی حرف "م" هست و با یه ضرب ساده در 2 بایت میشه همون 132 بایتی که نیاز داشتیم]

    همونطور که حساب کردیم ما اینجا 3 تا پارت کامل داری و یه پارت نصفه پس پارت دوم و سوم فقط در شماره ردیف پیام تغییر میکنن یعنی:

    پارت دوم:
    تمامیه مراحل در پارت اول مشترک است غیر از مرحله :

    16.شماره ردیف پارت قسمت دوم = 02

    پارت سوم:
    تمامیه مراحل در پارت اول مشترک است غیر از مرحله :

    16.شماره ردیف پارت قسمت سوم = 03

    در پارت چهارم
    تمامیه مراحل در پارت اول مشترک است غیر از مرحله :

    12. تعداد بایتهای پیام چهارم =0B "ا 3 بایت عدد ثابت + 2 بایت عدد تصادفی + 1 بایت تعداد کل قسمتها + 1 بایت شماره ردیف پیام + 4 بایت محتوای پیام که شامل 2 تا "م" باقیمانده هست"


    16.شماره ردیف پارت قسمت چهارم = 04

    17.محتوی پیام = 2 بار تکرار (0645)


    در نتیجه محتوای پارت اول چیزی شبیه به کد زیر میشه :


    079189390500410071000B819053214365F70008FF8B060804661D040106450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645
    پارت دوم

    079189390500410071000B819053214365F70008FF8B060804661D040206450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645
    پارت سوم

    079189390500410071000B819053214365F70008FF8B060804661D040306450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645064506450645064506450645064506450645 06450645064506450645064506450645064506450645064506 45064506450645
    پارت چهارم

    079189390500410071000B819053214365F70008FF0B060804661D040406450645
    یه نکته برای دوستانی که از AT Command استفاده میکنن اینکه لازم نیست این کدها حتما در یک بار ارسال و یا پشت سر هم ارسال بشه.

    شما میتونید این کد ها رو در فواصل زما حتی 1 دقیقه و به صورت کاملا نا مرتب هم بفرستید یعنی اول پارت 2 بعد 3 بعد 1 و بعد 4 رو بفرستید البته مدت زمان وقفه به BTS شما بستگی داره که معمولا روی BTS های ایران تا 30 ثانیه به من جواب داده.
    پس عجله نکنید;)

    مهم
    پ.و: همانطور که تا الان باید متوجه شده باشید ما بدون احتساب شماره مرکز،شماره گیرنده و بقیه علائم برای متن و محتوای 1 پارت پیام حداکثر 140 بایت جا داریم که شمارش اون دقیقا از بعد از بایت شمارشگر محتوی شروع میشه.

    یعنی اگر بر مبنای 8 بیت حساب کنیم 140 کاراکتر داریم و چون در مد
    DefaultAlphabet برای هر کاراکتر 7 بیت داریم پس کلا میتونیم 160 کاراکتر ارسال داشته باشیم و همچنین به دلیل اینکه در مد UCS2 برای هر کاراکتر 16 بیت داریم یعنی هر کاراکتر 2 بایت پس کلا میتونیم 70 کاراکتر رو ارسال کنیم.

    حالا توی مد UCS2 وقتی پیام از 1 پارت بیشتر میشه ما مجبور 7 بایت هدر شامل :(3 بایت کد ثابت، 2 بایت شماره تصادفی ،1 بایت تعداد کل پیامها ،1 بایت شماره پیام فعلی) رو در محتوی پیام بگنجونیم
    پس در نتیجه 140 بایت منهای 7 بایت برابر میشه با 133 بایت.
    یعنی ما میتونیم 133 بایت از محتوی متن پیام شماره 1 رو اینجا بزاریم اما تو مد UCS2 یه ولی داریم:
    توی حالت UCS2 همانطور که گفتم هر کاراکتر 2 بایت داره پس با احتساب 133 بایت فضای خالی که موجود داریم میتونیم 66 کاراکتر و 1 بایت بفرستیم و چون این بایت باقیمانده نیاز به بایت مکمل داره تا تفهیم باشه و اون بایت مکمل بلاجبار توی پارت بعدی قرار گرفته این بایت هم از اینجا حذف میکنیم و به پارت بعدی اضافه میکنیم یعنی ما توی هر پارت پیام UCS2 به صورت مولتی پارت 132 بایت رو جا میدیم که میشه 66 کاراکتر و بیشتر از این امکان نداره.
    ----------------------------------------

    موفق باشید
    آخرین ویرایش به وسیله raravaice : پنج شنبه 16 خرداد 1387 در 22:51 عصر دلیل: چند تا مورد که توی پست 50 بهش اشاره شده بود

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

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

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

    اگر شما قصد داشته باشید با AT به مودم پیام ارسال کنید اول از همه باید طول دستور رو بهش بگید و بعد از زدن کلید Enter محتوی دستور رو وارد کنید.

    این عدد برابر میشه با : تعداد کل بایتهای ایجاد برای هر پارت - بایت شمارش شماره مرکز منهی بایت نوع منهی تعداد بایتهایی که شماره مرکز پیام رو تشکیل میده.

    مثلا برای مثالی که تو قسمت بالا گفتم طول پارت 1 و 2 و 3 برابر میشه با 153 و طول پارت 4 برابر میشه با 25

    موفق باشید

  19. #19

  20. #20

    نقل قول: PDU ٍEncoding & Decoding

    اين قسمت اخرش بود ... يا بازم ادامه داره ؟؟؟

    خوب پس منتظر ديكدش هستيم ...

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

    نقل قول: PDU ٍEncoding & Decoding

    اين قسمت اخرش بود ... يا بازم ادامه داره ؟؟؟
    تمومه دیگه ! دیگه چجوری میخوای SMS بفرستی که من نگفتم؟

    فقط دریافت و Decode میمونه که اونم باشه برای فردا یا چند روز دیگه.
    تا اینجاش ظریف کاری زیاد داره شایدم یه جاهایی سوتی داده باشم همه رو چک کن ببین چیزی از قلم نیافتاده و کار میکنه.

    تا بعد;)

    موفق باشید

  22. #22

    نقل قول: PDU ٍEncoding & Decoding

    این عدد برابر میشه با : تعداد کل بایتهای ایجاد برای هر پارت - بایت شمارش شماره مرکز منهی بایت نوع منهی تعداد بایتهایی که شماره مرکز پیام رو تشکیل میده.

    مثلا برای مثالی که تو قسمت بالا گفتم طول پارت 1 و 2 و 3 برابر میشه با 153 و طول پارت 4 برابر میشه با 25
    raravaice جان در رابطه با اين قسمت يكم مفصل تر توضيح بده ( مثل قسمتهاي قبلي ) اگه يك مثال عملي هم ازش بزاري كه محشر ميشه ..

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

    نقل قول: PDU ٍEncoding & Decoding

    در رابطه با اين قسمت يكم مفصل تر توضيح بده ( مثل قسمتهاي قبلي ) اگه يك مثال عملي هم ازش بزاري كه محشر ميشه .
    شما بیا تعداد کل کاراکتر های ایجاد شده برای هر پارت پیام رو بشمار بعد تقسیم بر 2 کن که تعداد بایتهای بسته پیامت مشخص بشه ("هر جفت دوتایی ما یک بایت بود دیگه") حالا از اول پیام رو تا اونجایی که شماره مرکز پیام تموم میشه بشمار و تعداد بایتها رو از این کم کن.

    کد زیر قسمت چهارم بخش قبل هست که اینجا مثال میزنم.


    079189390500410071000B819053214365F70008FF0B0608048F1C040406450645


    اینجا تعداد کل کاراکتر هامون شده 66 که تقسیم بر 2 یعنی 33 بایت داریم اگر دقت کنی 8 بایت رو شماره مرکز پیام به خودش تخصیص داده "دقت کن بایت" پس 33 منهی 8 برابر میشه با 25 که این 25 همون طول دستور AT ما هست.

    موفق باشید

  24. #24

    نقل قول: PDU ٍEncoding & Decoding

    دوستان از زحمات همه ممنون من یکسری برنامه مفید آماده کردم در حال ترجمه یک منبع بسیار کامل و جامع PDf هستم که تو این تاپیک بزارم

    همینطور که همه دوستان میدونن شما در PDU میتونین خیلی از قسمتها را وارد نکنین پس شناسایی و از کد درآوردن اینگونه پیامها بسیار مشکه برای همین داشتن یک منبع همراه با سورس کد های اون قسمت با زبانهای VB6 .nte C#‎ فکر کنم مفید باشد

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

    باز هم از همکاری دوستان سپاسکزارم
    آخرین ویرایش به وسیله noorsoft : چهارشنبه 15 خرداد 1387 در 10:57 صبح

    Farshad Nooranian


  25. #25

    نقل قول: PDU ٍEncoding & Decoding

    بچه ها یه چیزی بگم ؟!!

    من 40% مطالب رو بیشتر نگرفتم ...

    چرا از پایه توضیح نمیدین ؟!!! هنوز هیچی نشده مبحث پرید روی Codeing و Decoding !

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

    نقل قول: PDU ٍEncoding & Decoding

    بچه ها یه چیزی بگم ؟!!

    من 40% مطالب رو بیشتر نگرفتم ...

    چرا از پایه توضیح نمیدین ؟!!! هنوز هیچی نشده مبحث پرید روی Codeing و Decoding !
    پایه یعنی از کجا!؟

    من سورس این کار رو با vb.net دارم و توی 2 یا 3 تا از تاپیک های همین سایت هم گزاشتم ، من برای این قسمت به قسمتش کردم که فکر کردم منظور noorsoft عزیز همینه ولی ظاهرا منظور ایشون سورس بوده که اگر تمایل داشته باشید اونو میزارم و دیگه مبحث Decode کردن رو بازش نمیکنم.

    موفق باشید

  27. #27
    سلام .

    ببخشید مثل طلبکار ها حرف زدم

    دستتون درد نکنه واقعاً کارتون حرف نداشت . وای که چقدر این مبحث جالبه .

    من یک برداشت کلی از ارسال sms از طریق کامپیوتر داشتم :
    ممنون میشم صحیح بودن برداشت من رو اعلام کنین .

    این عملیات از دو بخش اصلی تشکیل میشه :
    • تبدیل اطلاعات به دستورات قابل فهم برای گوشی ...
    • ارسال اطلاعات تبدیل شده از طریق پورت COM به گوشی تلفن همراه (در VB از طریق کنترل MsCom )
    اون قسمت اول رو به خوبی متوجه شدم (Coding و Decoding) .
    منتها هنوز نحوه ارسال اطلاعات کد شده به گوشی رو نمی دونم ... (در VB) .

    ممنون میشم یه توضیح مفصل در این مورد بدید .

    باز هم ممنونم .

  28. #28

    نقل قول: PDU ٍEncoding & Decoding

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

  29. #29

    نقل قول: PDU ٍEncoding & Decoding

    نه بابا ... سورس به چه دردي ميخوره ... من خودم اون رو گذاشتم ... صفحه ي قبل رو نگاه كن من هزار تا سورس گذاشتم ... ولي ادم خودش بفهمه و خودش از روي اصول بنويسه بدون شك بهتره .... noorsoft عزيزهمه ي اونا رو جمع كرده توي يك پست كه توي صفحه ي قبل هست ... اوني كه با VB.NET هست رو هم گذاشتم ...

    raravaice جان لطفا بحث ديكدينگ هم بگو كه يك مرجع كامل باشه ... در كنار اون سورسها رو هم رد و بدل ميكنيم ... بي صبرانه منتظرم ...

    .M8SPY. جان از اين پايه تر نميشه ... شما هرچقدر هم با پورت كار كني توي اين قسمتش كه اصل موضوع هست گير ميكني ... پس دندون روي جيگر بزار و اين قسمت رو خوب گوش كن بعدا به پورت هم ميرسيم و از raravaice عزيز ممنون ميشي كه اين مبحث رو جلوتر گفت ....


    يا حق ...

  30. #30

    نقل قول: PDU ٍEncoding & Decoding

    ببخشید سوالی که برای من پیش اومده اینه که چرا شماره تلفن مرکز پیام باید نوشته بشه ؟!!
    مگه دستورات به گوشی ارسال نمیشن ؟! پس چه نیازی به این کار هست ؟
    ما از گوشي به عنوان GSM استفاده ميكنيم و داريم مستقيما با GSM اون كار ميكنيم .. پس ربطي به گوشي نداره و ما بايد همه ي ريزه كاري ها رو در PDU بيان كنيم ...

    اون قسمت اول رو به خوبی متوجه شدم (Coding و Decoding)
    Decoding رو كه هنوز نگفته و منتظريم ... چه جوري متوجه شدي ؟؟؟؟

  31. #31

    نقل قول: PDU ٍEncoding & Decoding

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

    Farshad Nooranian


  32. #32

    نقل قول: PDU Encoding And Decoding

    خوب اگه 00 قرار بديم چي ميشه ؟؟؟ خودش جايگزين ميكنه ؟؟

  33. #33

    نقل قول: PDU ٍEncoding & Decoding

    نقل قول نوشته شده توسط .::Mehran::. مشاهده تاپیک
    نه بابا ... سورس به چه دردي ميخوره ... من خودم اون رو گذاشتم ... صفحه ي قبل رو نگاه كن من هزار تا سورس گذاشتم ... ولي ادم خودش بفهمه و خودش از روي اصول بنويسه بدون شك بهتره .... noorsoft عزيزهمه ي اونا رو جمع كرده توي يك پست كه توي صفحه ي قبل هست ... اوني كه با VB.NET هست رو هم گذاشتم ...

    raravaice جان لطفا بحث ديكدينگ هم بگو كه يك مرجع كامل باشه ... در كنار اون سورسها رو هم رد و بدل ميكنيم ... بي صبرانه منتظرم ...

    .M8SPY. جان از اين پايه تر نميشه ... شما هرچقدر هم با پورت كار كني توي اين قسمتش كه اصل موضوع هست گير ميكني ... پس دندون روي جيگر بزار و اين قسمت رو خوب گوش كن بعدا به پورت هم ميرسيم و از raravaice عزيز ممنون ميشي كه اين مبحث رو جلوتر گفت ....


    يا حق ...
    اقا مهران سورسهایی که من دارم ازش حرف میزنم با سورسهایی که شما از Codeproject دانلود کردی فرق داره
    لازمه یکبار دیگه از raravaice تشکر کنتم ولی باز هم این مطالب کامل و جامع نیست خیلی از چیزهایی که در کدینگ داریم با ریزه کاریاش بیان نشده البته این را هم بگم شاید ایشون لازم ندونستند مطلب را زیاد بازکنند ولی من دارم یک رفرنس بسیار کامل آماده میکنم

    چند مثال : ما در GSM 9 کارکتر داریم که کدهاشون با کد اصلیشون فرق میکنه
    یا توضیحاتی در مورد User Data Header (UDH) و..... بیان نشده

    در ضمن هدف اصلی من گذاشتن سورس نیست در واقع قسمتهایی را که توضیح دادم برنامه نویسی شو هم گفتم
    آخرین ویرایش به وسیله noorsoft : جمعه 17 خرداد 1387 در 07:12 صبح دلیل: حذف حرفهای حاشیه ای

    Farshad Nooranian


  34. #34

    نقل قول: PDU Encoding And Decoding

    اقا مهران سورسهایی که من دارم ازش حرف میزنم با سورسهایی که شما از Codeproject دانلود کردی فرق داره
    noorsoft جون ازون حرفا زدي ها ... مشكل اينه كه هيچ كدوم كامل نبودن .. من يك چيزي كامل ميخواستم كه ظاهرا هر چي گشتم وجود نداشت .. البته خدوم چند تا از بهترين هاش رو انتخاب كردم و دارم سه تا رو يكي ميكنم و ضعفهاشون رو ميگيرم تا هيچ مشكلي نداشته باشه ... اين كه خودم ننوشتم اين بود كه اطلاعات كامل نداشتم وگرنه در زبان برنامه نويسي مشكلي ندارم و حتي اگه با اسمبلي هم باشه براي من فرقي نداره ....

    منتظر گفته هاي شما هم هستيم .. انشاالله كه اين رفرنست واقعا به مرحله ي اجرا برسه و ما ببينيمش ... تا كي اماده ميشه به نظرت ؟؟؟
    آخرین ویرایش به وسیله noorsoft : جمعه 17 خرداد 1387 در 07:12 صبح دلیل: حذف حرفهای حاشیه ای

  35. #35

    نقل قول: PDU Encoding And Decoding

    يك سورس كد مربوط به ويندوز موبايل رو با هزار تا زور و زحمت گير اوردم ... قابليت ارسال پيام فارسي رو به گوشي هايي كه فارسي قبول نميكردند اظافه ميكرد .... خوب مطالعه كردمش ... noorsoft راست ميگفت اصلا اونجا كد اسكي نيست كه ... اصلا بعضي كاراكرتها كدهاي عجيب غريبي دارن .. يك قسمت از اون سورس فقط قسمت ثابتهاي كاراكترهاش بود .... يك قسمت براي خوندن زمان ارسال بود ... خيلي پيچيده تر از اوني بود كه به نظر ميرسيد ... دارم به C++‎ ترجمش ميكنم ... بلاخره يك چيز كامل پيدا كردم خيالم راحت شد ... بعد به صورت DLL درش ميارم و ازش توي كارم استفاده ميكنم ... جالبرتين قسمتش اينجاست كه پيامهاي چند پارتي هم توليد ميكنه ... همين الان باهاش يك پيام 4 پارتي توليد كردم و فرستادم ... درست كار ميكرد ....

  36. #36

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط .::Mehran::. مشاهده تاپیک
    noorsoft جون ازون حرفا زدي ها ... مشكل اينه كه هيچ كدوم كامل نبودن .. من يك چيزي كامل ميخواستم كه ظاهرا هر چي گشتم وجود نداشت .. البته خدوم چند تا از بهترين هاش رو انتخاب كردم و دارم سه تا رو يكي ميكنم و ضعفهاشون رو ميگيرم تا هيچ مشكلي نداشته باشه ... اين كه خودم ننوشتم اين بود كه اطلاعات كامل نداشتم وگرنه در زبان برنامه نويسي مشكلي ندارم و حتي اگه با اسمبلي هم باشه براي من فرقي نداره ....

    منتظر گفته هاي شما هم هستيم .. انشاالله كه اين رفرنست واقعا به مرحله ي اجرا برسه و ما ببينيمش ... تا كي اماده ميشه به نظرت ؟؟؟
    آقا مهران من قصد جسارت نداشتم من کوچک همتون هستن منظورم این بود که چند تا کد ناقص که با روشهای مختلف نوشته شده نمی شه سرهم کرد و کامل کرد امید وارم از من ناراحت نشده باشی شما پیشرفت خوبی تو این زمینه داشتی با لین پشت کار زود به نتیجه دلخواهت میرسی

    من دارم رفرنسهای اصلی Gsm را آخرین ورژنش را ترجمه میکنم البته کامپیوتر من چند روزه مشکل پیدا کرده و نمی تونم چیزی آپلود کنم ولی منتظر باشید
    آخرین ویرایش به وسیله noorsoft : جمعه 17 خرداد 1387 در 07:14 صبح دلیل: حذف حرفهای حاشیه ای

    Farshad Nooranian


  37. #37

    نقل قول: PDU Encoding And Decoding

    نقل قول نوشته شده توسط .::Mehran::. مشاهده تاپیک
    خوب اگه 00 قرار بديم چي ميشه ؟؟؟ خودش جايگزين ميكنه ؟؟

    دقیقا یکی از ظرافتهای PDU تو همینه که اگر قرار باشه شما با دستورات AT شماره مرکز را بدست بیاری و بعد دوباره در PDU وارد کنی میتونی 00 را وارد کنی که بصورت خودکار کامل میشه
    این روش چند حسن داره اولیش اینکه کد کردن سریع تر و راحتتره دوم اگه شما سیم کارت را عوض کنید دیگه مهم نیست از چه اپراتوری استفاده کنید (همراه اول - ایرانسل - تالیا و ...)

    Farshad Nooranian


  38. #38

    نقل قول: PDU Encoding And Decoding

    بچه ها من كار گرد اوريم تموم شد و از تركيب بهترين نمونه ها بهترين چيز رو براي خودم نوشتم ...

    فقط به چند تا نكته برخورد كردم كه لازم دونستم ذكر كنم ... اون چيزهايي كه دوست خوبمون اقاي raravaice ذكر كردن براي Encode كردن كافي بوده .. و تقريبا كامل بود ... يعني همين مطالب براي ارسال كفايت ميكنه ولي بر Decode كردن ماجرا فرق داره و يك قسمت هم براي زمان دريافت وجود داره كه بايد ذكر بشه .. همچنين چند تكنيك هم وجود داره كه بايد ذكر بشه ...

    از
    raravaice عزيز ميخوام كه حرفاي گفته شده رو به دل نگيره و به چشم برادري ببينه ...

    همچنين از raravaice جان ميخوام به بحث ادامه بده و Decode رو هم ذكر كنه تا يك لطفي به دوستاني كرده باشه كه در اينده نياز به يك منبع دارن ... بدون يقين گفته هاي ايشون بعد ها بدرد افرادي ميخورن ...

  39. #39
    برای انکدینگ ابتدا شما باید نوع پیام را تشخیص بدین که میتونه یکی از انواع زیر باشه
    SMS RECEIVED
    SMS STATUS_REPORT
    SMS SUBMIT
    EMS RECEIVED
    EMS SUBMIT
    بعد از تشخیص شروع به خواندن پیام با پارامترهای موجود در نوع پیام میکنیم
    برای تشخیص نوع پیام FirstOctet پیام را که در واقع همون دو بایت بعد از شماره مرکز تلفن هستند را بخونید
    دو بیت آخر برای ما مهمه که در واقع همهون عدد 3 میشه 00000011
    به اضافه بیت 7 تم که 64 میشه 01000000
    اگه بیت اول و دوم و هفتم 1 باشن 010000011 نوع پیام ما EMS SUBMIT میشه در غیر این صورت شما
    عدد دو بیت آول و بیت هفتم را با هم جمع کنید تا نوع پیام مشخص بشه
    که با این حساب
    SMS RECEIVED = 0
    SMS STATUS REPORT = 2
    SMS SUBMIT = 1
    EMS RECEIVED = 64
    EMS SUBMIT = 65
    بدست میاد
    آخرین ویرایش به وسیله noorsoft : پنج شنبه 16 خرداد 1387 در 18:25 عصر

  40. #40

    نقل قول: PDU ٍEncoding & Decoding

    نقل قول نوشته شده توسط .::Mehran::. مشاهده تاپیک
    Decoding رو كه هنوز نگفته و منتظريم ... چه جوري متوجه شدي ؟؟؟؟
    منظورم روش کلی کار بود

    من بی صبرنامه منتظر ادامه آموزش این مبحث هستم .

صفحه 1 از 10 123 ... آخرآخر

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

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

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