[VB6 ] 經由RS232作即時畫圖

看板Programming作者 (^^)時間14年前 (2011/02/17 01:44), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ [本文轉錄自 Visual_Basic 看板 #1DMtbi90 ] 作者: paulgoodke (^^) 看板: Visual_Basic 標題: [VB6 ] 經由RS232作即時畫圖 時間: Wed Feb 16 15:14:49 2011 小弟目前想利用RS232作即時性的畫圖(將資料即時畫在VB介面中) 可是一直跑不出來想問問看大家程式上是否有問題 下面是我的完整程式: Option Explicit Dim ReceiveStr, ReceiveData!(21) Dim TheFileName As String Private Sub Command1_Click() txtReceive.Text = "" Graph1.Cls End Sub --------------------儲存程式----------- Private Sub Command2_Click() '將接收的資料存檔 CommonDialog1.Filter = "Text File (*.txt)|*.txt" '設定存檔的類型 CommonDialog1.ShowSave '秀出另存檔案視窗. CommonDialog1.CancelError = True On Error GoTo ErrHandler TheFileName = CommonDialog1.FileName '記錄檔名 If TheFileName <> "" Then Open TheFileName For Output As #1 '打開檔案來輸出資料 Print #1, txtReceive.Text '利用Print敘述把資料寫出去 Close #1 End If TheFileName = "" ErrHandler: ' 使用者按了「取消」按鈕 Exit Sub End Sub ---------------------RS232------------------ Private Sub Command4_Click() MSComm1.Output = Trim(txtSend.Text) End Sub Private Sub Timer1_Timer() If MSComm1.InBufferCount > 0 Then txtReceive.Text = txtReceive.Text + Trim(MSComm1.Input) End If End Sub Private Sub CM_CONNECT_Click() Timer1.Enabled = Not Timer1.Enabled End Sub --------------------畫圖-------------------- Private Sub Form_Load() MSComm1.PortOpen = True Graph1.Scale (10, 10)-(1000, -10) Graph1.ForeColor = RGB(0, 0, 255) End Sub Private Sub MSComm1_OnComm() Dim buf$, StrPos%, i%, j%, TempSng! Dim X!(20), Y!(20) Select Case MSComm1.CommEvent ' 藉著取代底下每一個 case 陳述式來處理每個事件與錯誤事件 Case comEvCD ' CD 線的狀態發生變化. Case comEvCTS ' CTS 線的狀態發生變化. Case comEvDSR ' DSR 線的狀態發生變化. Case comEvRing ' Ring Indicator 變化. Case comEvEOF txtReceive.Text = txtReceive.Text + Trim(MSComm1.Input) Case comEvReceive ' 收到 RThreshold # of buf = Trim(MSComm1.Input) ReceiveStr = ReceiveStr + buf If InStr(1, ReceiveStr, "!") < 1 Then Exit Sub Else i = 0 Graph1.Cls Do StrPos = InStr(1, ReceiveStr, ",") If StrPos = 0 Then Exit Do ReceiveData(i) = Val(Left(ReceiveStr, StrPos - 1)) ReceiveStr = Right(ReceiveStr, Len(ReceiveStr)-InStr(1, ReceiveStr, ",")) X(i) = i Y(i) = ReceiveData(i) If i = 0 Then Graph1.PSet (X(i), Y(i)) Else Graph1.Line -(X(i), Y(i)) End If i = i + 1 Loop ReceiveStr = "" End If Case comEvSend ' 傳輸暫存區有 Sthreshold 個字元 ' End Select End Sub ------------------------------------------------------------------ 我是利用PictureBox來畫!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.39.138 ※ 編輯: paulgoodke 來自: 114.39.177.80 (02/17 00:01) ※ paulgoodke:轉錄至看板 ask 02/17 01:42 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.177.80
文章代碼(AID): #1DN0pyWP (Programming)
文章代碼(AID): #1DN0pyWP (Programming)