代码拉取完成,页面将自动刷新
Attribute VB_Name = "SpecManager"
'频谱仪公共函数
Private Spec As New E4440A
Public StopFlag As Boolean
'设置频谱仪,调用SpecManager
Function OpenInstrument() As Boolean
'OpenInstrument = OpenSig(MyInstrConf.Sig1_Alias, MyInstrConf.Sig2_Alias) '连接信号源1,2
'If OpenInstrument = False Then Exit Function
'OpenInstrument = OpenSpec(MyInstrConf.SA_Alias) '连接频谱仪
OpenInstrument = OpenSig("Sig1", "Sig2") '连接信号源1,2
If OpenInstrument = False Then Exit Function
OpenInstrument = OpenSpec("SA") '连接频谱仪
End Function
Function OpenSpec(ByVal Name As String) As Boolean
If Spec.OpenFlag(Name) = False Then OpenSpec = Spec.OpenSpec(Name)
OpenSpec = Spec.OpenFlag(Name)
End Function
Function Sa_SN() As String
Sa_SN = Spec.GetSaSN
End Function
Sub SettingSpec()
With MyInstrConf
Spec.Set_Span .SpecSpan
Spec.Set_RBW .BW
Spec.Set_VBW .BW
'Spec.Set_Atten .Atten
Spec.Set_RefLevel .RefLevel
Spec.Set_RefLvlOffset .RefLvlOffset
End With
End Sub
Sub SetCenterFre(ByVal i As Integer)
Spec.Set_Center MyItemConf(i).PIMFrequency
End Sub
Sub SetF1F2(ByVal i As Integer) '设置F1、F2
With MyItemConf(i)
OutPutSig1 (.Sig1Frequency) * 1000000, .Sig1Power + .Sig1Offset '设置信号源1功率,频率值
OutPutSig2 (.Sig2Frequency) * 1000000, .Sig2Power + .Sig2Offset '设置信号源2功率,频率值
End With
End Sub
Sub ReadPIMPow(ByVal i As Integer) '读取对应频率的功率
With MyItemConf(i)
.PIMValue = Spec.Read(.PIMFrequency)
End With
End Sub
Sub Test1() '测试模式(Continue)
For i = LBound(MyItemConf()) To UBound(MyItemConf())
Call AddTestLine(i)
If message(i) = False Then Exit Sub '接线
SetF1F2 i '设置F1F2频率、功率
SetCenterFre i '设置频谱仪Center
SetSig "11" '打开RF
Spec.ContinueSweep '连续扫描
DelayTime 600 '延时600ms
If ContinueDisplayPoint(i) = False Then Exit Sub '连续显示PIM值(调试中。。。)
MyItemConf(i).FinishedFlag = True
ReadPIMPow i '从频谱仪取值
DisplayValue i '在ListView显示取样值
Next i
DisplayPass 'Pass/Fail
End Sub
Sub Test2() '单步扫频(Single)
For i = LBound(MyItemConf()) To UBound(MyItemConf())
If message(i) = False Then Exit Sub '接线
SetF1F2 i
SetCenterFre i '设置Center
SetSig "11" '打开RF
Spec.SingleSweep '单步扫描
ContinueDisplayPoint i '显示曲线
Next i
DisplayPass 'Pass/Fail
End Sub
Sub Test3() '连续扫频(Continue)
StopFlag = False
Do While StopFlag = False '检测停止测试标识
For i = LBound(MyItemConf()) To UBound(MyItemConf())
If message(i) = False Then Exit Sub '接线
If ContinueDisplayPoint(i) = False Then Exit Sub '显示曲线(单步扫描中。。。)
If MyItemConf(i).StepIndex = MyInstrConf.AllStep Then
Exit Do
Else
i = i + MyItemConf(i).StepNumber - 1
End If
Next i
DoEvents
Loop
DisplayPass 'Pass/Fail
End Sub
Function message(ByVal i As Integer) As Boolean
message = True
With MyItemConf(i)
If .PointIndex = 1 Then
SetSig "00" '关闭RF
message = TestForm.ShowMessage(1, .Msg, "接线")
End If
End With
End Function
Function ContinueDisplayPoint(ByVal i As Integer) As Boolean '敲击腔体。。。
Select Case MyInstrConf.Mode
Case 1
If i = UBound(MyItemConf()) Then
TestForm.ShowMessage 3, "敲击腔体..." & Chr(13) & Chr(13) & "退出测试?", "交调测试"
Else
TestForm.ShowMessage 3, "敲击腔体..." & Chr(13) & Chr(13) & "进入下一步测试?", "交调测试"
End If
消息框.SelectFlag = 2
Do While 消息框.SelectFlag = 2 '等待确定
ReadPIMPow i '读仪器值
DisplayPoint i, MyItemConf(i).PIMFrequency, MyItemConf(i).PIMValue '显示在Pesgo1
DisplayValue i '显示在ListView1
DoEvents
Loop
ContinueDisplayPoint = IIf(消息框.SelectFlag = 1, True, False) '返回用户选择值
Case 2
ReadPIMPow i
DisplayPoint i, MyItemConf(i).PIMFrequency, MyItemConf(i).PIMValue
DoEvents
DisplayValue i
Case 3
If MyItemConf(i).StepIndex = MyInstrConf.AllStep Then
TestForm.ShowMessage 3, "退出测试?", "交调测试"
Else
TestForm.ShowMessage 3, "进入下一步测试?", "交调测试"
End If
消息框.SelectFlag = 2
Do While 消息框.SelectFlag = 2 '等待确定
For j = i To i + MyItemConf(i).StepNumber - 1
If j = i Then ClearList j, i + MyItemConf(j).StepNumber - 1
SetF1F2 j
SetCenterFre j '设置Center
SetSig "11" '打开RF
Spec.SingleSweep '单步扫描
ReadPIMPow j
DisplayPoint j, MyItemConf(j).PIMFrequency, MyItemConf(j).PIMValue
DoEvents
DisplayValue j
Next j
DoEvents
Loop
ContinueDisplayPoint = IIf(消息框.SelectFlag = 1, True, False) '返回用户选择值
End Select
End Function
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。