datadisp.frm

来自「16 relay output channels and 16 isolated」· FRM 代码 · 共 113 行

FRM
113
字号
VERSION 5.00
Begin VB.Form frmDataDisp 
   Caption         =   "Advantech Demo: Data display"
   ClientHeight    =   4050
   ClientLeft      =   3195
   ClientTop       =   2025
   ClientWidth     =   3495
   LinkTopic       =   "Form2"
   PaletteMode     =   1  'UseZOrder
   ScaleHeight     =   4050
   ScaleWidth      =   3495
   Begin VB.ListBox DataList 
      Height          =   3765
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   3255
   End
   Begin VB.Menu file 
      Caption         =   "&File"
      Begin VB.Menu ExitDisp 
         Caption         =   "E&xit"
      End
   End
End
Attribute VB_Name = "frmDataDisp"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False



Private Sub ExitDisp_Click()
  Unload frmDataDisp
  frmSelDev.Show
End Sub

Private Sub Form_Load()
Dim i As Integer
Dim ptFAIData As PT_FAITransfer
Dim sDataBuffer() As Single
Dim iDataBuffer() As Integer
  
  'Stop Timer action
  frmRun.FAIChkTmr.Enabled = False

 'Stop AI conversion
  ErrCde = DRV_FAIStop(DeviceHandle)
  If (ChkErr(ErrCde) = 1) Then
    ErrCde = DRV_FreeDMABuffer(DeviceHandle, DRV_GetAddress(lDmaBufPtr))
    DRV_DeviceClose (DeviceHandle)
    Exit Sub
  End If

  'Get the AI conversion data
  ptFAIData.Overrun = DRV_GetAddress(wOverrun)
  ptFAIData.Count = ptAiStart.Count
  ptFAIData.start = 0                    'Start from buffer begging
  ptFAIData.DataType = frmSelDev.chkFloatData.value
  ptFAIData.ActiveBuf = 0                'Single buffer

  'If want floating data
  If (ptFAIData.DataType) = 1 Then
    ReDim sDataBuffer(ptFAIData.Count)
    ptFAIData.DataBuffer = DRV_GetAddress(sDataBuffer(0))
  'Else need Raw data
  Else
    ReDim iDataBuffer(ptFAIData.Count)
    ptFAIData.DataBuffer = DRV_GetAddress(iDataBuffer(0))
  End If
     
  ErrCde = DRV_FAITransfer(DeviceHandle, ptFAIData)
  If (ChkErr(ErrCde) = 1) Then
    ReDim sDataBuffer(0)
    ReDim iDataBuffer(0)
    ErrCde = DRV_FreeDMABuffer(DeviceHandle, DRV_GetAddress(lDmaBufPtr))
    DRV_DeviceClose (DeviceHandle)
    Exit Sub
  End If

  'Save data to data show screen
  frmDataDisp.DataList.Clear

  For i = 0 To ptFAIData.Count - 1
    If ptFAIData.DataType = 1 Then
      'Converting to Floating data
      frmDataDisp.DataList.AddItem Format(sDataBuffer(i), "#,##0.000000000")
    
    Else
      'Convert to Hex data
      frmDataDisp.DataList.AddItem Hex(iDataBuffer(i))
    End If
  Next i

  '{Free data buffer
  ReDim sDataBuffer(0)
  ReDim iDataBuffer(0)
  ErrCde = DRV_FreeDMABuffer(DeviceHandle, DRV_GetAddress(lDmaBufPtr))
  If (ChkErr(ErrCde) = 1) Then
    DRV_DeviceClose (DeviceHandle)
    End
  End If

  'Close device
  DRV_DeviceClose (DeviceHandle)
    
End Sub
Private Sub Form_Unload(Cancel As Integer)
  Unload frmDataDisp
  frmSelDev.Show
End Sub

⌨️ 快捷键说明

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