Home Parallel Port Serial Port USB Webboard API I/O Today Project Directory .NET VB VC++



English Page Click Here
 Hardware Interfacing in VB.NET framework programming.

Serial Port Communication in VB.NET Programming


การเขียนโปรแกรม VB.NET ติดต่อ Serial Port

บทความนี้ ผมจะแนะนำคุณในการเริ่มต้นทำการติดต่อ Serial port ใน .NET platform โดยใช้ภาษา Visual Basic. ที่รู้ๆนะ .NET Framework เวอร์ชั่นแรกๆนี้ มันไม่สนับสนุนการควบคุมโดยตรงกับ Comm Port
Class นี้ จะเรียก Win32 API . (หมายเหตุ: ผมจะเรียก Comm Port ในความหมายเดียวกันกับคำว่า COM Port, Serial Port หรือ RS232 port)
เราจะใช้ คลาสชื่อ RS 232 โดยเขียนมาจาก visual basic .

บทความนี้จะทำให้คุณเรียนรู้ เรื่อง Serial Port ดังนี้
  • ทดสอบว่า Comport ว่าง พร้อมใช้งานหรือไม่.
  • ใช้ Comm Port ในการติดต่อกับ Modem(โมเด็ม).
  • การใช้ Win32 API ในการเรียกฟังก์ชั่นเพื่อต่อติดกับ CommPort

คลาส SerialPort

Rs232.vbคือ โครงสร้างสำหรับคลาส RS232 นี้ ซึ่งใช้การควบคุม เข้าถึง Comm Port ซึ่งมันจะอยู่ใน Project ที่ผมเอามาให้ Download อยู่แล้วครับ.

สร้าง Serial Port object

กำหนดตัวแปรด้วย คลาส Rs232 สำหรับติดต่อ และสามารถใช้ควบคุม commport

Private m_CommPort As New Rs232

How to Using Connect Comm Port

เราจะใช้ ฟังก์ชั่น

  • Open(Comm Port,BauRate,DataBit,Parity,StopBit,DataStopBit,BufferSize) : เปิดพอร์ตใหม่สำหรับติดต่อ CommPort
  • Write(Buffer Size,Buffer String) : เขียนข้อมูลไปที่บัฟเฟอร์
  • Read(Byte to Read) : อ่านข้อมูลที่บัฟเฟอร์
  • Close()

Example Code

' อันนี้ เราต้องการไปกำหนดค่าต่างๆที่ได้มาจาก Public properties ของงคลาส Rs232 .
m_CommPort. Open(m_ModemPort, 115200, 8, Rs232.DataParity.Parity_None, Rs232.DataStopBit.StopBit_1, 4096)

' เขียนคำสั่ง AT Command ไปที่พรอต.
m_CommPort.Write(Encoding.ASCII.GetBytes("AT" & Chr(13)))

' คำสั่งหน่วงเวลา เพราะว่า Modem จะมีการเวลาในการตอบสนอง.
System.Threading.Thread.Sleep(200)

' DoEvents คำสั่งเพื่อให้ CPU ไปงานอย่างอื่น บ้าง.
Application.DoEvents()

' ปิด Comm Port
m_CommPort.Close()

สำหรับการอ่านข้อมูลจาก COM port, ถ้าเราทำปุ่ม Read ฟังก์ชั่นนี้จะอ่านข้อมูลมาจาก Buffer โดยมันจะแสดงค่าใน TextBox โดยผมนำโค๊ดตัวอย่างมาให้ดูดังด้านล่าง

Private Sub tmrReadCommPort_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrReadCommPort.Tick
   Try    ' เนื่องจากความยาวของข้อมูล การอ่านแต่ละ byte ในแต่ละครั้งที่ Output ของมัน.
     While (m_CommPort. Read(1) <> -1)
     ' เขียนข้อมูลออกไปที่ Screen.
       WriteMessage(Chr(m_CommPort.InputStream(0)), False)
     End While
      Catch exc As Exception
      ' การตรวจสอบนี้คือ เหตุการณ์เกิดเมื่อไม่มีข้อมูลเข้ามาto read.
      ' ไม่มีการทำอะไร,ให้ไปทำต่อ.

   End Try
End Sub

ตัวอย่างโปแกรม

ฟอร์มหลัก

  • กดปุ่ม "Check for Ports" เพื่อ ตรวจสอบ Comp Port ในเครื่องคอมพิวเตอร์.
  • ข้อความแสดงผลการทำงาน แสดงดังรูป

    "ดูรูปด้านบนนะ"
  • กดปุ่ม "Check for Moderm" เพื่อ ตรวจสอบ Moderm .
  • Message List show in Textbox after checking moderm ในเครื่องคอมพิวเตอร .
  • สำหรับการงเริ่มต้น ติดต่อกับ Serial Port ให้ลองกดปุ่ม "Send AT Command" เพื่อลองส่งคำสั่งผ่านพรอต์ ด้วย AT Command ผลที่ได้แสดงดังรูปด้านล้าง

    "ดูรูปด้านบนนะ"

ระบบที่รองรับ
  • Microsoft Visual Studio.NET Professional หรือดีกว่า.
  • Windows 2000 or Windows XP.
  • Modem โมเด็ม ติดตั้งที่เครื่องหรือยัง หรือต่อกับ Comm Ports หรือยัง.
การรัน โปรเจ็ค
สำหรับการจะรันโปรเจ็คนี้
  • คลิก ดาว์ลโหลดซอส์ทโค๊ด ของโปรเจ็คนี้
  • Unzip ซอส์ทโค๊ด ใน ไดเร็คทรอรี่ของคุณที่เลือกไว้.
  • เปิดไฟล์ VB.NET Comm Port.sln .
  • กดปุ่ม Run โปรแกรม แล้วจากนั้นก็ลองกด ปุ่มต่างๆใน Form นั้น เพื่อทดสอบฟังส์ชั่น ต่างๆที่ได้กล่าวไปแล้ว
  • ลองพิจรณา Code ใน Project นี้ เพื่อทำความเข้าใจ ว่าแต่ละ คำสั่งทำงานอย่างไร.


Copyright (c) 2000 thaiio.com all rights reserved.  Contact webmaster :webmaster@thaiio.com