⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmaitester.frm

📁 使用研华DAQ实现研华数据采集卡的多种功能。包括数据输入输出等。内含多个源码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         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 + -