با سلام خدمت همه دوستان
من یه برنامه می خوام بنویسم که یه پورت نرم افزاری را به پورت سخت افزاری RS232 ارتباط بده و من بتونم اطلاعات رو روی اون پورت بریزم
لطفا کمکم کنید
Printable View
با سلام خدمت همه دوستان
من یه برنامه می خوام بنویسم که یه پورت نرم افزاری را به پورت سخت افزاری RS232 ارتباط بده و من بتونم اطلاعات رو روی اون پورت بریزم
لطفا کمکم کنید
باید از امکانات کلاس System.IO.Ports.SerialPort استفاده کنی. کار سختی نیست فقط باید یه سری تنظیمات اولیه مطابق با استاندارد پورت انجام بدی و بقیه اش دیگه مثل کار با بخشهای دیگه IO هست.
با تشکر از pezhmax
از این کلاس استفاده کردم
[HTML][/HTML]نقل قول:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO.Ports;
.
.
.
//configuring the serial port
serialPort1.PortName="COM1";
serialPort1.BaudRate=9600;
serialPort1.DataBits=8;
serialPort1.Parity=Parity.None;
serialPort1.StopBits= StopBits.One;
.
.
.
//opening the serial port
serialPort1.Open();
.
.
.
//write data to serial port
serialPort1.Write("ABC");
.
.
.
//close the port
serialPort1.Close();
ولی مشکل من اینه که :
سیستم من این پورت تو برای RS232 باز نمی کنه
تو آدرس زیر یه ترمینال هست که میتونی باهاش پورتتو چک کنی:
به نظرم این مشخصاتی که وارد مردی کامل نیستن.مثلا پارامترهای RTS و DTR رو مقدار دهی نکردی. اینا بسته به ارتباط Half Duplex و ... متفاوتن. البته این پارامترها باید منطبق با دیوایس ارتباطیت هم باشه.کد:http://msmvps.com/blogs/coad/archive/2005/03/23/SerialPort-_2800_RS_2D00_232-Serial-COM-Port_2900_-in-C_2300_-.NET.aspx
در ضمن اگر از مبدلهای USB به Serial استفاده میکنی. مطمئن شو که درایورش درست نصب شده و رو COM1 تنظیم شده. در غیر این صورت تو کدت اسم پورت رو عوض کن.
نکته آخر این که این پورتی که داری باهاش کار میکنی باید آزاد باشه. یعنی هیچ برنامه با سرویس دیگه ای بازش نکرده یاشه. اگر پورتی که داری بازش میکنی وجود نداشته باشه یا توسط یه برنامه دیگه اشغال شده باشه تو نمیتونی بازش کنی (معمولا COM1 توسط مودم اشغال هست.)