اطلاعیه

Collapse
No announcement yet.

جدا کردن یک سری داده دریافتی از پورت سریال vb

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

    جدا کردن یک سری داده دریافتی از پورت سریال vb

    سلام
    من از طریق پورت سریال یک رشته داده دریافت می کنم به صورت زیر :
    a=100
    b=357
    d=457
    batt=357
    می خواهم این رشته داده را درون متغییر های برنامه قرار بدم چطوری این ها را از هم در vb باید جدا کرد .
    متشکرم

    #2
    پاسخ : جدا کردن یک سری داده دریافتی از پورت سریال vb

    شما تو قسمت ف رستنده باید اول یه هدر تعریف کنی مثلا 3 بایتی که امکان مشابه قرار گرفتن با کدهای دیگه صفر باشه
    بعد تو وی بی اول هدر رو پیدا کن و بعد بادستور mid یه بایت یه بایت جدا کن
    ما زنده به آنیم که آرام نگیریم موجیم که آسودگی ما عدم ماست

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

    r.babazadeh@yahoo.com

    دیدگاه


      #3
      پاسخ : جدا کردن یک سری داده دریافتی از پورت سریال vb

      نیاز به اون کار نیست
      می تونی از دستور های کار با رشته استفاده کنی
      مثل substring
      به این صورت که وقتی رشته رو دریافت کردی دو کاراکتر اول رو جدا کنی و ببینی کدوم یک از امتغیر هات هست
      و بعد بقیه متن باقی مونده رو به عنوان مقدار متغیر در نظر بگیری
      اگه می گفتی با چه ورژنی کار می کنی بهتر می تونستم برات توضیح بدم

      دیدگاه


        #4
        پاسخ : جدا کردن یک سری داده دریافتی از پورت سریال vb

        از پاسخ شما متشکرم
        من vb6 استفاده می کنم
        الان داده ها رو تونستم از هم جدا کنم ولی یه مشکل دیگه دارم
        اول که من از یک تایمر برای خواندن دائم پورت ورودی استفاده کردم
        زمانی که برنامه را اجرا می کنم اولش خوبه ولی یه چند لحظه که گذشت داده ها کم و زیاد می شه . مثلا داده ارسالی a=123 ولی داده دریافتی a=1 یعنی دو داده حذف شده که اونم فکر کنم از سر ریز شدن بافر ورودی باشه .
        آیا راه حلی برای این مشکل دارید ؟

        دیدگاه


          #5
          پاسخ : جدا کردن یک سری داده دریافتی از پورت سریال vb

          لازم نیست از تایمر استفاده کنی
          شما می تونی از رویداد
          کد:
          Private Sub MSComm1_OnComm()
          
          End Sub
          استفاده کنی
          این رویداد وقتی اتفاق می افته که پورت کام یه اطلاعاتی دریافت کنه
          مثلا
          کد:
          Private Sub MSComm1_OnComm()
          Buffer= MSComm1.Input
          فراخوانی تابع خوندن متن و ریختن توی متغیر
          End Sub
          ولی قبلش باید با دستور
          کد:
           MSComm1.RThreshold = 5
          براش تعریف کنی که تعداد کاراکتر های دریافتی چندتا هست
          مثلا برای شما 5 تا میشه
          این دستور رو قبل از باز کردن پورت بزار
          یه دستور دیگه هم هست که میگه وقتی می خوای اطلاعات پورت رو بخونی ، تمام بافر رو بخون
          کد:
          MSComm1.InputLen = 0
          من ویژوال بیسیک 6 زیاد یادم نمیاد. روی کامپیوتر فقط .net2008 دارم

          دیدگاه

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