frmstart.frm

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

FRM
459
字号
VERSION 5.00
Begin VB.Form frmDevSel 
   Appearance      =   0  'Flat
   BackColor       =   &H80000005&
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "Alarm Demo: Select Input Device"
   ClientHeight    =   4464
   ClientLeft      =   1752
   ClientTop       =   1596
   ClientWidth     =   4236
   BeginProperty Font 
      Name            =   "MS Sans Serif"
      Size            =   7.8
      Charset         =   0
      Weight          =   700
      Underline       =   0   'False
      Italic          =   0   'False
      Strikethrough   =   0   'False
   EndProperty
   ForeColor       =   &H80000008&
   LinkTopic       =   "Form1"
   PaletteMode     =   1  'UseZOrder
   ScaleHeight     =   4464
   ScaleWidth      =   4236
   Begin VB.ListBox lstChannel 
      Height          =   1008
      Left            =   2400
      TabIndex        =   13
      Top             =   1800
      Width           =   1575
   End
   Begin VB.CommandButton cmdLatMode 
      Caption         =   "Latch"
      Height          =   375
      Left            =   2880
      TabIndex        =   11
      Top             =   3120
      Width           =   1095
   End
   Begin VB.TextBox txtLowAlarm 
      Height          =   375
      Left            =   1560
      TabIndex        =   8
      Top             =   3120
      Width           =   1215
   End
   Begin VB.TextBox txtHighAlarm 
      Alignment       =   1  'Right Justify
      Height          =   375
      Left            =   240
      TabIndex        =   7
      Top             =   3120
      Width           =   1215
   End
   Begin VB.ListBox lstModule 
      Appearance      =   0  'Flat
      Height          =   984
      Left            =   240
      TabIndex        =   4
      Top             =   1800
      Width           =   2055
   End
   Begin VB.CommandButton cmdExit 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      Caption         =   "E&xit"
      Height          =   495
      Left            =   2520
      TabIndex        =   2
      Top             =   3840
      Width           =   1095
   End
   Begin VB.CommandButton cmdRun 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      Caption         =   "&Run..."
      Height          =   495
      Left            =   480
      TabIndex        =   1
      Top             =   3840
      Width           =   1095
   End
   Begin VB.ListBox lstDevice 
      Appearance      =   0  'Flat
      Height          =   984
      Left            =   240
      TabIndex        =   0
      Top             =   480
      Width           =   3735
   End
   Begin VB.Label labChannel 
      BackColor       =   &H80000005&
      Caption         =   "Select a channel"
      Height          =   255
      Left            =   2400
      TabIndex        =   12
      Top             =   1560
      Width           =   1575
   End
   Begin VB.Label labLatMode 
      BackColor       =   &H80000005&
      Caption         =   "latch Mode"
      Height          =   255
      Left            =   2880
      TabIndex        =   10
      Top             =   2880
      Width           =   1095
   End
   Begin VB.Label labLowAlarm 
      BackColor       =   &H80000005&
      Caption         =   "Low Alarm"
      Height          =   255
      Left            =   1560
      TabIndex        =   9
      Top             =   2880
      Width           =   975
   End
   Begin VB.Label labHighAlarm 
      BackColor       =   &H80000005&
      Caption         =   "High Alarm"
      Height          =   255
      Left            =   240
      TabIndex        =   6
      Top             =   2880
      Width           =   975
   End
   Begin VB.Label labModule 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      Caption         =   "Select a  module"
      ForeColor       =   &H80000008&
      Height          =   255
      Left            =   480
      TabIndex        =   5
      Top             =   1560
      Width           =   3375
   End
   Begin VB.Label labDevLst 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      Caption         =   "Select a device from list"
      ForeColor       =   &H80000008&
      Height          =   255
      Left            =   480
      TabIndex        =   3
      Top             =   240
      Width           =   3375
   End
End
Attribute VB_Name = "frmDevSel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim lpDevConfig_AI As DEVCONFIG_AI
Dim lpAIGetConfig As PT_AIGetConfig
Dim gnNumOfSubdevices As Integer
Dim bRun As Boolean



Function TestStr(DStr As String, TStr As String) As Boolean
  Dim lenD, lenT As Integer
  Dim i As Integer

  TestStr = False
  lenD = Len(DStr)
  lenT = Len(TStr)

  For i = 1 To (lenD - lenT + 1)
    If (Mid(DStr, i, lenT) = TStr) Then
      TestStr = True
    End If
  Next i

  If DStr = "" Then
    TestStr = True
  End If
End Function
Private Sub cmdExit_Click()
  If bRun Then
    ErrCde = DRV_DeviceClose(DeviceHandle)
    If (ErrCde <> 0) Then
      DRV_GetErrorMessage ErrCde, szErrMsg
      Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
    End If
  End If
  End
End Sub

Private Sub cmdLatMode_Click()
    If cmdLatMode.Caption = "Latch" Then
        cmdLatMode.Caption = "Momentary"
    Else
        cmdLatMode.Caption = "Latch"
    End If
End Sub

Private Sub cmdRun_Click()
  Dim tempNum As Integer
  Dim LatchMode As Integer

  AlarmChan = lstChannel.ListIndex
  ptAlarmConfig.chan = AlarmChan
  ptAlarmConfig.LoLimit = Val(txtLowAlarm.Text)
  ptAlarmConfig.HiLimit = Val(txtHighAlarm.Text)
  ErrCde = DRV_AlarmConfig(DeviceHandle, ptAlarmConfig)
  If (ErrCde <> 0) Then
    DRV_GetErrorMessage ErrCde, szErrMsg
    Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
    Exit Sub
  End If

  If cmdLatMode.Caption = "Latch" Then
        LatchMode = 0
  Else
        LatchMode = 1
  End If

  ptAlarmEnable.chan = AlarmChan
  ptAlarmEnable.LatchMode = LatchMode
  ptAlarmEnable.Enabled = 1         ' enable alarm
  ErrCde = DRV_AlarmEnable(DeviceHandle, ptAlarmEnable)
  If (ErrCde <> 0) Then
    DRV_GetErrorMessage ErrCde, szErrMsg
    Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
    Exit Sub
  End If

  frmRun.Show
  frmDevSel.Hide
End Sub

Private Sub Form_Load()
  Dim gnNumOfDevices As Integer
  Dim nOutEntries As Integer
  Dim i, ii As Integer
  Dim tt As Long
  Dim tempStr As String

  bRun = False

  ' Add type of PC Laboratory Card
  tt = DRV_GetAddress(devicelist(0))
  ErrCde = DRV_DeviceGetList(tt, MaxEntries, nOutEntries)
  If (ErrCde <> 0) Then
    DRV_GetErrorMessage ErrCde, szErrMsg
    Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
    Exit Sub
  End If

  ErrCde = DRV_DeviceGetNumOfList(gnNumOfDevices)
  If (ErrCde <> 0) Then
    DRV_GetErrorMessage ErrCde, szErrMsg
    Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
    Exit Sub
  End If

  For i = 0 To (gnNumOfDevices - 1)
    tempStr = ""
    For ii = 0 To MaxDevNameLen
      tempStr = tempStr + Chr(devicelist(i).szDeviceName(ii))
    Next ii
      lstDevice.AddItem tempStr
  Next i

    txtHighAlarm.Text = Str(30)
    txtLowAlarm.Text = Str(10)

    labModule.Enabled = False
    lstModule.Enabled = False
    'labChannel.enabled = False
    'lstChannel.enabled = False
    'labVoltageRange.enabled = False
    'lstVoltageRange.enabled = False
    'labExpChl.enabled = False
    'lstExpChl.enabled = False
    'labThermocouple.enabled = False
    'lstThermocouple.enabled = False
    labHighAlarm.Enabled = False
    txtHighAlarm.Enabled = False
    labLowAlarm.Enabled = False
    txtLowAlarm.Enabled = False
    cmdRun.Enabled = False
End Sub



Private Sub lstDevice_Click()
  Dim i, ii As Integer
  Dim tempNum As Integer
  Dim TestRes As Boolean

  Dim nOutEntries As Integer
  Dim lpSubDeviceList As Long
  Dim dwDeviceNum As Long
  Dim lpDevConfig_AI As DEVCONFIG_AI

  lstModule.Clear
  lstChannel.Clear
  'lstVoltageRange.Clear
  'lstExpChl.Clear

  ' Avoid to open Advantech Demo Card
  TestRes = TestStr(lstDevice.Text, "DEMO")
  If (TestRes) Then
    labModule.Enabled = False
    lstModule.Enabled = False
    'labChannel.enabled = False
    'lstChannel.enabled = False
    'labVoltageRange.enabled = False
    'lstVoltageRange.enabled = False
    'labExpChl.enabled = False
    'lstExpChl.enabled = False
    'labThermocouple.enabled = False
    'lstThermocouple.enabled = False
    lstChannel.AddItem "No Use"
    cmdRun.Enabled = False
  End If

  If (Not TestRes) Then
  ' Check if there is any device attatched on this COM port or CAN
    gnNumOfSubdevices = devicelist(lstDevice.ListIndex).nNumOfSubdevices
    If (gnNumOfSubdevices > MaxDev) Then
      gnNumOfSubdevices = MaxDev
    End If

    ' retrieve the information of all installed devices
    If (gnNumOfSubdevices <> 0) Then
      dwDeviceNum = devicelist(lstDevice.ListIndex).dwDeviceNum
      lpSubDeviceList = DRV_GetAddress(SubDevicelist(0))
      ErrCde = DRV_DeviceGetSubList(dwDeviceNum, lpSubDeviceList, gnNumOfSubdevices, nOutEntries)
      If (ErrCde <> 0) Then
        DRV_GetErrorMessage ErrCde, szErrMsg
        Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
        Exit Sub
      End If
      For i = 0 To (gnNumOfSubdevices - 1)
        tempStr = ""
        For ii = 0 To MaxDevNameLen
            tempStr = tempStr + Chr(SubDevicelist(i).szDeviceName(ii))
        Next ii
        lstModule.AddItem tempStr
      Next i
      lstModule.Enabled = True
      labModule.Enabled = True
   End If

   If (gnNumOfSubdevices = 0) Then
     dwDeviceNum = devicelist(lstDevice.ListIndex).dwDeviceNum
      ErrCde = DRV_DeviceOpen(dwDeviceNum, DeviceHandle)
      If (ErrCde <> 0) Then
        DRV_GetErrorMessage ErrCde, szErrMsg
        Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
        Exit Sub
      Else
        bRun = True
      End If

      ptDevGetFeatures.buffer = DRV_GetAddress(lpDevFeatures)
      ErrCde = DRV_DeviceGetFeatures(DeviceHandle, ptDevGetFeatures)
      If (ErrCde <> 0) Then
        DRV_GetErrorMessage ErrCde, szErrMsg
        Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
        Exit Sub
      End If

      ' Add analog input channel item
      ptAIGetConfig.buffer = DRV_GetAddress(lpDevConfig_AI)
      ErrCde = DRV_AIGetConfig(DeviceHandle, ptAIGetConfig)
      If (ErrCde <> 0) Then
        DRV_GetErrorMessage ErrCde, szErrMsg
        Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
        Exit Sub
      End If

      If (lpDevConfig_AI.usChanConfig = 0) Then
        tempNum = lpDevFeatures.usMaxAISiglChl
      Else
        tempNum = lpDevFeatures.usMaxAIDiffChl
      End If
      If (tempNum > 0) Then
        For i = 0 To (tempNum - 1)
          temp$ = "Chan#" + Str(i)
          lstChannel.AddItem temp$, i
        Next i
        lstChannel.Text = lstChannel.List(0)
        labChannel.Enabled = True
        lstChannel.Enabled = True
      End If

      cmdRun.Enabled = True
    End If
  End If
End Sub


Private Sub lstModule_Click()
    Dim i, ii As Integer
    Dim dwDeviceNum As Long
    Dim tempNum As Integer

    If gnNumOfSubdevices <> 0 Then
        lstChannel.Clear
        'lstVoltageRange.Clear

        ' open COM device or CAN device
        dwDeviceNum = SubDevicelist(lstModule.ListIndex).dwDeviceNum
        ErrCde = DRV_DeviceOpen(dwDeviceNum, DeviceHandle)
        If (ErrCde <> 0) Then
            DRV_GetErrorMessage ErrCde, szErrMsg
            Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
            Exit Sub
        Else
            bRun = True
        End If

        ptDevGetFeatures.buffer = DRV_GetAddress(lpDevFeatures)
        ErrCde = DRV_DeviceGetFeatures(DeviceHandle, ptDevGetFeatures)
        If (ErrCde <> 0) Then
            DRV_GetErrorMessage ErrCde, szErrMsg
            Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
            Exit Sub
        End If

        ' Add analog input channel item
        ptAIGetConfig.buffer = DRV_GetAddress(lpDevConfig_AI)
        ErrCde = DRV_AIGetConfig(DeviceHandle, ptAIGetConfig)
        If (ErrCde <> 0) Then
           DRV_GetErrorMessage ErrCde, szErrMsg
           Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
           Exit Sub
        End If

        If (lpDevConfig_AI.usChanConfig = 0) Then
            tempNum = lpDevFeatures.usMaxAISiglChl
        Else
            tempNum = lpDevFeatures.usMaxAIDiffChl
        End If
        If (tempNum > 0) Then
            For i = 0 To (tempNum - 1)
                temp$ = "Chan#" + Str(i)
                lstChannel.AddItem temp$, i
            Next i
            lstChannel.Text = lstChannel.List(0)
            labChannel.Enabled = True
            lstChannel.Enabled = True

            labHighAlarm.Enabled = True
            txtHighAlarm.Enabled = True
            labLowAlarm.Enabled = True
            txtLowAlarm.Enabled = True
            cmdRun.Enabled = True
        End If
    End If
End Sub


⌨️ 快捷键说明

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