
در فریم ورک .NET 2 به بعد فضا نام System.IO.Ports اضافه گردید این فضا نام دارای کلاسی با عنوان Serial Port می باشد که از این می توان برای دسترسی به پورت سریال و ارسال و دریافت اطلاعات از طریق این پورت انجام داد.
برای شروع باید فضا نام بالا را فراخوانی کنیم برای این کار از using استفاده می کنیم .
1 |
using System.IO.Ports; |
برای اینکه از طریق پورت سریال بتوانیم داده ارسال و دریافت کنیم باید پورت مورد نظر را open یا باز کنیم.پورت سریال دارای پارامترهایی می باشد که نرخ و سرعت تبادل اطلاعات رو ست می کند . پس قبل از باز کردن یک پورت باید مقدار پارامترها را تعیین کنیم این پارامترها عبارت است از
خوب بر اساس توضیحات داده شده مقادیر بالا را مقداردهی و پورت را با دستور زیر باز می کنیم.
01 |
//ایجاد یک آبجکت از serial port |
02 |
SerialPort ccom = new SerialPort(); |
03 |
//اگر پورت قبلا باز باشد آن را ببندد |
04 |
if (ccom.IsOpen == true) ccom.Close(); |
05 |
//مقدار دهی پارامتر ها |
06 |
ccom.BaudRate = 9600; |
07 |
ccom.DataBits = 8; |
08 |
ccom.Parity = (Parity)Enum.Parse(typeof(Parity), "None"); |
09 |
ccom.StopBits = (StopBits)Enum.Parse(typeof(StopBits), "One"); |
10 |
ccom.PortName = "COM1"; |
11 |
//باز کردن پورت |
12 |
ccom.Open(); |
برای آگاهی از پورت های سریال در سیستم می توان از دستور GetPortNames() برای این منظور استفاده کرد.
1 |
foreach (string s in SerialPort.GetPortNames()) |
2 |
Console.WriteLine(s); |
برای انجام عمل فرستادن اطلاعات به پورت از دستور Write برای این منظور استفاده می کنیم. این دستور اطلاعات را به دو صورت Text و Byte ارسال می کند به نمونه مثال های زیر توجه کنید.
1 |
//ارسال به صورت Text |
2 |
string msg = "Hello"; |
3 |
ccom.Write(msg); |
4 |
//ارسال به صورت Byte |
5 |
ccom.Write(new byte[] { 0x0A, 0xE2, 0xFF }, 0, 3); |
البته برای انتقال اطلاعات به صورت Byte بهتر است از روش پایین استفاده کنیم.یک تابع با نام HexToByte می نویسیم که مقدار را از Hex به Byte تبدیل می کند بعد از انجام عمل تبدیل آن را ارسال می کنیم.
01 |
private byte[] HexToByte(string msg) |
02 |
{ |
03 |
msg = msg.Replace(" ", ""); |
04 |
byte[] comBuffer = new byte[msg.Length / 2]; |
05 |
for (int i = 0; i < msg.Length; i += 2) |
06 |
comBuffer[i / 2] = (byte)Convert.ToByte(msg.Substring(i, 2), 16); |
07 |
return comBuffer; |
08 |
} |
09 |
|
10 |
|
11 |
|
12 |
|
13 |
ccom.Write(newmsg, 0, newmsg.Length); |
دراینجا برنامه ای را برای شما می گذارم که این برنامه درای یک کلاس با نام CommunicationManager.cs می باشد که شامل توابعی برای ارسال و دریافت اطلاعات از پورت سریال می باشد.این برنامه می تواند راهنمای خوبی برای شما باشد.
لینک دریافت فایل SerialPortCommunication
همانطور که می دانید از پورت سریال در ساخت واسط بین کامپیوتر و مدارات الکترونیکی کاربردی زیادی دارد که شاید دلیل آن سهولت کار با این پورت می باشد.
DB9 Male (Pin Side) DB9 Female (Pin Side)
DB9 Female (Solder Side) DB9 Male (Solder Side)
————- ————-
\ 1 2 3 4 5 / \ ۵ ۴ ۳ ۲ ۱ /
\ ۶ ۷ ۸ ۹ / \ ۹ ۸ ۷ ۶ /
——— ———
DB9 Female to DB9 Female Null-Modem Wiring
2 | 3 | 7 | 8 | 6&1| 5 | 4
—- —- —- —- —- —- —-
3 | 2 | 8 | 7 | 4 | 5 | 6&1
9-pin 25-pin Assignment From PC
—— —— ————————- ————
Shield 1 Case Ground Gnd
1 8 DCD (Data Carrier Detect) Input
2 3 RX (Receive Data) Input
3 2 TX (Transmit Data) Output
4 20 DTR (Data Terminal Ready) Output
5 7 GND (Signal Ground) Gnd
6 6 DSR (Data Set Ready) Input
7 4 RTS (Request To Send) Output
8 5 CTS (Clear To Send) Input
9 22 RI (Ring Indicator) Input
نحوه ارتباط به این صورت خواهد بود که پین RX کامپیوتر به پین TX مدار پین RX مدار به پین TX کامپیوتر وصل خواهد شد.
برای اطلاعات بیشتر می توانید به این آدرس مراجعه کنید.
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
مطالب مرجع و تخصصی در زمینه سیستم عامل ویژه دانشجویان و محققین علوم کامپیوتری
فهرست اصلي
فهرست موضوعی
لینکستان
دانشجویان کامپیوتر دانشگاه آزاد
جامعه برنامه نویسان ایران
انجمن تخصصی ASP.NET
انجمن برنامه نویسی NET.
شبکه اجتماعی متخصصان
باشگاه مهندسان ایران
مرجع متخصصین ایران
مرکز توسعه نرم افزار
انجمن تخصصی فلش
باشگاه طراحان ایران
ادوبی فلش پلتفرم
کامپوننت و ابزارها
سورس و راهنما
آموزش فلش
آخرين نوشته ها
درباره سیستم عامل
ارتباط با پورت سریال در C#
addon domain در plesk
استیو جابز هم رفت!
آخرین رکورد بازبینی شده
مشکل نصب SQL Server 2005
سمینار درگاه پرداخت آنلاین
تفاوت متد های get و post
امنیت فایل های اجرایی NET.
نکاتی که در برنامه نویسی باید/میتوانند رعایت شوند
Tableدر برابر Div
سخنان طلایی برنامه نویسان بزرگ
رمزگذاری فایلها
کارگاه آموزش سیستم حروفچینی لاتک و زی پرشین
کتاب آموزش لاتک Latex
مقایسه دستورات DELETE و TRUNCATE
با Cloudflare امنیت و سرعت سایت خود را افزایش دهید
چیست؟ nhibernate
معرفي فايل Web.Config
Eval شرطی
واکشی تعداد رکوردهای تمام جدولهای دیتابیس
واکشی نام تمام جدولهای دیتابیس
طرح روی جلد کتاب سیستم عامل سیلبر شاتس
کتاب برنامه نویسی و زبان اسمبلی - پیتر ایبل
کتاب آموزش ActionScript 3.0
حقیقت آزمایش !
افزونه های Reflector
جایگزین Reflector
sem چیست ؟
برنامه کنسولی چیست ؟
DESIGNED BY