Thông báo

Collapse
No announcement yet.

Giao tiếp PC qua RS232

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Giao tiếp PC qua RS232

    Mình đang viết môt chương trình chat giữa 2 PC qua cổng COM (RS232) của máy tính . Tham khảo trên này thì tìm được 1 đoạn code cơ bản , nhưng được hướng dẫn là phải nối 2 chân 2 và 3 của RS232 lại . Nhưng mình thắc mắc là nếu ta có 2 PC thật , dùng cáp nối 2 COM của 2 PC này, không nối 2 chân 2 & 3 thì ... chương trình còn chạy được không nhỉ vì đọc code chẳng thấy chỗ nào nói về nhận dữ liệu,toàn gửi. Ai đã làm thực tế thì giúp mình với.

    Code:
    Private Sub cmdClear_Click()
        Text1.Text = ""
        Text2.Text = ""
    End Sub
    
    Private Sub cmdExit_Click()
    Unload Me
    End Sub
    
    Private Sub cmdSend_Click()
        MSComm1.Output = Text2.Text 
    End Sub
    
    Private Sub Form_Load()
        cmdSend.Caption = "&Send"
        Text1.Text = ""
        Text2.Text = ""
        Text1.Enabled = False
        cmdExit.Caption = "&Exit"
        With MSComm1
            .Settings = "9600,N,8,1"
            .CommPort = 1
            .RThreshold = 1
            .SThreshold = 0
            .InputMode = comInputModeText
            .InputLen = 0
            .Handshaking = comNone
            .InBufferSize = 1024
            .OutBufferSize = 1024
            If .PortOpen = False Then
              .PortOpen = True
            End If
             
        End With
    End Sub

    Còn đoạn code dưới này là truyền file qua COM giữa 2 PC , mình cũng chỉ thấy có lệnh gửi file mà không có lệnh nhận file.

    Code:
    Private Sub Command1_Click()
    Cdlg.DialogTitle = "Send file..."
    Cdlg.Filter = "Textfile (*.TXT)|*.txt|All Files (*.*)|*.*"
    Cdlg.InitDir = App.Path
    Cdlg.FileName = ""
    Cdlg.ShowOpen
    
    ' The Function Call
    If Cdlg.FileName <> "" Then SendFile (Cdlg.FileName)
    
    End Sub
    
    Private Sub Form_Load()
    
    ' Opens the selected com port
    MSComm1.CommPort = 1
    MSComm1.PortOpen = True
    
    End Sub
    
    
    ' here is the function
    Function SendFile(tmp$)
    
    Dim temp$
    Dim hsend, bsize, LF&
    
    ' Open file
    Open tmp$ For Binary Access Read As #2
    ' Check size on Mscomm1 OutBuffer
    bsize = MSComm1.OutBufferSize
    ' Check file length
    LF& = LOF(2)
    
    ' This code makes tiny pieces of data (Buffer sized)
    ' And send's it
    
    Do Until EOF(2)
        
        If LF& - Loc(2) <= bsize Then
            bsize = LF& - Loc(2) + 1
        End If
    
        ' Make room for some data
        temp$ = Space$(bsize)
        
        ' Put the data piece in the Temp$ string
        Get #2, , temp$
    
        MSComm1.Output = temp$
    
        Do
            ret = DoEvents()
        ' Wait until the buffer is empty
        Loop Until MSComm1.OutBufferCount = 0
    Loop
    
    ' close file
    Close #2
    
    End Function
    Last edited by ntn_vn1701; 21-03-2008, 16:29.

  • #2
    Vậy là thiếu phần nhận file hay ký tự rồi bác, phải có sự kiện được kích hoạt khi trong ReceivingBuffer có dữ liệu nữa bác.

    Bác xem trong cuốn Ngô Diên Tập, không thì search tiếp trên mạng, đầy cả.
    Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
    Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

    Comment


    • #3
      Ai rành về cái này viết thêm giúp với , mình chẳng biết làm tiếp thế nào nữa .

      Comment

      Về tác giả

      Collapse

      ntn_vn1701 Tìm hiểu thêm về ntn_vn1701

      Bài viết mới nhất

      Collapse

      Đang tải...
      X