اطلاعیه

Collapse
No announcement yet.

دریافت کامل از میکرو داخل لب ویو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دریافت کامل از میکرو داخل لب ویو

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

    #2
    پاسخ : دریافت کامل از میکرو داخل لب ویو

    شما باید سر وته هر کدام از دادها رو با یک حروف مشخص ببندی (فریم بسازی) و سپس ارسالش کنی در سمت لب ویو هم با دریافت اون فریم مقدار مورد نظرت را از داخلش بیرون بکشی مثلا میکرو دما را به این صورت میقرسته: A دماB و در سمت لب ویو A و B را دور میریزی و دما را از داخلش بیرون میکشی تمام.

    دیدگاه


      #3
      پاسخ : دریافت کامل از میکرو داخل لب ویو

      اول اینکه کاش مشخص میمردی متغیرهات نوعشون چیه؟
      در هر صورت متغیرهای بیش از یک بایتی (مثل float یا int که تعداد بایتهاشون هم بستگی به کامپایلر داره) رو آدرسشونو میگیری و به تعداد بایتهاشون از اون آدرس به بعد رو ارسال میکنی
      تو لب ویو هم همین بایها رو میگیری و شیفت میدی و به هم میچسبونی (با عملگر جمع یا or ) و بعدشم با type cast اون چیزی رو که میخوای بدست میاری
      * اگه سرعت (و تعداد بایتهای ارسالی یا در واقع روش ارسال) هم برات مهم نیست خیلی راحت هر متغیر رو با تابع printf تبدیل کن به بایتهای اسکی و ارسال کن مثلا عدد 123 تبدیل میشه به سه کاراکتر 1'',2',3'
      اونها رو ارسال کن بعد با توابع تبدیل اسکی به عدد (یا برنامه نویسی خودت)در لب ویو عکس کار فوق رو انجام بده

      دیدگاه


        #4
        پاسخ : دریافت کامل از میکرو داخل لب ویو

        نوشته اصلی توسط mojalan
        اول اینکه کاش مشخص میمردی متغیرهات نوعشون چیه؟
        در هر صورت متغیرهای بیش از یک بایتی (مثل float یا int که تعداد بایتهاشون هم بستگی به کامپایلر داره) رو آدرسشونو میگیری و به تعداد بایتهاشون از اون آدرس به بعد رو ارسال میکنی
        تو لب ویو هم همین بایها رو میگیری و شیفت میدی و به هم میچسبونی (با عملگر جمع یا or ) و بعدشم با type cast اون چیزی رو که میخوای بدست میاری
        * اگه سرعت (و تعداد بایتهای ارسالی یا در واقع روش ارسال) هم برات مهم نیست خیلی راحت هر متغیر رو با تابع printf تبدیل کن به بایتهای اسکی و ارسال کن مثلا عدد 123 تبدیل میشه به سه کاراکتر 1'',2',3'
        اونها رو ارسال کن بعد با توابع تبدیل اسکی به عدد (یا برنامه نویسی خودت)در لب ویو عکس کار فوق رو انجام بده

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

        بچه ها ای که این اطلاعات رو برام میفرستن تا من با لب ویو دریافت کنم اول هر داده یک حرف میزارن تا من دریافت کنم. مثلا :

        T33.23 {تاخیر میلی ثانیه}D125.45

        میخوام بدونم با چه ابزاری میتونم بفهمونم که اگه اول رشته T بود 5 کاراکتر بعدشو بزار توی جعبه متن 1 و اگر به D رسید 5 کاراکتر بعدشو بزار توی جعبه متن دوم تازه تاخیرشو هم نمیدونم چیکار کنم. میتونید برام ابزارشو معرفی کنید؟؟؟؟؟ اگه میشه یک بلوک دیاگرام ساده هم شکلشو بازرید ممنون میشم.

        دیدگاه


          #5
          پاسخ : دریافت کامل از میکرو داخل لب ویو

          نوشته اصلی توسط hassan1366
          شما باید سر وته هر کدام از دادها رو با یک حروف مشخص ببندی (فریم بسازی) و سپس ارسالش کنی در سمت لب ویو هم با دریافت اون فریم مقدار مورد نظرت را از داخلش بیرون بکشی مثلا میکرو دما را به این صورت میقرسته: A دماB و در سمت لب ویو A و B را دور میریزی و دما را از داخلش بیرون میکشی تمام.
          سلام،ممنون که کمکم میکنی، بچه ها ای که این اطلاعات رو برام میفرستن تا من با لب ویو دریافت کنم اول هر داده یک حرف میزارن تا من دریافت کنم. مثلا :

          T33.23 {تاخیر میلی ثانیه}D125.45

          میخوام بدونم با چه ابزاری میتونم بفهمونم که اگه اول رشته T بود 5 کاراکتر بعدشو بزار توی جعبه متن 1 و اگر به D رسید 5 کاراکتر بعدشو بزار توی جعبه متن دوم تازه تاخیرشو هم نمیدونم چیکار کنم. میتونید برام ابزارشو معرفی کنید؟؟؟؟؟ اگه میشه یک بلوک دیاگرام ساده هم شکلشو بازرید ممنون میشم.

          دیدگاه


            #6
            پاسخ : دریافت کامل از میکرو داخل لب ویو

            انشائ ا... که میتونید با پورت سریال تو لب ویو کار کنید
            یه برنامه کوچولو به این صورت که
            1- یه کاراکتر دریافت میکنید اگر T یا D نبود که هیچی و مرحله 1 تکرار میشود اگر بود به مرحله 2 میرویم
            2- در یک ساختار case برای قسمت T 5 کارکتر و برای قسمت D 6 کاراکتر دریافت میکنیم و به مرحله 3 میرویم
            3- کاراکترهای دریافتی در مرحله دو را با توابع convert string to double تبدیل به عدد اعشاری میکنیم و تمام

            دیدگاه


              #7
              پاسخ : دریافت کامل از میکرو داخل لب ویو

              نوشته اصلی توسط mojalan
              انشائ ا... که میتونید با پورت سریال تو لب ویو کار کنید
              یه برنامه کوچولو به این صورت که
              1- یه کاراکتر دریافت میکنید اگر T یا D نبود که هیچی و مرحله 1 تکرار میشود اگر بود به مرحله 2 میرویم
              2- در یک ساختار case برای قسمت T 5 کارکتر و برای قسمت D 6 کاراکتر دریافت میکنیم و به مرحله 3 میرویم
              3- کاراکترهای دریافتی در مرحله دو را با توابع convert string to double تبدیل به عدد اعشاری میکنیم و تمام
              من چطور میتونم یه متن رو که متغیر a که داخلش دما و متغیر b که داخلش دی اکسید هست رو جدا دریافت کنم. این اطلاعات به این صورت میاد که اول دما میاد و بعد از چند میلی ثانیه دیگه با تاخیر دی اکسید میاد.این تاخیر باعث شده که یه وقفه بین دریافت اطلاعات بیفته و کار رو خراب کنه.!!!!

              دیدگاه


                #8
                پاسخ : دریافت کامل از میکرو داخل لب ویو

                چرا کار خراب میشه عزیز.؟؟؟؟!!!!
                شما اون کاری که گفتم رو انجام دادی؟
                داخل یه حلقه وایل یه کاراکتر میخونی اگه T,D بود وارد کیس میشی وگرنه به خوندن ادامه میدی
                داخل کیس هم دو حالت داری واسه T 5 کاراکتر میخونی واسه D 6 تا
                بعدم با اون تابعی که گفتم تبدیل و خلاص

                دیدگاه

                لطفا صبر کنید...
                X