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

📄 patsc.bas

📁 通过GPIB接口读取频谱仪的测试曲线
💻 BAS
字号:
Attribute VB_Name = "Module1"



Dim SysAddr As Integer
Dim TIMEOVER

Type VW
  V1 As Single
  V2 As Single
  V3 As Single
  V4 As Single
  W1 As Single
  W2 As Single
  W3 As Single
  W4 As Single
  A8 As Single
  A9 As Single
  B8 As Single
  B9 As Single
End Type
Const PltAddr = 5
Dim CrntVW As VW

Type PntParOpt
  InsMdl    As Integer
  Dte       As Integer
  Tim       As Integer
  FilNam    As Integer
  Gain      As Integer
  HlfPwrWid As Integer
  SidLobLvl As Integer
  MaxLvl    As Integer
  Freq      As Integer
  Pst       As String * 2
  FBR       As Integer
End Type
Type Grp
 DisMde     As Integer
 DisArea    As Integer
 LvlSpn     As Integer
 CenAglOpt  As Integer
 FBRAglAre  As Integer
 XdBwidth   As Single
End Type

Type FilType
 Drv      As String * 3
 Path     As String * 20
 FilNam   As String * 8
End Type

Const NoLvl = 32767

Dim ParOpt As PntParOpt
Dim GrpDis As Grp
Dim GetFil As FilType
Dim Lvl%(18432)
Dim PLTPAR(12) As String * 26

ReadCfgFil ParOpt, GrpDis, GetFil
GetFil.FilNam = Command$
MainLoop:
ProOpt ParOpt, GrpDis, GetFil
If GetFil.FilNam <> MapFil$ Then
  ReadFil GetFil
  HPWT% = 0
  GainT% = 0
  SLLT% = 0
  FBRT% = 0
  IVDAGL& = MaxAgl& + 1
End If
If FE% Then
 GetFil.FilNam = ""
 GoTo MainLoop
End If
MapFil$ = GetFil.FilNam
'
'Select angle display area
'
Select Case GrpDis.DisArea
  Case 1 To 5
   AglDisArea& = (MaxAgl& + 1) / GrpDis.DisArea
  Case 6
    AglDisArea& = (MaxAgl& + 1) / 8
  Case 7
    AglDisArea& = (MaxAgl& + 1) / 10
  Case 8
    AglDisArea& = (MaxAgl& + 1) / 20
  Case 9
    AglDisArea& = (MaxAgl& + 1) / 40
  Case Else
    GrpDis.DisArea = 1
     AglDisArea& = (MaxAgl& + 1) / GrpDis.DisArea
End Select
'
'Select center angle
'
Select Case GrpDis.CenAglOpt
  Case 0
    If SpfyAgl& > 0 Then
      CenAgl& = SpfyAgl&
    Else
      CenAgl& = MaxLvlAgl&
    End If
  Case 1
    CenAgl& = MaxLvlAgl&
  Case 2
    If Not (HPWT%) Then
      HlfPwrWid HPW, 3
      If CT% Then
        HPWT% = -1
      End If
    End If
    If HPWT% And HPW <> IVDAGL& Then
      CenAgl& = CenAglOf3dB&
    Else
      CenAgl& = MaxLvlAgl&
    End If
  Case Else
    Beep
End Select
'
'
'
If GrpDis.LvlSpn = 0 Then
  LvlSpn% = Fix(Abs((MaxLvl% - MinLvl%) / 1000) + 0.9) * 10
  If LvlSpn% < 10 Then LvlSpn% = 10
Else
  LvlSpn% = GrpDis.LvlSpn
End If

If GrpDis.DisMde% Then
  LowLvl% = MaxLvl% - LvlSpn% * 100
  Call REDRAW(CenAgl&, AglDisArea&, MaxLvl%, LowLvl%, GrpDis.XdBwidth * 100)
Else
  POLDIS CenAgl&, LvlSpn%
End If
If GrpDis.DisMde Then
  Crntcol% = 2
  If ParOpt.Pst = "LU" Then Crntcol% = 65
  LOCATE 2, Crntcol%: Print USING; "X:##.#

⌨️ 快捷键说明

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