VERSION 4.00 Begin VB.Form dma9118 Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "9118 DMA" ClientHeight = 4905 ClientLeft = 2070 ClientTop = 1545 ClientWidth = 7665 BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} Name = "MS Sans Serif" Size = 8.25 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H0000FFFF& Height = 5310 Left = 2010 LinkTopic = "Form1" ScaleHeight = 4905 ScaleWidth = 7665 Top = 1200 Width = 7785 Begin VB.CommandButton btnExit Appearance = 0 'Flat BackColor = &H80000005& Caption = "Exit" Height = 500 Left = 6120 TabIndex = 4 Top = 4080 Width = 1000 End Begin VB.CommandButton btnStart Appearance = 0 'Flat BackColor = &H80000005& Caption = "Start" Height = 500 Left = 4680 TabIndex = 3 Top = 4080 Width = 1000 End Begin VB.Frame frmData Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "Buffer Size" ForeColor = &H00FF0000& Height = 615 Left = 2160 TabIndex = 2 Top = 3960 Width = 1935 Begin VB.ComboBox cobData Appearance = 0 'Flat Height = 315 Left = 120 Style = 2 'Dropdown List TabIndex = 15 Top = 240 Width = 975 End Begin VB.Label labData Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "Samples" ForeColor = &H0000FFFF& Height = 255 Left = 1155 TabIndex = 16 Top = 255 Width = 720 End End Begin VB.Frame frmSample Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "Sampling Rate" ForeColor = &H00FF0000& Height = 615 Left = 120 TabIndex = 1 Top = 3960 Width = 1700 Begin VB.ComboBox cobSample Appearance = 0 'Flat Height = 315 Left = 120 Style = 2 'Dropdown List TabIndex = 14 Top = 240 Width = 975 End Begin VB.Label Label1 Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "KHz" ForeColor = &H0000FFFF& Height = 255 Left = 1150 TabIndex = 17 Top = 260 Width = 450 End End Begin VB.Frame dmaFrame Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "DMA Input(A/D)" ForeColor = &H00FF0000& Height = 3375 Left = 120 TabIndex = 0 Top = 120 Width = 7455 Begin VB.Frame Card_Frame Caption = "Card Number" ForeColor = &H00FF0000& Height = 615 Left = 5880 TabIndex = 18 Top = 2520 Width = 1455 Begin VB.ComboBox Card_num Height = 315 Left = 120 TabIndex = 19 Text = "Number" Top = 240 Width = 1215 End End Begin VB.Frame frmChannel Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "AD Channel" ForeColor = &H00FF0000& Height = 1755 Left = 5880 TabIndex = 6 Top = 480 Width = 1380 Begin VB.OptionButton optChn Caption = "7" Height = 255 Index = 7 Left = 780 TabIndex = 27 Top = 1260 Width = 435 End Begin VB.OptionButton optChn Caption = "6" Height = 255 Index = 6 Left = 780 TabIndex = 26 Top = 960 Width = 435 End Begin VB.OptionButton optChn Caption = "5" Height = 255 Index = 5 Left = 780 TabIndex = 25 Top = 660 Width = 435 End Begin VB.OptionButton optChn Caption = "4" Height = 255 Index = 4 Left = 780 TabIndex = 24 Top = 360 Width = 435 End Begin VB.OptionButton optChn Caption = "3" Height = 255 Index = 3 Left = 180 TabIndex = 23 Top = 1260 Width = 435 End Begin VB.OptionButton optChn Caption = "2" Height = 255 Index = 2 Left = 180 TabIndex = 22 Top = 960 Width = 435 End Begin VB.OptionButton optChn Caption = "1" Height = 255 Index = 1 Left = 180 TabIndex = 21 Top = 660 Width = 435 End Begin VB.OptionButton optChn Caption = "0" Height = 255 Index = 0 Left = 180 TabIndex = 20 Top = 360 Value = -1 'True Width = 435 End End Begin VB.PictureBox picScreen Appearance = 0 'Flat AutoRedraw = -1 'True BackColor = &H00000000& ForeColor = &H80000008& Height = 2700 Left = 720 ScaleHeight = 178 ScaleMode = 3 'Pixel ScaleWidth = 331 TabIndex = 5 Top = 480 Width = 5000 End Begin VB.Label labValue Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "-5.00" ForeColor = &H0000FFFF& Height = 255 Index = 4 Left = 120 TabIndex = 13 Top = 3045 Width = 600 End Begin VB.Label labValue Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "-2.50" ForeColor = &H0000FFFF& Height = 255 Index = 3 Left = 120 TabIndex = 12 Top = 2400 Width = 600 End Begin VB.Label labValue Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "0.00" ForeColor = &H0000FFFF& Height = 255 Index = 2 Left = 120 TabIndex = 11 Top = 1740 Width = 615 End Begin VB.Label labValue Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "2.50" ForeColor = &H0000FFFF& Height = 255 Index = 1 Left = 120 TabIndex = 10 Top = 1065 Width = 615 End Begin VB.Label labValue Alignment = 1 'Right Justify Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "5.00" ForeColor = &H0000FFFF& Height = 255 Index = 0 Left = 120 TabIndex = 9 Top = 420 Width = 615 End Begin VB.Label labVots Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "Vots" ForeColor = &H0000FFFF& Height = 255 Left = 120 TabIndex = 8 Top = 200 Width = 495 End Begin VB.Label labSignal Appearance = 0 'Flat BackColor = &H00C0C0C0& Caption = "Signals" ForeColor = &H0000FFFF& Height = 300 Left = 2800 TabIndex = 7 Top = 200 Width = 780 End End End Attribute VB_Name = "dma9118" Attribute VB_Creatable = False Attribute VB_Exposed = False Dim gnADChn As Long Dim gnCount As Long Dim gnC2 As Long Dim gnBuffer(4000) As Integer Dim card As Integer Dim nRate As Long Dim range As Integer Dim card_number As Integer Private Sub btnExit_Click() If card >= 0 Then Release_Card (card) End End Sub Private Sub btnStart_Click() Dim result As Integer Dim half_ready As Byte Dim access_cnt As Long If card < 0 Then card_num.Enabled = False card = Register_Card(PCI_9118DG, card_number) If card < 0 Then MsgBox "Register Card Failed" End End If End If result = AI_9118_Config(card, P9118_AI_BiPolar Or P9118_AI_SingEnded, 0, 0, 0) result = AI_AsyncDblBufferMode(card, 0) result = AI_ContReadChannel(card, gnADChn, range, gnBuffer(0), gnCount, CSng(nRate * 1000), SYNCH_OP) btnStart.Enabled = True ShowData (gnCount) End Sub Private Sub card_DragDrop(Source As Control, X As Single, Y As Single) End Sub Private Sub card_num_Click() card_number = Val(Trim$(card_num)) End Sub Private Sub cobData_Click() gnCount = Val(Trim$(cobData)) End Sub Private Sub cobSample_Click() nRate = Val(Trim$(cobSample)) End Sub Private Sub Form_Load() card_num.AddItem "0" card_num.AddItem "1" card_num.AddItem "2" card_num.AddItem "3" card_num.AddItem "4" card_num.AddItem "5" card_num.AddItem "6" card_num.AddItem "7" card_num.AddItem "8" card_num.AddItem "9" card_num.AddItem "10" card_num.AddItem "11" card_num.AddItem "12" card_num.AddItem "13" card_num.AddItem "14" card_num.AddItem "15" card_num.ListIndex = 0 cobData.AddItem "500" cobData.AddItem "1000" cobData.AddItem "2000" cobData.AddItem "3000" cobData.AddItem "4000" cobData.ListIndex = 0 cobSample.AddItem "10" cobSample.AddItem "20" cobSample.AddItem "30" cobSample.AddItem "40" cobSample.AddItem "50" cobSample.AddItem "70" cobSample.AddItem "90" cobSample.AddItem "100" cobSample.ListIndex = 0 gnADChn = 0 card = -1 'Range values range = AD_B_5_V End Sub Private Sub Form_Unload(Cancel As Integer) If card >= 0 Then Release_Card (card) End Sub Private Sub optChn_Click(Index As Integer) gnADChn = Index End Sub Private Sub ShowData(count As Integer) Dim i As Integer, last As Integer, total As Integer Dim x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer Dim w As Long, h As Long, data As Long picScreen.Cls last = count w = picScreen.ScaleWidth h = picScreen.ScaleHeight 'gnBuffer contains 16-bit data, the 4 LSB is channel# 'VB's integer is signed integer, its range is -32768 to 32767 'We change the range to 0 to 65535 If gnBuffer(0) >= 0 Then data = gnBuffer(0) Else data = gnBuffer(0) + 65536 End If x1 = (last * w) / count y1 = h - ((((data And &HFFF0) / 16) * h) / 4096) last = last - 1 While (last > 0) If gnBuffer(count - last) >= 0 Then data = gnBuffer(count - last) Else data = gnBuffer(count - last) + 65536 End If x2 = (last * w) / count y2 = h - ((((data And &HFFF0) / 16) * h) / 4096) last = last - 1 picScreen.Line (x1, y1)-(x2, y2), &HFFFF& x1 = x2 y1 = y2 Wend End Sub