تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 5 از 5

نام تاپيک: كار با پورت سريال در vb.net

  1. #1
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض كار با پورت سريال در vb.net

    كسي ميدونه چجوري بايد با پورت سريال تو vb.net :ار كرد؟
    و انكه مد ارتباطي سنكرونه يا آسنكرون

  2. #2
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

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

  3. این کاربر از عــــلی بخاطر این مطلب مفید تشکر کرده است


  4. #3
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    اگر HandShake باز باشد ارتباط همزمان خواهد بود که معمولا پیشنهاد نمی شود.
    اما اگر HandShake بسته باشد ماننن همان مثال علــــی ارتباط آسنکرون می شود.
    ارتباط آسنکرون با رایانه مناسب تر است چون که طراحی نرم افزار ساده تر و افت سرعت در device متصل رخ نمی دهد. چون معمولا قطعه متصل شونده یک میکروکنترلر است سرعت بسیار کمتری نسبت به PC دارد و ارزش همزمانی با PC را ندارد. اما بین دو میکرو همزمانی قابل قبول تر است. البته همیشه طراح است که تصمیم می گیرد.

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

    به نظر من بهتر است که ارتباط را آسنکرون کرده و خودتان یک CRC یا مشابه آن را بسازید و نرم افزاری بررسی کنید. کمی افت سرعت دارد اما نحوه ارتباط راحت تر خواهد بود.

    موفق باشید.
    Last edited by Msba; 18-11-2011 at 12:17.

  5. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  6. #4
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Mar 2007
    پست ها
    445

    پيش فرض

    اگر HandShake باز باشد ارتباط همزمان خواهد بود که معمولا پیشنهاد نمی شود.
    اما اگر HandShake بسته باشد ماننن همان مثال علــــی ارتباط آسنکرون می شود.
    ارتباط آسنکرون با رایانه مناسب تر است چون که طراحی نرم افزار ساده تر و افت سرعت در device متصل رخ نمی دهد. چون معمولا قطعه متصل شونده یک میکروکنترلر است سرعت بسیار کمتری نسبت به PC دارد و ارزش همزمانی با PC را ندارد. اما بین دو میکرو همزمانی قابل قبول تر است. البته همیشه طراح است که تصمیم می گیرد.

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

    به نظر من بهتر است که ارتباط را آسنکرون کرده و خودتان یک CRC یا مشابه آن را بسازید و نرم افزاری بررسی کنید. کمی افت سرعت دارد اما نحوه ارتباط راحت تر خواهد بود.

    موفق باشید.
    هدف ارتباط با يه avr كه طبق گفته شما اگهhandshake بسته باشه ميشه asyncrone
    فقط يه سوال اگه يه رشته مثل Press any key رو بخواي بفرستي با توجه به 8 بيتي بودن رجيستر ميكرو هر يه كاراكتر كه ارسال ميشه pc درخواست يه وقفه ميكنه يا نه اولين كاركترو كه ميفرسته وقفه فعال ميشه و تا وقتي close پورت و اجرا نكنه از وقفه خارج نميشيم

    ---------- Post added at 06:09 PM ---------- Previous post was at 06:06 PM ----------

    سلام دوست عزیز.
    بسیار ساده میتوانید اینکار را انجام دهید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در مورد سوال دومتون یکم توضیح بدید اولین باره میشنوم.
    یا علی.
    اين درسته؟
    SerialPort1.BaudRate = Val(ComboBox_Baud_Rate.Text)
    SerialPort1.PortName = ComboBox_cOM.Text
    SerialPort1.StopBits = StopBits.One
    SerialPort1.Parity = Parity.None
    SerialPort1.DataBits = 8
    SerialPort1.Open()
    Dim file_read_record As Integer
    FileOpen(1, file_save_temp, OpenMode.Binary, OpenAccess.Read)
    Do While Not EOF(1)
    file_read_record += 1
    Dim text_Out_serial As Byte
    FileGet(1, text_Out_serial, file_read_record)
    SerialPort1.Write(text_Out_serial)

    Loop
    FileClose(1)
    SerialPort1.Write("FINISH")
    SerialPort1.Close()
    Catch ex As Exception
    MessageBox.Show("پورت سريال يافت نشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
    End Sub

  7. #5
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    شما دو فرض برای خواندن دارید:
    1- ایونت ( تعریف ایونت بسیار کم متفاوت با اینتراپت است)
    2- پول
    در راه اول شما هر اطلاعاتی که Stop Byte سخت افزاری داشته باشد فراخوانی می گردد. یعنی در هر بایت دریافتی یک بار ایونت فراخوانی می شود. پس شما در این راه نیازمند یک List یا یک Queue هستید تا مقادیر آمده را پیوسته کنید. مزیت این راه عدم مشغول شدن Thread اصلی است.
    در راه دوم شما با یک Timer یا یک Thread دیگر در هر بازه ای مثلا 300ms پورت را بررسی می کنید ببینید بایتی برای خوانده هست یا نه بعد از مقادیر استفاده می کنید. در این راه شما از این موارد استفاده می کنید:
    این C# هست من VB بلد نیستم اما اگر یکم دقت کنید متوجه می شوید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    از نظر من راه اول بهتر است.
    یاد آورم شما می توانید یک علامت در نظر بگیرید که اگر آن دیتا ارسال شد و بعد آن علامت دیتا تمام شده است. این طوری می تونید پیوستگی اطلاعات ارسالی را تشخیص دهید.
    موفق باشید.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •