📄 frmaitester.frm
字号:
Top = 285
Width = 1260
End
End
End
Attribute VB_Name = "frmAITester"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim bRet As Boolean
Private Sub chkEventEnabled_Click()
If chkEventEnabled.Value = Checked Then
DAQAI1.EventEnabled = True
Else
DAQAI1.EventEnabled = False
End If
End Sub
Private Sub chkFIFOEnabled_Click()
If chkFIFOEnabled.Value = Checked Then
DAQAI1.FIFOEnabled = True
txtFifoSize.Enabled = True
txtFifoSize.Text = DAQAI1.FIFOSize
Else
DAQAI1.FIFOEnabled = False
txtFifoSize.Enabled = False
End If
End Sub
Private Sub chkOverAllGain_Click()
If chkOverAllGain.Value = Checked Then
cmbInputRange.Enabled = True
cmdGainList.Enabled = False
DAQAI1.InputRangeMode = adOverallRange
Else
cmbInputRange.Enabled = False
cmdGainList.Enabled = True
DAQAI1.InputRangeMode = adDifferentRange
End If
End Sub
Private Sub cmbDataType_Click()
DAQAI1.DataType = cmbDataType.ListIndex
End Sub
Private Sub cmbInputRange_Click()
gGainCode = cmbInputRange.ListIndex
DAQAI1.OverallInputRange = gGainCode
End Sub
Private Sub cmbNumofChannels_Click()
DAQAI1.NumberOfChannels = cmbNumofChannels.ListIndex + 1
End Sub
Private Sub cmbStartChannel_Click()
Dim index As Integer
Dim i As Integer
DAQAI1.StartChannel = cmbStartChannel.ListIndex
cmbNumofChannels.Clear
index = cmbStartChannel.ListCount - cmbStartChannel.ListIndex
For i = 1 To index
cmbNumofChannels.AddItem str(i)
Next i
cmbNumofChannels.ListIndex = 0
End Sub
Private Sub cmbTransferMode_Click()
DAQAI1.TransferMode = cmbTransferMode.ListIndex
End Sub
Private Sub cmdAcquireStart_Click()
lstReading.Clear
If DAQAI1.OpenDevice Then
MsgBox DAQAI1.ErrorMessage, vbOKOnly
Exit Sub
End If
If DAQAI1.InputRangeMode = adDifferentRange Then
DAQAI1.InputRangeList = gGainCodeList
Else
DAQAI1.OverallInputRange = cmbInputRange.ListIndex
If DAQAI1.OverallInputRange < 0 Then
DAQAI1.OverallInputRange = 0
End If
End If
DAQAI1.StartChannel = cmbStartChannel.ListIndex
DAQAI1.SampleRate = txtSampleRate.Text
DAQAI1.NumberOfSamples = txtNumOfSample.Text
DAQAI1.ClockSource = cmbClockSource.ListIndex
DAQAI1.ExtTrigger = False
DAQAI1.DataType = cmbDataType.ListIndex
If chkFIFOEnabled.Value = 1 Then
DAQAI1.FIFOEnabled = True
Else
DAQAI1.FIFOEnabled = False
End If
If cmbTriggerSource.ListIndex = 1 Then
DAQAI1.ExtTrigger = True
End If
DAQAI1.CyclicMode = CyclicMode
cmdSelectDevice.Enabled = False
'cmdAcquireStart.Enabled = False
'cmdAcquireStop.Enabled = True
'cmdExit.Enabled = False
UIControl (False)
' Start getting data
bRet = DAQAI1.AcquireStart
If bRet Then
MsgBox DAQAI1.ErrorMessage, vbOKOnly
Exit Sub
End If
ErrorTimer.Enabled = True
cmdAutoGet.Enabled = True
End Sub
Private Sub cmdAcquireStop_Click()
' Stop get data
cmdAcquireStop.Enabled = False
bRet = DAQAI1.AcquireStop
If bRet Then
MsgBox DAQAI1.ErrorMessage, vbOKOnly
Exit Sub
End If
ErrorTimer.Enabled = False
' Close device
bRet = DAQAI1.CloseDevice
If bRet Then
MsgBox DAQAI1.ErrorMessage, vbOKOnly
Exit Sub
End If
UIControl (True)
End Sub
Private Sub cmdAutoGet_Click()
ScanTimer.Enabled = True
cmdAcquireStop.Enabled = False
cmdAutoGet.Enabled = False
cmdStopAutoGet.Enabled = True
End Sub
Private Sub cmdExit_Click()
' Stop get data
DAQAI1.AcquireStop
ErrorTimer.Enabled = False
' Close device
DAQAI1.CloseDevice
Unload Me
End
End Sub
Private Sub cmdGainList_Click()
Dim fGainList As New frmGainList
fGainList.Show vbModal, Me
End Sub
Private Sub cmdSelectDevice_Click()
Dim i As Integer
Dim j As Integer
Dim bRet As Boolean
ScanTimer.Enabled = False
ErrorTimer.Enabled = False
DAQAI1.SelectDevice
txtDeviceNum.Text = DAQAI1.DeviceNumber
txtDeviceName.Text = DAQAI1.DeviceName
DAQAI1.DeviceNumber = DAQAI1.DeviceNumber
DAQAI1.DeviceName = DAQAI1.DeviceName
cmbInputRange.Clear
' Open device
If DAQAI1.OpenDevice Then
MsgBox DAQAI1.ErrorMessage, vbOKOnly
Exit Sub
End If
If InStr(DAQAI1.DeviceName, "DEMO") <> 0 Then
cmbDataType.Enabled = False
cmbDataType.ListIndex = 1
DAQAI1.DataType = adReal
chkFIFOEnabled.Enabled = False
txtFifoSize.Text = 1
txtFifoSize.Enabled = False
chkOverAllGain.Enabled = False
Else
cmbDataType.Enabled = True
chkFIFOEnabled.Enabled = True
chkOverAllGain.Enabled = True
txtFifoSize.Enabled = True
End If
' Get input range list
bRet = DAQAI1.GetInputRange(gNumOfInputRange, gInputRangeList)
For j = 0 To gNumOfInputRange - 1
cmbInputRange.AddItem gInputRangeList(j)
Next j
If gNumOfInputRange <> 0 Then
cmbInputRange.ListIndex = 0
End If
' Get Max. channel number
If DAQAI1.MaxDifferentialChannel > DAQAI1.MaxSingleEndedChannel Then
i = DAQAI1.MaxDifferentialChannel
Else
i = DAQAI1.MaxSingleEndedChannel
End If
If i = 0 Then
MsgBox "Function Not Supported", vbOKOnly
Unload Me
End
End If
'allocate the array size
ReDim gGainCodeList(0 To i - 1) As Integer
cmbStartChannel.Clear
cmbNumofChannels.Clear
For j = 0 To i - 1
cmbStartChannel.AddItem (str(j))
cmbNumofChannels.AddItem (str(j + 1))
Next j
If i <> 0 Then
cmbStartChannel.ListIndex = 0
cmbNumofChannels.ListIndex = 0
End If
If DAQAI1.FIFOEnabled Then
txtFifoSize.Enabled = True
txtFifoSize.Text = DAQAI1.FIFOSize
Else
txtFifoSize.Enabled = False
End If
DAQAI1.CloseDevice
End Sub
Private Sub cmdStatus_Click()
txtStatus.Text = DAQAI1.AcquireStatus
End Sub
Private Sub cmdStopAutoGet_Click()
ScanTimer.Enabled = False
cmdAutoGet.Enabled = True
cmdAcquireStop.Enabled = True
cmdStopAutoGet.Enabled = False
End Sub
Private Sub DAQAI1_OnEventRaw(ByVal DataCount As Long, ByVal Data As Variant)
Dim i As Long
Dim j As Long
lstReading.Clear
If DataCount > 10 Then
j = 10
Else
j = DataCount
End If
For i = 0 To j 'DataCount - 1
lstReading.AddItem (Hex(Data(i)))
Next i
End Sub
Private Sub DAQAI1_OnEventReal(ByVal DataCount As Long, ByVal Data As Variant)
Dim i As Long
Dim j As Long
lstReading.Clear
If DataCount > 10 Then
j = 10
Else
j = DataCount
End If
For i = 0 To j - 1 'DataCount - 1
lstReading.AddItem (Format(Data(i), "0.000000"))
Next i
End Sub
Private Sub DAQAI1_OnTerminated()
' Stop get data
Dim binData(0 To 9) As Integer
Dim volData(0 To 9) As Single
Dim i As Integer
If DAQAI1.DataType = adRaw Then
DAQAI1.GetBufferData 0, 10, binData
For i = 0 To 9
lstReading.AddItem Hex(binData(i))
Next i
Else
DAQAI1.GetBufferData 0, 10, volData
For i = 0 To 9
lstReading.AddItem str(volData(i))
Next i
End If
DAQAI1.AcquireStop
' Close device
DAQAI1.CloseDevice
UIControl (True)
End Sub
Private Sub ErrorTimer_Timer()
txtErrorCode.Text = DAQAI1.ErrorCode
txtErrorMessage.Text = DAQAI1.ErrorMessage
End Sub
Private Sub Form_Load()
' Select default device
Call cmdSelectDevice_Click
' Setting initial value
txtDeviceNum.Text = DAQAI1.DeviceNumber
txtDeviceName.Text = DAQAI1.DeviceName
cmbDataType.ListIndex = DAQAI1.DataType
cmbStartChannel.ListIndex = DAQAI1.StartChannel
cmbTransferMode.ListIndex = DAQAI1.TransferMode
cmbClockSource.ListIndex = DAQAI1.ClockSource
If DAQAI1.FIFOEnabled Then
chkFIFOEnabled.Value = 1
txtFifoSize = DAQAI1.FIFOSize
Else
chkFIFOEnabled.Value = 0
txtFifoSize.Enabled = False
End If
If DAQAI1.EventEnabled Then
chkEventEnabled.Value = 1
Else
chkEventEnabled.Value = 0
End If
If DAQAI1.CyclicMode Then
CyclicMode.Value = 1
Else
CyclicMode.Value = 0
End If
If DAQAI1.ExtTrigger = True Then
cmbTriggerSource.ListIndex = 1
Else
cmbTriggerSource.ListIndex = 0
End If
cmbNumofChannels.ListIndex = DAQAI1.NumberOfChannels - 1
txtSampleRate.Text = DAQAI1.SampleRate
txtNumOfSample.Text = DAQAI1.NumberOfSamples
'End Add
ScanTimer.Enabled = False
cmdAutoGet.Enabled = False
cmdStopAutoGet.Enabled = False
lstReading.Clear
'txtFifoSize.Enabled = True
End Sub
Private Sub Form_UnLoad(cancel As Integer)
' Stop get data
DAQAI1.AcquireStop
ErrorTimer.Enabled = False
' Close device
DAQAI1.CloseDevice
End Sub
Private Sub ScanTimer_Timer()
Dim binReadings(0 To 9) As Integer
Dim volReadings(0 To 9) As Single
Dim i As Integer
lstReading.Clear
If DAQAI1.DataType = adRaw Then
DAQAI1.GetBufferData 0, 10, binReadings
For i = 0 To 9
lstReading.AddItem str(binReadings(i))
Next i
Else
DAQAI1.GetBufferData 0, 10, volReadings
For i = 0 To 9
lstReading.AddItem Format(volReadings(i), "0.000000")
Next i
End If
End Sub
Private Sub txtDeviceNum_Change()
DAQAI1.DeviceNumber = Val(txtDeviceNum.Text)
txtDeviceName.Text = DAQAI1.DeviceName
End Sub
Private Sub txtFifoSize_LostFocus()
If txtFifoSize.Text = "" Then
MsgBox "Invalidate FIFO size!", vbInformation And vbOKOnly
Exit Sub
End If
If Int(txtFifoSize.Text) < 0 Then
MsgBox "Invalidate FIFO size!", vbInformation And vbOKOnly
Exit Sub
End If
End Sub
Private Sub txtNumOfSample_Change()
DAQAI1.NumberOfSamples = Val(txtNumOfSample.Text)
End Sub
Private Sub txtSampleRate_Change()
DAQAI1.SampleRate = Val(txtSampleRate.Text)
End Sub
Private Sub UIControl(ByVal b_value As Boolean)
cmdAcquireStart.Enabled = b_value
cmdExit.Enabled = b_value
cmdAutoGet.Enabled = Not b_value
cmbStartChannel.Enabled = b_value
cmbNumofChannels.Enabled = b_value
cmbInputRange.Enabled = b_value
cmbDataType.Enabled = b_value
cmbClockSource.Enabled = b_value
cmbTransferMode.Enabled = b_value
chkOverAllGain.Enabled = b_value
txtSampleRate.Enabled = b_value
txtNumOfSample.Enabled = b_value
cmbTriggerSource.Enabled = b_value
chkFIFOEnabled.Enabled = b_value
txtFifoSize.Enabled = b_value
chkEventEnabled.Enabled = b_value
CyclicMode.Enabled = b_value
cmdAcquireStop.Enabled = Not b_value
cmdSelectDevice.Enabled = b_value
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -