📄 dataaction.bas
字号:
Attribute VB_Name = "DataAction"
'宣告一个执行的分析仪变数
Public Analyzer As HP3569a
'设定通讯埠变数
Private c_ComPort As MSComm
Sub CommPort(Obj As MSComm)
Set c_ComPort = Obj
End Sub
''''''''''''''''''''''''''''''''''''''''''''
''hp3569a 的类别测试模组示范程式
'将分析仪初始化
'请先将comm1的通讯埠设定正确後再开始执行
'''''''''''''''''''''''''''''''''''''''''''
Function AnalyzerReset()
Dim T%, DataNo%, t1&, t2&
Dim TestData(100) As Single
Analyzer.ComPort = c_ComPort
'将串列埠开启
Analyzer.PortOpen
If Analyzer.Init Then AnalyzerReset = True: Exit Function
TimeDelay 15000
DoEvents
'以下为Average的设定
Analyzer.AVGMode = 1
Analyzer.AVGIntTime = 0.0625
Analyzer.AVGTimeStp = 0.0625
Analyzer.AVGCount = 16
Analyzer.AVGTimeCon = 0.125
'Average 设定完後执行下列方法
Analyzer.AVGAct
DoEvents
TimeDelay 1500
'以下为Freq的设定
Analyzer.SNDFreqChan = 0
Analyzer.SNDStartFreq = 3
Analyzer.SNDStopFreq = 13
'执行Frequency的动作
Analyzer.SNDFreqAct
DoEvents
TimeDelay 2000
'以下为Input/Source的设定
Analyzer.Range1 = 9
Analyzer.CH1EU = 0.0475
Analyzer.CH1Weight = 0
Analyzer.SNDMicPol = 1
Analyzer.SNDInputAct
TimeDelay 2000
'以下是Trigger的设定
'Analyzer.SNDTRGAct
TimeDelay 2000
'Format 的设定
Analyzer.SNDFormat = 1
Analyzer.SNDStyle = 0
Analyzer.SNDFormatAct
TimeDelay 2000
'启动分析仪
Analyzer.Start
'时间延迟
TimeDelay 3500
c_ComPort.Output = "X33;"
AnalyzerReset = False
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''
'检视分析仪正常与否的副程式
'''''''''''''''''''''''''''''''''''''''''''''''''''
Function IsAnalyzerOK() As Integer
'True表正常,False表失败
IsAnalyzerOK = Analyzer.Test
End Function
'''''''''''''''''''''''''''''''''''''''''''''''''''
'检视分析仪状态的副程式
'传回值:0--正常
' 1--Pause 状态
' 2--Over 发生
' 4--电量过低
'''''''''''''''''''''''''''''''''''''''''''''''''''
Function AnalyzerStatus() As String
Dim Buf$, I%
Buf = "一切正常…"
I = Analyzer.StatusNow
If (I Mod 2) = 1 Then Buf = " 暂停中"
If (I Mod 4) \ 2 = 1 Then Buf = Buf & " Over"
If (I Mod 8) \ 4 = 1 Then Buf = Buf & " 电量过低"
AnalyzerStatus = Buf
End Function
''''''''''''''''''''''''''''''''''''''''''''''''
'取得声压位准值的副程式
''''''''''''''''''''''''''''''''''''''''''''''''
Function GetSPL() As Single
GetSPL = Analyzer.DataDump
End Function
''''''''''''''''''''''''''''''''''''''''''''''''
'取得倍频值的副程式
'所取的值存入TestData阵列中
''''''''''''''''''''''''''''''''''''''''''''''''
Sub GetOctaveBand(DataNo%, TestData!())
Analyzer.SNDTRGAct
'TimeDelay 500
'启动分析仪
Analyzer.Start
Analyzer.SNDData DataNo, TestData()
Analyzer.SNDTRGAct
Analyzer.Start
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -