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

📄 classdpaedata.cls

📁 持续时间震级计算vb源码。利用地震波持续时间同地震震级的相关性来反映震源强度
💻 CLS
📖 第 1 页 / 共 2 页
字号:
   Open DPAEFileName For Binary As #DATAFileNo
     Seek DATAFileNo, RecordPointer(RecordNo)
     Get #DATAFileNo, , DATABlock
   Close #DATAFileNo
   RecordNo = DATABlock.EventNo
   RecorduS = DATABlock.uSTimer
End Property
Public Property Get RecordnS(ByVal RecordNo As Long) As Currency
   DATAFileNo = FreeFile
   Open DPAEFileName For Binary As #DATAFileNo
     Seek DATAFileNo, RecordPointer(RecordNo)
     Get #DATAFileNo, , DATABlock
   Close #DATAFileNo
   
   'RecordNo = DATABlock.EventNo
   RecordnS = DATABlock.nSTimer
End Property

Public Property Get TotalRecordNum() As Long
  TotalRecordNum = EventNum
End Property

Public Property Get UnitNo() As Integer
  UnitNo = Paras.UnitNo

End Property




'***************************************************************************************
'********* 控制参数对话区  *************控制参数对话区 *******控制参数对话区 ***********
'***************************************************************************************






'>>>>>>>> 触发地址
Public Property Get CurrentTrigAddressNo() As Integer
  CurrentTrigAddressNo = CurrentDelayNo
End Property
Public Property Let CurrentTrigAddressNo(ByVal AddrNo As Integer)
    CurrentDelayNo = AddrNo
End Property

Public Property Get TrigAddressClassNum() As Integer
  TrigAddressClassNum = UBound(DelayTable)
End Property
Public Property Get TrigAddressStr(ByVal AddrNo As Integer) As String
  TrigAddressStr = DelayTable(AddrNo).DelayStr
End Property


'>>>>>>>> 采样频率
Public Property Let CurrentADFrequencyNo(ByVal FreNo As Integer)
     CurrentADFreNo = FreNo
End Property
Public Property Get CurrentADFrequencyNo() As Integer
   CurrentADFrequencyNo = CurrentADFreNo
End Property
Public Property Get FrequencyClassNum() As Integer
   FrequencyClassNum = UBound(ADFreTable)
End Property
Public Property Get ADFrequencyStr(ByVal No As Integer) As String
  ADFrequencyStr = ADFreTable(No).FreStr
End Property
Public Property Get CurrentADFre() As Single
   CurrentADFre = ADFreTable(Paras.ADFre.No).Fre

End Property



'>>>>>>>> 增益与最大输入信号电平

Public Property Get CurrentGainNo() As Integer
    CurrentGainNo = Paras.Gain.No
End Property
 


Public Property Get GainClassNum() As Integer
   GainClassNum = UBound(GainTable)
End Property

Public Property Get GainString() As String
  GainString = Paras.Gain.GainStr
End Property





Public Property Get MaxSignalLevel() As Single  '单位毫伏
  MaxSignalLevel = GainTable(Paras.Gain.No).MaxInVol * 1000
 
End Property







'>>>>>>>>>> 触发电平
Public Property Get TrigLevelStr(ByVal ChannelNo As Integer) As String
Dim MaxLevel As Single
  Select Case ChannelNo
    Case 1
      MaxLevel = GainTable(CurrentCh1GainNo).MaxInVol * 1000
    Case 2
      MaxLevel = GainTable(CurrentCh2GainNo).MaxInVol * 1000
  End Select
  TrigLevelStr = Format$((CurrentTrigLevel.LevelPercent * MaxLevel) / 100, "0.0") + "mV"
End Property
Public Property Get TrigLevel(ByVal ChannelNo As Integer) As Single
Dim MaxLevel As Single
  Select Case ChannelNo
    Case 1
      MaxLevel = GainTable(CurrentCh1GainNo).MaxInVol
    Case 2
      MaxLevel = GainTable(CurrentCh2GainNo).MaxInVol
  End Select
  TrigLevel = CurrentTrigLevel.LevelPercent * MaxLevel    '单位:mV
End Property
Public Property Get TrigLevelPercent()
  TrigLevelPercent = CurrentTrigLevel.LevelPercent
End Property
Public Property Get TrigLevelPercentStr()
  TrigLevelPercent = CurrentTrigLevel.LevelPercentStr
End Property

Public Property Let SetTrigPercent(ByVal Percent As Single)  '触发电压百分数,在正负100%之间
Dim LevelCode As Byte

 With CurrentTrigLevel
    'If Level > 1000 Then Level = 1000
    'If Level < -1000 Then Level = -1000
    Percent = Percent * 10    '将倍率精度提高到1/1000,因为分档度数有-120至+120档
    If Percent > 1000 Then Percent = 1000
    If Percent < -1000 Then Percent = -1000
    
    .LevelPercent = Percent / 10
    .LevelPercentStr = Format$(.LevelPercent, "0.0") + "%"
    LevelCode = (3 * Percent / 25) + 128
    LevelCode = Round(LevelCode)   '触发电平百分数
    If LevelCode < 8 Then LevelCode = 8
    If LevelCode > 248 Then LevelCode = 248
    .ParaStr = ByteToBinStr(LevelCode)
 End With
End Property

Public Property Get RunMode() As Integer
  RunMode = CurrentRunNo
End Property
Public Property Let RunMode(RunNo As Integer)
   CurrentRunNo = RunNo
End Property




Public Property Get TrigMode() As Integer
  TrigMode = CurrentTrigModeNo
End Property

Public Property Let TrigMode(ByVal ModeNo As Integer)
  CurrentTrigModeNo = ModeNo
End Property


Public Property Get Operator() As String
  Operator = Trim$(Paras.Operator)
End Property

Public Property Let Operator(OperatorName As String)
  Paras.Operator = Trim$(OperatorName)
End Property

Public Property Get Brief() As String
   Brief = Trim$(Paras.Brief)
End Property

Public Property Let Brief(ByVal BriefText As String)
   Paras.Brief = Trim$(BriefText)
  
End Property


 
Public Property Get SampleLength() As Integer
   SampleLength = Paras.SampleLen
End Property


Public Property Get DATAFileName() As String
   DATAFileName = Trim$(Paras.DATAFileName)
End Property

Public Property Let DATAFileName(ByVal FileName As String)
   Paras.DATAFileName = Trim$(FileName)
End Property



'---------------------------------------------------------------------------------------
'-----------控制参数对话区结束  ---------控制参数对话区结束-----控制参数对话区结束------
'---------------------------------------------------------------------------------------

































'***********************************************
'********* 初始化数据表  ************************
'***********************************************
Private Sub InitialParaTable()
Dim i As Integer

'************ 分档延迟参数 ***************************************
  For i = 0 To 15
    DelayTable(i).No = i
    DelayTable(i).DelayStr = Format$(i * 256, "0") + "word"
    DelayTable(i).Para = 16 + i
    DelayTable(i).Addr = i * 256
  Next i

'************ 分档采样频率值 ***************************************

      ADFreTable(0).No = 0
      ADFreTable(0).FreStr = "50MHz"
      ADFreTable(0).Para = &HE
      ADFreTable(0).Fre = 50
      
      ADFreTable(1).No = 1
      ADFreTable(1).FreStr = "40MHz"
      ADFreTable(1).Para = &H16
      ADFreTable(1).Fre = 40
        
      ADFreTable(2).No = 2
      ADFreTable(2).FreStr = "20MHz"
      ADFreTable(2).Para = &H18
      ADFreTable(2).Fre = 20
        
      ADFreTable(3).No = 3
      ADFreTable(3).FreStr = "10MHz"
      ADFreTable(3).Para = &H19
      ADFreTable(3).Fre = 10
        
      ADFreTable(4).No = 4
      ADFreTable(4).FreStr = " 5MHz"
      ADFreTable(4).Para = &H1A
      ADFreTable(4).Fre = 5
     
      ADFreTable(5).No = 5
      ADFreTable(5).FreStr = " 2MHz"
      ADFreTable(5).Para = &H1B
      ADFreTable(5).Fre = 2
        
      ADFreTable(6).No = 6
      ADFreTable(6).FreStr = " 1MHz"
      ADFreTable(6).Para = &H1C
      ADFreTable(6).Fre = 1
        
      ADFreTable(7).No = 7
      ADFreTable(7).FreStr = "0.5MHz"
      ADFreTable(7).Para = &H1D
      ADFreTable(7).Fre = 0.5
        
'************ 分档增益值 ***************************************
  GainTable(0).No = 0
  GainTable(0).GainStr = "1倍 ±1V"
  GainTable(0).ParaStr = "00000000"
  GainTable(0).MaxInVol = 1
  
  GainTable(1).No = 1
  GainTable(1).GainStr = "2倍 ±0.5V"
  GainTable(1).ParaStr = "00001111"
  GainTable(1).MaxInVol = 0.5
  
  GainTable(2).No = 2
  GainTable(2).GainStr = "5倍 ±0.2V"
  GainTable(2).ParaStr = "00100011"
  GainTable(2).MaxInVol = 0.2
  
  GainTable(3).No = 3
  GainTable(3).GainStr = "10倍 ±0.1V"
  GainTable(3).ParaStr = "00110010"
  GainTable(3).MaxInVol = 0.1
  
  GainTable(4).No = 4
  GainTable(4).GainStr = "20倍 ±0.05V"
  GainTable(4).ParaStr = "01000001"
  GainTable(4).MaxInVol = 0.05


'*************  采样板联合工作模式  ****************************
 RunModeTable(0).No = 0        '"0" 表示各个采样板独立触发工作
 RunModeTable(0).ModeStr = "各采样板独立触发工作"
 RunModeTable(0).ParaStr = "0"
 RunModeTable(0).ModeCode = 0
 
 RunModeTable(1).No = 1        '"1" 各采样板联合同步触发
 RunModeTable(1).ModeStr = "各采样板联合同步触发"
 RunModeTable(1).ParaStr = "1"
 RunModeTable(1).ModeCode = 1
 
 
'************** 通道触发模式 ******************************
 TrigModeTable(0).No = 0
 TrigModeTable(0).ModeStr = "强迫启动触发"
 TrigModeTable(0).ParaStr = "0000"
 TrigModeTable(0).ModeCode = 0
 
 TrigModeTable(1).No = 1
 TrigModeTable(1).ModeStr = "第一通道正电平"
 TrigModeTable(1).ParaStr = "0001"
 TrigModeTable(1).ModeCode = 1
 
 TrigModeTable(2).No = 2
 TrigModeTable(2).ModeStr = "第一通道负电平"
 TrigModeTable(2).ParaStr = "0010"
 TrigModeTable(2).ModeCode = 2
 
 TrigModeTable(3).No = 3
 TrigModeTable(3).ModeStr = "第二通道正电平"
 TrigModeTable(3).ParaStr = "0101"
 TrigModeTable(3).ModeCode = 5
 
 TrigModeTable(4).No = 4
 TrigModeTable(4).ModeStr = "第二通道负电平"
 TrigModeTable(4).ParaStr = "0110"
 TrigModeTable(4).ModeCode = 6
 
 TrigModeTable(5).No = 5
 TrigModeTable(5).ModeStr = "外触发正电平"
 TrigModeTable(5).ParaStr = "1101"
 TrigModeTable(5).ModeCode = 13
 
 TrigModeTable(6).No = 6
 TrigModeTable(6).ModeStr = "外触发负电平"
 TrigModeTable(6).ParaStr = "1110"
 TrigModeTable(6).ModeCode = 14
 
'********** 系统缺省取值 *******************
  CurrentRunNo = 0
  CurrentTrigModeNo = 1
  CurrentCh1GainNo = 0
  CurrentCh2GainNo = 0
  CurrentADFreNo = 1
  CurrentDelayNo = 0
  CurrentSampleLen = 4096
  
  SetTrigPercent = 0
  
  
  Paras.Operator = "DPAE 操作员"
  Paras.Brief = "分布式并行声发射数据采集系统缺省参数设置"
  Paras.DATAFileName = DefaultDATAFileName
  
  
  
 

End Sub




















Private Sub Class_Initialize()
   InitialParaTable
End Sub

⌨️ 快捷键说明

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