نمایش نتایج 1 تا 28 از 28

نام تاپیک: چگونه متوجه ورود sms جدید شویم؟

  1. #1
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    چگونه متوجه ورود sms جدید شویم؟

    سلام.
    میخواستم بپرسم که چجوری متوجه بشیم که یک sms جدید رسیده؟ باید روی پورت سرکشی کنیم؟ خود موبایل چجوری تشخیص میده وقتی یک sms جدید میرسه؟ آیا Interrupt داره؟

    ممنون.

  2. #2

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    باید خودتون هر چند وقت یک بار چک کنید اس ام اس جدید دریافت شده یا نه
    یک نکته را بگم و اون اینه که سیم کارت بیشتر از 15 پیام را ذخیره نمی کنه پس اگه به موقع پیامها را دریافت نکنید و بعد حافظه را آزاد نکنید پیامهای جدید رو از دست میدین

    Farshad Nooranian


  3. #3
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

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

  4. #4
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    با تشکر از دوستان.

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

    يك كلاس تعريف كنيد و روي پورتها event بزاريد . خواندن مرطب از پورت كار درستي نيست . در ضمن مگر ميشه همش يك تايمر كار كنه . اينطوري كه برنامه بعد از چند وقت پشت سر هم روشن بودن ميتركه
    ببخشید، اصلا احتیاجی به این کار نیست. در Net. 2 اینکار انجام شده، یعنی وقتی که داده روی پورت میاد، یک Event به نام DataReceived فراخوانی میشه و میشه با استفاده از Object.ReadExisting رشته موجود در بافر پورت رو خوند.


    Dim Withevents MySerialPort As New System.Io.Ports.SerialPort


    در ضمن ، شما گوشی یا مودمتون رو به Hyper Terminal وصل کنید ، یک Sms بهش ارسال کنید. آیا در Hyper Terminal رشته ورودی رو میبینید یا اینکه باید از دستور AT+CMGL استفاده کنید؟ منظورم اینه که وقتی یک SMS جدید میاد رشته ای روی پورت نمیاد.

    حالا این سوال رو میپرسم. به نظر شما با این تفاسیر، گوشی میاد هر ثانیه یک بار دستور AT+CMGL=0 رو اجرا می کنه تا بفهمه که SMS جدید اومده؟

    با تشکر از دوستان.

  5. #5
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    خوب خودت كه داري ميگي با event كار كن . ديگر مشگلت چيست؟

  6. #6
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    مشکلی ندارم. می خوام بدونم خود گوشی چیکار می کنه؟ در ضمن وقتی ما با AT+CMGL=0 اومدیم و پیام های جدید رو خوندیم، چکار کنیم که دفعه بعدی این پیام ها دوباره توی New Messages نباشند و دوباره به لیست پیام های جدید ما اضافه نشوند؟

  7. #7
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    وقتي event عمل كرد Raise شد . شما بايد بريزيش هر جا لازم داري . حالا sms جديد كه بياد باز event عمل ميكند يعني هميشه شما sms جديد رو بر ميداري ديگر با قبليها كاري نداري

  8. #8
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    علی جان شما متوجه منظور من نشدین.
    ببینید، فرض کنید که گوشی به USB وصله و HyperTerminal هم جلوی شما قرار گرفته، وقتی پیام جدید میاد HyperTerminal هیچ چیزی رو نشون نمیده، اگر نشون می داد که خوب بود، هر بار SMS جدید میومد ، یک رشته PDU میومد روی پورت و Event فراخوانی میشد و ما اون رشته رو تفسیر می کردیم. ولی وقتی پیام جدید میاد گوشی خودش یک کاری برای خودش می کنه که می فهمه SMS جدید اومده و چیزی رو روی پورت ارسال نمی کنه که ما بفهمیم. ما باید با AT+CMGL ازش بخواهیم به ما بگه.

  9. #9
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    عزيز دل شما يك طوري در پستهاي بالا به من حمله كردي كه من فكر كردم بلدي ي. ببين توي برنامت اگر event تعريف كني روي پورت يعني وقتي sms مياد يك event عمل ميكنه . و شما مثلا متن و ... رو توي بدنه آن event مثلا ميريزي توي db . مثل clipbord هست كه وقتي مثلا ctrl+c ميزنيم خود windows يك event رو raise ميكنه براي پورت هم ميشه تعريف كرد و بعد توي برنامه استفاده كرد

  10. #10
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    عزيز دل شما يك طوري در پستهاي بالا به من حمله كردي كه من فكر كردم بلدي ي.
    اولا که ما مخلص شما هستیم.

    ثانیا نمی دونم چرا یا من متوجه منظور شما نمیشم، یا شما متوجه منظور من.
    حالا من سوال می پرسم. آیا منظور شما از Event روی پورت اینه که مثلا یک Event به نام NewSmsReceived رو تعریف کنیم، بعد هر وقت که با دستور AT+CMGL=0 متوجه ورود SMS جدید شدید بیایم Event رو Raise کنیم. اینکار رو هم با استفاده از یک Timer هر ثانیه یکبار انجام بدیم. درسته؟

  11. #11
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    ديگر شما با at+cmgl=0 كاري نداريد . خود پورت event داره . و خودش raise ميشه . raise شدن توسط شما لازم نيست

  12. #12

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    يك كلاس تعريف كنيد و روي پورتها event بزاريد . خواندن مرطب از پورت كار درستي نيست . در ضمن مگر ميشه همش يك تايمر كار كنه . اينطوري كه برنامه بعد از چند وقت پشت سر هم روشن بودن ميتركه

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

    Farshad Nooranian


  13. #13

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط ali_kolahdoozan مشاهده تاپیک
    ديگر شما با at+cmgl=0 كاري نداريد . خود پورت event داره . و خودش raise ميشه . raise شدن توسط شما لازم نيست

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

    موفق و موید باشید

    Farshad Nooranian


  14. #14
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    همونطور که Noorsoft عزیز گفت، EVENT ای در کار نیست. چون به هنگام رسیدن SMS اطلاعاتی روی پورت فرستاده نمیشه، اگر میشد event هم داشتیم. ولی الان که نمیشه نداریم.

  15. #15
    کاربر دائمی آواتار vahid_d_0101
    تاریخ عضویت
    آبان 1386
    محل زندگی
    شرکت هیولاها
    سن
    34
    پست
    693

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

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

  16. #16
    کاربر دائمی آواتار soheil_programmer
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    تکه ای خاک از همین سرزمین
    پست
    311

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    با سلام

    بله یک دستور AT هست بنام:
    AT+CNMI=2,1,0,1


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

    +CMTI: "ME",108

    این پاسخ از سمت مودم نمایانگر محل ذخیره سازی اس ام اس جدید می باشد.

    ضمناً اینو خودم تست کردم و عملاً نتیجشو دیدم

  17. #17

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    توضیح پارامترهای دستور


    +CNMI=<mode>,<mt>,
    <mode> buffering mode
    <bm>,<ds>,<bfr>
    0
    Buffer unsolicited result codes in the TA. If TA result
    code buffer is full, the oldest indications may be discarded
    and replaced with the new received indications.
    1 Discard indication and reject new received message
    unsolicited result codes when TA-TE link is reserved (e.g. in
    on-line data mode). Otherwise forward them directly to the
    TE.
    2 Buffer unsolicited result codes in the TA when TA-TE link
    is reserved (e.g. in on-line data mode) and flush them to the
    TE after reservation. Otherwise forward them directly to the
    TE.
    <mt> rules for storing received SMs
    0
    No SMS-DELIVER indications are routed to the TE.
    1 If SMS-DELIVER is stored into ME/TA, indication of the
    memory location is routed to the TE using unsolicited result
    code +CMTI: <mem>,<index>
    <bm> rules for storing received CBMs
    0
    No CBM indications are routed to the TE.
    <ds> SMS-STATUS-REPORTs routing mode
    0
    No SMS-STATUS-REPORTs are routed to the TE.
    <bfr> TA buffer of unsolicited result codes behaviour
    0
    TA buffer of unsolicited result codes defined within this
    command is flushed to the TE when <mode> 1...3 is entered (OK
    response shall be given before flushing the codes).
    1 TA buffer of unsolicited result codes defined within this
    command is cleared when <mode> 1...3 is entered.
    Response
    ERROR
    +CNMI? +CNMI: <mode>,<mt>,<bm>,<ds>,<bfr>

    Farshad Nooranian


  18. #18
    کاربر دائمی آواتار reza6384
    تاریخ عضویت
    آبان 1386
    محل زندگی
    تهران - شهرک ژاندارمری
    سن
    39
    پست
    740

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    با تشکر از Soheil_Programmer و Noorsoft. آقا دمتون گرم جواب داد Ok شد. در ضمن آقای علی کلاهدوزان، متشکرم که در این بحث شرکت کردید ، منظور شما همین بوده احتمالا، گفتین Event داره ، ولی نگفتین چجوری فعال میشه. حالا با این Event و همچنین رویداد DataReceived خود SerialPort میشه ورود SMS جدید رو تشخیص داد.

    خیلی خیلی خیلی ممنون.

  19. #19

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط reza6384 مشاهده تاپیک
    با تشکر از Soheil_Programmer و Noorsoft. آقا دمتون گرم جواب داد Ok شد. در ضمن آقای علی کلاهدوزان، متشکرم که در این بحث شرکت کردید ، منظور شما همین بوده احتمالا، گفتین Event داره ، ولی نگفتین چجوری فعال میشه. حالا با این Event و همچنین رویداد DataReceived خود SerialPort میشه ورود SMS جدید رو تشخیص داد.

    خیلی خیلی خیلی ممنون.
    اقا رضا من يه كمي تازه واردم ، ميشه يكم بيشتر در مورده استفاده از دستوراتي كه گفتي توضيح بدي .

    ممنون
    Michak

  20. #20

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    دمت گرم خیلی باحال بود
    نتیجه رو گوشی من که سونی هست اومد درست کار کرد تاخیر کمتر از نیم ثانیه در روی پورت اومد
    و روی پورت اومد
    :CMTI+
    me,12312312

  21. #21

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط noorsoft مشاهده تاپیک
    توضیح پارامترهای دستور


    +CNMI=<mode>,<mt>,
    <mode> buffering mode
    <bm>,<ds>,<bfr>
    0
    Buffer unsolicited result codes in the TA. If TA result
    code buffer is full, the oldest indications may be discarded
    and replaced with the new received indications.
    1 Discard indication and reject new received message
    unsolicited result codes when TA-TE link is reserved (e.g. in
    on-line data mode). Otherwise forward them directly to the
    TE.
    2 Buffer unsolicited result codes in the TA when TA-TE link
    is reserved (e.g. in on-line data mode) and flush them to the
    TE after reservation. Otherwise forward them directly to the
    TE.
    <mt> rules for storing received SMs
    0
    No SMS-DELIVER indications are routed to the TE.
    1 If SMS-DELIVER is stored into ME/TA, indication of the
    memory location is routed to the TE using unsolicited result
    code +CMTI: <mem>,<index>
    <bm> rules for storing received CBMs
    0
    No CBM indications are routed to the TE.
    <ds> SMS-STATUS-REPORTs routing mode
    0
    No SMS-STATUS-REPORTs are routed to the TE.
    <bfr> TA buffer of unsolicited result codes behaviour
    0
    TA buffer of unsolicited result codes defined within this
    command is flushed to the TE when <mode> 1...3 is entered (OK
    response shall be given before flushing the codes).
    1 TA buffer of unsolicited result codes defined within this
    command is cleared when <mode> 1...3 is entered.
    Response
    ERROR
    +CNMI? +CNMI: <mode>,<mt>,<bm>,<ds>,<bfr>

    توضیح پارامترهای دستور را کسی میتونه به فارسی بگه چی می شه

  22. #22

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    اگه دستور AT+CNMI=2,1,0,1 رو بفرستي, هر بار كه اس ام اس جديد اومد خودش مياد و شماره ايندكس اس ام اس رو بهت ميده.
    bye

  23. #23

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    سلام دوستان
    فقط خواستم بگم تو بعضی موبایلها و gsm mpdem ها با دستور زیر خود پیام با CMT+ ظاهر میشه.
    AT+CNMI=2,,2,0,1,0
    البته اگه AT+CNMI رو سرچ کنید مطالب بسیار مفیدی گیرتون میاد

  24. #24

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط noorsoft مشاهده تاپیک
    باید خودتون هر چند وقت یک بار چک کنید اس ام اس جدید دریافت شده یا نه
    یک نکته را بگم و اون اینه که سیم کارت بیشتر از 15 پیام را ذخیره نمی کنه پس اگه به موقع پیامها را دریافت نکنید و بعد حافظه را آزاد نکنید پیامهای جدید رو از دست میدین
    دوست من از کی تا حالا بافر شبکه برای هر سیم کارت 15 اس ام اس شده؟
    فقط یک اس ام اس
    شما باید یک listener روی پورتی که می خوای بنویسی و از پوش ریجستر برای آگاهی از ورود اس ام اس جدید استفاده کنی

  25. #25
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    نقل قول نوشته شده توسط soheil_programmer مشاهده تاپیک
    با سلام

    بله یک دستور AT هست بنام:
    AT+CNMI=2,1,0,1


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

    +CMTI: "ME",108

    این پاسخ از سمت مودم نمایانگر محل ذخیره سازی اس ام اس جدید می باشد.

    ضمناً اینو خودم تست کردم و عملاً نتیجشو دیدم
    البته اين دستور بااين value ها براي من error مي داد.و اينطوري حل شد:
    at+cnmi=2,1,0,0,0
    كه من اينا رو ديدم راجبش،ان شا... مفيد باشه:
    2.1.3 New Message Indication (AT+CNMI) “AT+CNMI” configures how the modem signals arrival of new messages to the connected terminal device and how they are stored in the modem. This feature is useful when it comes to reading new messages. Instead of polling the modem periodically for arrival of new messages, “AT+CNMI” can tell when a new message has arrived. The AVR will catch such indication, and set a flag. This ensures that the modem only takes up CPU resources when necessary.
    Table 2-4. AT+CNMI command and possible responses
    Command
    Response
    Comment
    “AT+CNMI=[mode]1,[mt]2,[bm]3,[ds]4,[bfr]5”
    ”OK”
    Mode set
    ”ERROR”
    Error, could not set such mode.
    Notes:
     
    1. [mode] integer type: how messages are buffered.
    2. [mt] integer type: indication of new SMS, set to 1.
    3. [bm] integer type: Not in use.
    4. [ds] integer type: Not in use.
    5. [bfr] integer type: Not in use.
    http://www.atmel.com/dyn/resources/p...ts/doc8016.pdf

  26. #26
    کاربر جدید آواتار chitoz2010
    تاریخ عضویت
    دی 1389
    محل زندگی
    1000 کیلومتری تهران
    پست
    12

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    واقعا ممنون. اين دستور تا اينجا كه خوب بود. OK داد. ولي هنوز پيامي كه ارسال كردم رو نشون نداده. ولي خودش جاي اميدي هست كه برنامه خطا نگرفته. pdf خوبي بود. باز هم ممنون.

  27. #27

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    با سلام دوستان اگه اس ام اس ها از طریق پورت وارد میشن!پس میشه پورتوsniff کرد و به دادها دسترسی پیدا کرد؟

  28. #28

    نقل قول: چگونه متوجه ورود sms جدید شویم؟

    سلام دوستان نمیدونم این سوال به دستت شما عزیزان میرسه یا نه
    دوستان من دنبال ارسال دستور به دستگاه سانترال پاناسونیک هستم اگه کسی میدونه چطوری خوشحال میشم
    ترجیحا به ایمیلم بزنید
    soheiladv@gmail.com

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

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