ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 2 از 2 نخست 12
نمایش نتایج: از 11 به 18 از 18
  1. #11
    2013/05/11
    383
    2

    پاسخ : تحلیل کد فرستاده شده از sim900

    نقل قول نوشته اصلی توسط Saeed Saeb
    2 تا 0x0d پشت سر هم یعنی انتقال تموم شده
    سلام دوست عزیز ممنون که جواب دادید این کاری که شما میگید رو انجام دادم
    فرم اطلاعات خروجی رو در حالت hex دیدم ولی تا اونجا که یادمه برای پایان اطلاعات 2تا 0x0d پشت سرهم نشون نمیده

    میشه بگید شما چیکار کردید که این خروجی رو به شما نشون داده؟؟؟؟
  2. #12
    2013/05/11
    383
    2

    پاسخ : تحلیل کد فرستاده شده از sim900

    نقل قول نوشته اصلی توسط Saeed Saeb
    سلام
    با تعداد enter که میزنه : 0xd0 هارو بشمر
    این ماژول رو کامپیوتر وصل کن با ft تو codevision رو حالت Hex بزار جای ascii نشون میده فرمت دقیق اطلاعات با 0x0d مشخص میشه
    اصولا فرمت اینه :
    0x0d
    اظلاعات
    0x0d
    اطلاعات
    0x0d
    0x0d
    2 تا 0x0d پشت سر هم یعنی انتقال تموم شده همه اظلاعات رو بریز تو یه ارایه بعد که 2 تا 0x0d گرفتی پشت سر هم یعتی وقتشه بری سراغ ارایه و اطلاعات رو تحلیل کنی
    این فایل رو نگاه کنید شاید کمک کرد
    CALL رو فیلتر میکنه SMS با متغلقاتشو برمیگردونه به میکرو بعد دلیت میکنه که پر نشه INBox
    زیرشم یه مثال از طرز استفادشه

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ببینید بعنوان نمونه اومدم دستور
    AT رو فرستادم و ماژول هم پاسخ OK فرستاده (در حالت HEX جواب رو میبینید)

    در انتها دستور OK
    0D 0A میفرسته؟؟؟

    این برا همه داده ها صادق نیست مثلا برا SMS فرق میکنه ...

    در اولین پستس که فرستادم فرمت پاسخ دادن SIM900 نشون دادم (باتوجه به گقته دیتاشید)
    الانم که میبینید به همون شکل خروجی داده
  3. #13
    2012/06/23
    12
    0

    پاسخ : تحليل کد فرستاده شده از sim900

    سلام دوست عزيز شما جهت دريافت اطلاعات تماس و اس ام اس يه فلگ تعريف کن و پايه riماژول رو به پايه اينتراپت ميکروت که حساس به سطح فعال کرديد نصب کنيد و تو تابع اينتراپتت اين فلگ رو يک کن و تو حلقه while برنامت اين فلگ رو چک کن اگه برابر يک بود تو بافرت مثلا براي تماس کلمه ring رو جستجو کن اگه وجود داشت تحليلت رو انجام بده بعد همه اين کارا اين فلگ رو دوباره صفرش کن
  4. #14
    2012/06/23
    12
    0

    پاسخ : تحليل کد فرستاده شده از sim900

    اين لينکم يه نگاه کنيد

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    http://www.eca.ir/forum2/index.php?topic=107519.0
  5. #15
    2010/06/10
    583
    56

    پاسخ : پاسخ : تحلیل کد فرستاده شده از sim900

    نقل قول نوشته اصلی توسط h.torabi
    ببینید بعنوان نمونه اومدم دستور
    AT رو فرستادم و ماژول هم پاسخ OK فرستاده (در حالت HEX جواب رو میبینید)

    در انتها دستور OK
    0D 0A میفرسته؟؟؟

    این برا همه داده ها صادق نیست مثلا برا SMS فرق میکنه ...

    در اولین پستس که فرستادم فرمت پاسخ دادن SIM900 نشون دادم (باتوجه به گقته دیتاشید)
    الانم که میبینید به همون شکل خروجی داده
    سلام مهندس جان ببین این کد رو
    کد:
    data=getchr();
      if((data!=32)&&(data!=0x0A)) //FILTER INTER AND SPACE
      {    
        if(data!=13)       //NL CHAR FILTER
        {
          int_sim[__SIM_CHR_C]=data;
          __SIM_CHR_C++;
        }
        else if(data==13)     //NL CHAR ++ 2 NL MEANS TRANSMIT OVER
        { 
          __SIM_NL_C++;     //NL++ - COUNT NL
          if(__SIM_NL_C>=2)   //IF>2 TRANSMIT OVER
          {
    کد رو میگیره اگه 33 یا 10 باشه حدف میکنه . کد اسکی رو یه نگاه بندازید معلومه من الان دقیق یادم نیست . اسپیس رو حدف میکنیم یعنی داخل ارایه نمیفرستیمش بعدش میریم سراغ اینتر که میشه 0x0d 0x0a اینجا بنده 0x0a ها رو حدف کردم 0x0d رو شمردم که میشه 13 با متغییر sim_nl_c وقتی بیشتر یا مساوی 2 میشه یعنی تمومه . الان کد خودتون رو که ببینید یه 0a داده یه ok داد بعد یه 0a دیگه داده . این دستور برای همه دساوهای اولیه صادقه . ببین رفیق برای اینکه اعلام کنه کدهای ضروری رو مثل ok error یا اومدن sms یه 0a کد 0a میده ولی وقتی میخوایی sms رو بخونی ممکنه تعداد 0a فرق کنه برای این کار از فلگ استفاده کن ببین به فرض الان sms میاد این کدشه . اول که میخواد بگه sms اومده میشه با 2 تا 0d یا 0a کارو راه انداخت و کد رو تحلیل کرد اما وقتی فهمیدی sms اومده دیگه این کد کارایی نداره باید یه فلگ رو 1 کنی بعد بری تو مد sms که اونجا تعداد 0a ها و غیره متفاوته . رو کامپیوتر ببینی فرمت دستت میاد و این تابع بالا واسه فهمیدن اینکه مد کاری چیه اما هر مد واسه خودش یه سیستم جدا گانه داره مثلا واسه فرستادن sms از < استفاده میشه

    کد:
    for(i=0;int_sim[i];i++) //SMS
            {
              if(int_sim[i]=='+')
                if(int_sim[i+1]=='C')
                  if(int_sim[i+2]=='M')
                    if(int_sim[i+3]=='T')
                    {
                      ret=__SIM_SMS;   //SET THE FLAG
                      for(e=0;e<=2;e++) //EMPTY SMS ARRAY
                      smss[e]='\0'; 
                      for(i=0;int_sim[i];i++) //SMS STORAGE NUMBER ON SIM
                      {
                        if(int_sim[i]=='"')
                          if(int_sim[i+1]==',')
                          {
                            for(i=i+2;int_sim[i];i++)
                              smss[si]=int_sim[i];
                          }
                      }
                    }
    تو این کد وقتی میفهمیم sms اومده حالا یه فلگ ریترن میشه ret=__SIM_SMS; با این کار میری تو مد sms تو مد sms دوباره با این نرم افزاریا کد ویژین ببین چندتا 0a میده رو کاغذ بنویس حالا شمارنده nl رو روی این تعداد قرار بده مثلا اگه 4 تاس رو این تعداد قرار بده
    واسه سیم مد درست کنید . تمامی امکانات sim روی کامپیوتر تست کنید فرمت همه روی کاغذ بنویسید . مد نرمال ماله وقتی اراده مد زنگ مد اس ام اس ریسیو . مد اس ام اس سند این جوری تعداد اینترها تو هر مد فرق میکنه
    من 2 سال پیش کار کردم حافظم یاری نمیکنه . سیم رو به کامپیوتر ببندید واسه هر مد تعداد 0a یا 0d رو بشمرید به همون نسبت شمارنده بزارید
    اون فایلی هم که بالا دادم میتونه کمک کنه یه نگاه بهش بندازیرد مخصوصا اخرایش که یا رنگ سبزه . این روش 100 در صد جواب میده .
    تو قسمت اول که فرستادید ریسپوند بین یه کد اینتر و یه کد اینتر دیگست .
    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
    هيتلر
  6. #16
    2012/06/23
    12
    0

    پاسخ : تحلیل کد فرستاده شده از sim900

    سلام دوست عزیز تو این کد هایی که شما نوشتید از شرط if خیلی استفاده کردین و حافظه رو الکی اشکال کردین شما بهتره پایه ri پین شماره 4 ماژول رو به اینتراپت حساس به سطح میکرو وصل کنی و یه فلگ تو برنامت به عنوان فلگ دریافت sms یا ring تعریف کنی پس از اومدن هر کدوم از اینا فلگ رو یک کنی و برنامه اینتراپت دریافت سریال رو به صورت زیر بنویسی
    کد:
    [code=c]data_rx=UDR;
    
    if (!flag_bit_rx_0a)
     {
    	if (data_rx==0x0d && !flag_bit_rx_0d)
     		flag_bit_rx_0d=1;
    	else if (data_rx==0x0a && flag_bit_rx_0d)
    		flag_bit_rx_0a=1
     }
    else
      data_buffer[index]=data_rx;
    	index++
    [/code]

    حالا تو WHILE برنامت این فلگ (فلگ SMS یا RING) رو چک کن اگه فلگ برابر یک بود با استفاده از برنامه زیر که کار خودمه دیتای داخل بافر رو چک کن ببین رینگ بوده یا اس ام اس

    کد:
    [code=c]  if (search_str(data_buffer,"ring")!=255)
       //recive ring ring ring
      if (search_str(data_buffer,"+CMT")!=255)
       //recive sms sms sms
    [/code]

    تابع جستوجی رشته مورد نظر توی رشته دیگه که در جواب اگر رشته مورد نظر وجود نداشته باشه مقدار 255 رو برمیگردونه در غیر این صورت مکان اولین کارکتر رشته موردنطر رو توی رشته مورد جستجو رو برمیگردونه

    کد:
    [code=c] int search_str(const char *stra,const char *strb)
    {
     byte i=0,j=0;
     
      for (j=0;j<=strlen(stra);j++)
       {
        if (i>=strlen(strb))
          {
            return (j-i);
            break;
          }
        else
          {
            if (stra[j]==strb[i])
              i++;
            else
              i=00;
          }
       }
        if (i<strlen(strb)
        
     return 255;
    }
    [/code]
  7. #17
    2013/05/11
    383
    2

    پاسخ : تحلیل کد فرستاده شده از sim900

    سلام اول از همه از شما چهار تا دوست خوبم

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت




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

    تو این برنامه ای که دوست خوبمون

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    نوشته ی سوالی دارم ؟

    این تابع
    sim_int_code
    تو روال وقفه میکرو قرار میدید؟

    سوال دوم
    برای تحریک کردن وقفه میکرو از پایه 4 ماژول SIM900 استفاده میکنید؟

    سوال سوم
    این پایه شماره 4 برای تماس و SMS کار برد داره برای باقی پیام ها باید پیکار کرد ؟؟؟؟

    بعنوان مثال:
    پیام هایی که خود مازول میفرسته که مربوط به تماس و SMS نیستن مثل وضعیت ریجستر بودن ماژول؟؟؟(AT دقیق یادم نیست چی بود..)

    البته اینو باید بگم ی سوال دارم با 3 تا زیر سوال :mrgreen:
  8. #18
    2010/06/10
    583
    56

    پاسخ : تحلیل کد فرستاده شده از sim900

    نقل قول نوشته اصلی توسط h.torabi
    سلام اول از همه از شما سه تا دوست خوبم

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ,

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


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

    تو این برنامه ای که دوست خوبمون

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    نوشته ی سوالی دارم ؟

    این تابع
    sim_int_code
    تو روال وقفه میکرو قرار میدید؟

    سوال دوم
    برای تحریک کردن وقفه میکرو از پایه 4 ماژول SIM900 استفاده میکنید؟

    سوال سوم
    این پایه شماره 4 برای تماس و SMS کار برد داره برای باقی پیام ها باید پیکار کرد ؟؟؟؟

    بعنوان مثال:
    پیام هایی که خود مازول میفرسته که مربوط به تماس و SMS نیستن مثل وضعیت ریجستر بودن ماژول؟؟؟(AT دقیق یادم نیست چی بود..)

    البته اینو باید بگم ی سوال دارم با 3 تا زیر سوال :mrgreen:
    خواهش میکنم دوست من
    بله من از وقفه خود میکرو (usart) استفاده کردم در مورد پایه 4 نظری ندارم چون کار نکردم باهاش و ok و error و اینارو نمیده
    هر بار که یک کاراکتر وارد میکرو میشه یه وقفه رخ میده تابع sim_int_code اجرا میشه توی تابع اگه کاراکتر space بود یا 0x0a هیچ کاری انجام نمیشه یعنی عملا نادیده گرفته میشه و حدف میشه اگه 0x0d بود یه شمارنده اینو میشمره اگه کاراکتر دیگه ای بود داخل یه ارایه میره وقتی 0x0d به 2 یا بیشتر رسید کد داخل ارایه تحلیل میشه فلگ مورد نظز ریترن میشهبه تابع اصلی اینتراپت و ریخته میشه تو یه متغییر گلوبال بعد تحلیل کد ارایه خالی و تعداد شمارنده 0x0d هم 0 میشه یعنی عملا ریست میسه واسه ست جدید داده . از خط 276 تا اخر دقیقا یک نمونه از برنامه وجود داره که اگه عینا بنویسید کار میکنه
    البته از تابع usart خودم استفاده کردم تابع کدویزارد مشکل داره با وقفه درست و درمون جواب نمیده
    اشکهايي که پس از هر شکست ميريزيم همان عرقيست که براي پيروزي نريخته ايم.
    هيتلر
صفحه 2 از 2 نخست 12
نمایش نتایج: از 11 به 18 از 18

موضوعات مشابه

  1. کمک در تحلیل کد(کیا می تونن این کد به زبان C رو برام تحلیل کنن؟)
    توسط روح الامین در انجمن میکروکنترلرهای AVR
    پاسخ: 12
    آخرين نوشته: 2017/04/29, 09:37
  2. مقایسه بیتهای دریافت شده با فرستاده شده
    توسط masloob81 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 4
    آخرين نوشته: 2015/03/31, 20:11
  3. دريافت كد فرستاده شده از كنترل تلوزيون
    توسط haji125 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2010/08/24, 15:27
  4. پاسخ: 3
    آخرين نوشته: 2009/09/09, 13:21
  5. نمايش ديتاي فرستاده شده در ترمينال code vision
    توسط (soheila) در انجمن میکروکنترلرهای AVR
    پاسخ: 10
    آخرين نوشته: 2008/07/23, 12:27

کاربرانی که این تاپیک را مشاهده کرده اند: 0

هیچ عضوی در لیست وجود ندارد.

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

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