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

📄 dataaction.bas

📁 Rs232串口通信专题范例,Vusual Basic,Mscomm,PCOMMPRO
💻 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 + -