INFO: Menerima Data menggunakan kontrol MSComm OnComm acara

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 194922 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menunjukkan dasar template untuk menggunakan suatu peristiwa yang didorong data menerima rutin dengan acara OnComm. Ini adalah metode yang direkomendasikan menerima semua jenis data menggunakan kontrol MSComm. Untuk informasi tentang Mengkonversi data biner, silakan lihat bagian referensi pada akhir Artikel ini.

INFORMASI LEBIH LANJUT

Ketika menggunakan kontrol MSCOMM untuk mengirim dan menerima serial data, terbaik untuk menggunakan komunikasi acara didorong. Metode ini lebih efisien daripada Polling, karena menggunakan lebih sedikit CPU waktu dan hanya akan memulai tindakan ketika masukan yang diterima. Di bawah ini adalah template sederhana untuk menggunakan yang akan memungkinkan untuk sangat efisien menerima karakter dengan kehilangan minimal data.

Idenya adalah untuk menggunakan OnComm acara untuk menerima data, kemudian menulis mentah data string dan menyebarkannya ke lain rutin untuk melakukan pengolahan data mentah. Lewat data untuk rutinitas lain memungkinkan acara OnComm menerima setiap peristiwa tanpa menjadi "ditekan," sementara parsing sebenarnya dari string berlangsung di tempat lain.

Contoh berikut akan menganggap bahwa Anda memiliki null modem kabel terpasang antara COM1 dan COM2. Hal ini hanya diperlukan untuk pengujian. App1 adalah COM1 aplikasi, App2 adalah aplikasi COM2.

Langkah-langkah untuk membuat App1

  1. Buat projek Standard EXE yang baru. Form1 dibuat secara default.
  2. Memilih komponen dari menu proyek, periksa "Microsoft Comm Control", dan klik OK.
  3. Menambahkan kontrol MSCOMM formulir.
  4. Tambahkan TextBox dan CommandButton ke bentuk. Perubahan MultiLine milik TextBox true.
  5. Tambahkan kode berikut untuk Form1's kode jendela:
          Private Sub Form_Load()
             Form1.Caption = "App1"
             With MSCOMM1
                .Handshaking = 2 - comRTS
                .RThreshold = 1
                .RTSEnable = True
                .Settings = "9600,n,8,1"
                .SThreshold = 1
                .PortOpen = True
                ' Leave all other settings as default values.
             End With
             Command1.Caption = "&Send"
             Text1.Text = "Test string from App1 "
          End Sub
    
          Private Sub Command1_Click()
             MSComm1.Output = Text1.Text
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
             MSComm1.PortOpen = False
          End Sub
    
    						

Langkah-langkah untuk membuat App2

  1. Mulai contoh baru dari Visual Basic.
  2. Buat projek Standard EXE yang baru. Form1 dibuat secara default.
  3. Memilih komponen dari menu proyek, periksa "Microsoft Comm Control", dan klik OK.
  4. Menambahkan kontrol MSCOMM formulir.
  5. Tambahkan TextBox ke bentuk. Mengubah properti MultiLine TextBox true. Memperbesar TextBox sehingga hal ini akan mencakup sebagian besar bentuk, seperti yang Anda akan menampilkan semua data yang diterima di dalamnya.
  6. Tambahkan kode berikut untuk Form1's kode jendela:
          Private Sub Form_Load()
             Form1.Caption = "App2"
             With MSComm1
                .CommPort = 2
                .Handshaking = 2 - comRTS
                .RThreshold = 1
                .RTSEnable = True
                .Settings = "9600,n,8,1"
                .SThreshold = 1
                .PortOpen = True
                ' Leave all other settings as default values.
             End With
             Text1.Text = ""
          End Sub
    
          Private Sub Form_Unload(Cancel As Integer)
             MSComm1.PortOpen = False
          End Sub
    
          Private Sub MSComm1_OnComm()
             Dim InBuff As String
    
             Select Case MSComm1.CommEvent
             ' Handle each event or error by placing
             ' code below each case statement.
    
             ' This template is found in the Example
             ' section of the OnComm event Help topic
             ' in VB Help.
    
             ' Errors
                Case comEventBreak   ' A Break was received.
                Case comEventCDTO    ' CD (RLSD) Timeout.
                Case comEventCTSTO   ' CTS Timeout.
                Case comEventDSRTO   ' DSR Timeout.
                Case comEventFrame   ' Framing Error.
                Case comEventOverrun ' Data Lost.
                Case comEventRxOver  ' Receive buffer overflow.
                Case comEventRxParity   ' Parity Error.
                Case comEventTxFull  ' Transmit buffer full.
                Case comEventDCB     ' Unexpected error retrieving DCB]
    
             ' Events
                Case comEvCD   ' Change in the CD line.
                Case comEvCTS  ' Change in the CTS line.
                Case comEvDSR  ' Change in the DSR line.
                Case comEvRing ' Change in the Ring Indicator.
                Case comEvReceive ' Received RThreshold # of chars.
                   InBuff = MSComm1.Input
                   Call HandleInput(InBuff)
                Case comEvSend ' There are SThreshold number of
                               ' characters in the transmit buffer.
                Case comEvEOF  ' An EOF character was found in the
                               ' input stream.
             End Select
    
          End Sub
    
          Sub HandleInput(InBuff As String)
             ' This is where you will process your input. This
             ' includes trapping characters, parsing strings,
             ' separating data fields, etc. For this case, you
             ' are simply going to display the data in the TextBox.
             Text1.SelStart = Len(Text1.Text)
             Text1.SelText = InBuff
          End Sub
    
    						

Langkah-langkah untuk menjalankan aplikasi

  1. Tekan tombol F5 atau klik tombol Jalankan pada setiap proyek. Anda akan perlu untuk bergerak aplikasi sehingga Anda dapat melihat mereka kedua berjalan pada saat yang sama waktu.
  2. Pastikan Anda memiliki standar null modem kabel antara COM1 dan COM2, atau mengubah properti MSComm1.Port untuk mencocokkan comm port Anda menggunakan.
  3. Klik CommandButton pada App1; Anda harus melihat string "tes string dari App1 "muncul di App2's TextBox untuk setiap klik tombol.

REFERENSI

Untuk mengkonversi data biner, silakan lihat berikut artikel di dalam Basis Pengetahuan Microsoft:
158008: HOWTO: menggunakan MSCOMM32.OCX untuk mentransfer Data pada DBCS Windows

Untuk informasi tambahan, silakan lihat artikel berikut di Basis Pengetahuan Microsoft:
194923: HOWTO: perangkap kontrol karakter menggunakan kontrol MSComm

Properti

ID Artikel: 194922 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Kata kunci: 
kbcode kbinfo kbio kbmt KB194922 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:194922

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com