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

📄 testbas.bas

📁 PCI1713板卡驱动,VB编写,8个通道,每个通道500次采样,对采样数据处理,为稳定现场信号的不稳定性
💻 BAS
字号:
Attribute VB_Name = "TestBas"
Type ObjProperty
  strName  As String
  iType    As Long
  iMode    As Long
  iValue   As Variant
  strNote    As String
End Type

Type EnumProperty
  strName()  As String
  iValue()   As Long
End Type

Public ObjPro() As ObjProperty
Public EnumPro() As EnumProperty

Sub GetDevObjProperty(DatObj As Object, DDevObj As Object)
   Dim SvrDevQuery As Object, i As Long
   Set SvrDevQuery = DatObj.SvrDevQuery
   For i = 1 To UBound(ObjPro)
       ObjPro(i).iValue = SvrDevQuery.GetProperty(DDevObj, ObjPro(i).strName)
   Next i
End Sub

Sub SetDevObjProperty(DatObj As Object, DDevObj As Object)
   On Error Resume Next
   Dim SvrDevQuery As Object, i As Long
   Set SvrDevQuery = DatObj.SvrDevQuery
   For i = 1 To UBound(ObjPro)
       If ObjPro(i).iMode <> 2 Then
          SvrDevQuery.SetProperty DDevObj, ObjPro(i).strName, ObjPro(i).iValue
       End If
   Next i
End Sub

Sub QueryDevObj(DatObj As Object, DDevObj As Object)
  On Error Resume Next
  Dim i As Long, j As Long, n As Long
  Dim iIndex As Long, iSubIndex As Long, iType As Long, iMode As Long
  Dim strName As String, strNote As String, SvrDevQuery As Object, iValue As Long
  ReDim ObjPro(0) As ObjProperty
  ReDim EnumPro(0) As EnumProperty
  
  
  Set SvrDevQuery = DatObj.SvrDevQuery
  SvrDevQuery.SetDevObject DDevObj
  
  For iIndex = 0 To 100
      If (0 <> SvrDevQuery.QueryProperty(iIndex, strName, strNote, iType, iMode)) Then Exit For
      If iMode <> 2 Then
        i = UBound(ObjPro) + 1
        ReDim Preserve ObjPro(i)
        ObjPro(i).strName = strName
        ObjPro(i).strNote = strNote
        ObjPro(i).iType = iType
        ObjPro(i).iMode = iMode
      End If
  Next iIndex

  For iIndex = 1 To 100
      If (SvrDevQuery.QueryEnumName(-iIndex, strName) <> 0) Then Exit For
      i = UBound(EnumPro) + 1
      ReDim Preserve EnumPro(i)
      ReDim msg(0) As String, vv(0) As Long
      For iSubIndex = 0 To 100
          If (SvrDevQuery.QueryEnumItem(-iIndex, iSubIndex, strName, iValue) = 0) Then
             j = UBound(msg) + 1
             ReDim Preserve vv(j)
             ReDim Preserve msg(j)
             strName = Mid(strName, 2)
             n = InStr(strName, "__")
             If n > 1 Then
              strName = Left$(strName, n - 1) + "." + Mid$(strName, n + 2)
             End If
             n = InStr(strName, "_")
             If n > 1 Then
              strName = Left$(strName, n - 1) + "~" + Mid$(strName, n + 1)
             End If
             n = InStr(strName, "负")
             If n > 1 Then
              strName = Left$(strName, n - 1) + "_" + Mid$(strName, n + 1)
             End If
             n = InStr(strName, "到")
             If n > 1 Then
              strName = Left$(strName, n - 1) + "~" + Mid$(strName, n + 1)
             End If
             n = InStr(strName, "点")
             If n > 1 Then
              strName = Left$(strName, n - 1) + "." + Mid$(strName, n + 1)
             End If
             vv(j) = iValue
             msg(j) = strName
          Else
             Exit For
          End If
      Next iSubIndex
      j = UBound(msg)
      ReDim EnumPro(i).iValue(j)
      ReDim EnumPro(i).strName(j)
      For n = 1 To j
          EnumPro(i).iValue(n) = vv(n)
          EnumPro(i).strName(n) = msg(n)
      Next n
  Next iIndex
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -