VB6 With Serial Port Communication

การเชื่อมต่อทางฮาร์ดแวร

รูปแบบการประยุกต์เพื่อใช้งาน
จากรูป ผมใช้ระบบโทรศัพท์ที่สามารถส่งข้อมูลผ่านทาง Serial Port ต่อเข้ากับเครื่องคอมพิวเตอร์ทางคอมพอร์ต1และโปรแกรมให้คอมพิวเตอร์ สร้าง Text File และนำข้อมูลที่รับเข้ามาบันทึกลง Text File หลังจากนั้น โปรแกรมให้เครื่องส่งข้อมูลชุดเดิมที่รับเข้ามาส่งออกทางคอมพอร์ต 2
สำหรับการประยุกต์ใช้งานแล้วแต่ว่าจะใช้ เครื่องอะไรเป็นตัวรับ-ส่งข้อมูล อาจจะเป็นเครื่องอ่านแถบแม่เหล็ก (Magnetic Card Reader)หรือ Key Pad ,ฯลฯ ก็ได้ แต่ต้องรู้และเข้าใจข้อมูลทางเทคนิคส์ ของเครื่องนั้นนิดหน่อยครับ

หน้าตาของโปแกรม

----การทำงานของโปรแกรม

โปรแกรมนี้ผมนำเอาโค้ดการติดต่อสื่อสารผ่านพอร์ตอนุกรม จาก Thaiio.com มาปรับเปลี่ยนแก้ไขเพิ่มเติม ดังนั้นเข้าไปดูข้อมูลการตั้งชื่อของ Text Box และ ข้อมูลอื่นๆได้ที่นี่ ซึ่งทาง Thaiio.com ได้อธิบายไว้ชัดเจนอยู่แล้วส่วนข้อมูล ของโค้ดที่ผมโปรแกรมเพิ่มดูได้ที่นี่ครับ

Private Sub MSComm1_OnComm()
Dim fso As New FileSystemObject
Dim objFil As File
Dim objts As TextStream
Dim i As Integer
Dim file_name As String
On Error GoTo ErrH
Select Case MSComm1.CommEvent
' Event messages.
Case comEvReceive
Dim Buffer As Variant
Buffer = MSComm1.Input
'Send to Printer เมื่อต้องการส่งข้อมูลออกทางคอมพอร์ต2
'MSComm2.Output = Buffer
ShowData txtRXTX, (StrConv((Buffer), vbUnicode))
EventMsg$ = " Receive "
'บันทึกข้อมูลจาก Buffer สู่ Text File
file_name = Trim(txtfilename.Text)
Set objFil = fso.GetFile("c:\" & file_name & ".txt")
Set objts = objFil.OpenAsTextStream(ForAppending)
objts.Write Buffer
objts.WriteLine
objts.Close

'------------------------------------------------------------


อย่าลืมโหลด Scrip Runtime ด้วย!
ไม่เช่นนั้นจะสร้าง Text File ไม่ได้
Private Sub Label1_Change() 'สำหรับสร้าง Text File แบบอัตโนมัติเมื่อวันที่เปลี่ยน
Dim date_old, date_now As String
Dim filename AsString
Dim fso As New FileSystemObject
Dim objFil As File
Dim objts As TextStream
date_old = Trim(Mid(Label2.Caption, 1, 6))
date_now = Trim(Mid(Label1.Caption, 1, 6))
If date_old <> date_now Then
filename = date_now'ชื่อไฟล์จะเปลี่ยนไปตามวันที่ของเครื่อง
txtfilename.Text = filename
Label2.Caption = Label1.Caption
fso.CreateTextFile ("c:\" & filename & ".txt")
Set objFil = fso.GetFile("c:\" & filename & ".txt")
Else
filename = date_now
txtfilename.Text = filename
On Error GoTo err_file
Set objFil = fso.GetFile("c:\" & filename & ".txt")'ค้นหาว่ามีไฟล์อยู่ในระบบหรือไม่
End If
err_file:
If Err.Number = 53 Then'สร้างไฟล์ขึ้นมาใหม่เมื่อค้นหาไฟล์ไม่เจอ
fso.CreateTextFile ("c:\" & filename & ".txt")
End If
'---------------------------------------------------------------------------------------------
Download Code ได้ที่นี่.zip

แหล่งข้อมูลเพิ่มเติม
thaiio.com
http://www.thaiio.com
http://freevbcode.com/