gainlist.frm
来自「16 relay output channels and 16 isolated」· FRM 代码 · 共 214 行
FRM
214 行
VERSION 5.00
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.3#0"; "COMCTL32.OCX"
Begin VB.Form GainList
BorderStyle = 1 'Fixed Single
Caption = "Gain code setting for individual channel"
ClientHeight = 5130
ClientLeft = 5730
ClientTop = 3165
ClientWidth = 4185
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
PaletteMode = 1 'UseZOrder
ScaleHeight = 5130
ScaleWidth = 4185
Begin VB.CommandButton cmdExit
Caption = "&Exit"
Height = 375
Left = 2880
TabIndex = 3
Top = 360
Width = 1095
End
Begin ComctlLib.ListView lvGain
Height = 3975
Left = 240
TabIndex = 2
Top = 960
Width = 3735
_ExtentX = 6588
_ExtentY = 7011
View = 3
LabelEdit = 1
LabelWrap = -1 'True
HideSelection = 0 'False
_Version = 327682
ForeColor = -2147483640
BackColor = -2147483643
BorderStyle = 1
Appearance = 1
NumItems = 3
BeginProperty ColumnHeader(1) {0713E8C7-850A-101B-AFC0-4210102A8DA7}
Key = ""
Object.Tag = ""
Text = "Physical Chan"
Object.Width = 1411
EndProperty
BeginProperty ColumnHeader(2) {0713E8C7-850A-101B-AFC0-4210102A8DA7}
Alignment = 2
SubItemIndex = 1
Key = ""
Object.Tag = ""
Text = "Gain"
Object.Width = 1411
EndProperty
BeginProperty ColumnHeader(3) {0713E8C7-850A-101B-AFC0-4210102A8DA7}
Alignment = 2
SubItemIndex = 2
Key = ""
Object.Tag = ""
Text = "Configuration"
Object.Width = 1764
EndProperty
End
Begin VB.ComboBox cmbGain
Height = 315
Left = 240
TabIndex = 0
Text = "cmbGain"
Top = 480
Width = 1335
End
Begin VB.Label Label1
Caption = "Gain"
Height = 255
Left = 240
TabIndex = 1
Top = 120
Width = 495
End
End
Attribute VB_Name = "GainList"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub cmbGain_Click()
Dim i As Integer
Dim tempStr As String
'Store individual gain code setting
gain((lvGain.SelectedItem.Index - 1 + PhyChanToLogChan(DevCfg_AI, Setting.EditStartChannel)) Mod gwMaxLogChanNum) _
= cmbGain.ListIndex
tempStr = ""
For i = 0 To 15
tempStr = tempStr + Chr(DevFeat.glGainList(cmbGain.ListIndex).szGainStr(i))
Next i
lvGain.ListItems.Item(lvGain.SelectedItem.Index).SubItems(1) = tempStr
End Sub
Private Sub cmdExit_Click()
Unload GainList
Setting.Show
End Sub
Private Sub Form_Load()
Dim i As Integer, j As Integer
Dim ptDevFeature As PT_DeviceGetFeatures
Dim tempStr As String
Dim rStyle As Long
Dim R As Long
Dim lstItem As ListItem
Dim iPhyChan As Integer
' Step 1: Open Device
ErrCde = DRV_DeviceOpen(DeviceNum, DriverHandle)
If ErrCde <> SUCCESS Then
DRV_GetErrorMessage ErrCde, ErrMsg
MsgBox ErrMsg, vbOKOnly, "Driver Message"
Exit Sub
End If
' Step 2: Get device features
ptDevFeatures.buffer = DRV_GetAddress(DevFeat)
ptDevFeatures.size = Len(DevFeat)
ErrCde = DRV_DeviceGetFeatures(DriverHandle, ptDevFeatures)
If ErrCde <> SUCCESS Then
DRV_GetErrorMessage ErrCde, ErrMsg
MsgBox ErrMsg, vbOKOnly, "Driver Message"
DRV_DeviceClose DriverHandle
Exit Sub
End If
' Step 3: Get AI config
ptAIGetConfig.buffer = DRV_GetAddress(DevCfg_AI)
ptAIGetConfig.size = Len(DevCfg_AI)
ErrCde = DRV_AIGetConfig(DriverHandle, ptAIGetConfig)
If ErrCde <> SUCCESS Then
DRV_GetErrorMessage ErrCde, ErrMsg
MsgBox ErrMsg, vbOKOnly, "Driver Message"
DRV_DeviceClose DriverHandle
Exit Sub
End If
' Step 4: Close Device
DRV_DeviceClose DriverHandle
'Clear gain code combo box
cmbGain.Clear
'Set gain selection
For i = 0 To (DevFeat.usNumGain - 1)
tempStr = ""
For j = 0 To 15
tempStr = tempStr + Chr(DevFeat.glGainList(i).szGainStr(j))
Next j
cmbGain.AddItem tempStr
Next i
cmbGain.Text = cmbGain.List(0)
'get the current ListView style
rStyle = SendMessageLong(lvGain.hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0&, 0&)
rStyle = rStyle Or LVS_EX_GRIDLINES Or LVS_EX_FULLROWSELECT
'set the new ListView style
R = SendMessageLong(lvGain.hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0&, rStyle)
'Only show valid channels for selection
gwMaxLogChanNum = GetMaxLogChanNum(DevCfg_AI, DevFeat)
iPhyChan = Val(Setting.EditStartChannel.Text)
For i = 0 To Min((Val(Setting.EditChannelNum.Text) - 1), gwMaxLogChanNum - 1)
If iPhyChan >= DevFeat.usMaxAISiglChl Then
iPhyChan = iPhyChan - DevFeat.usMaxAISiglChl
End If
Set lstItem = lvGain.ListItems.Add(i + 1, , "Chan " & Str(iPhyChan))
tempStr = ""
For j = 0 To 15
tempStr = tempStr + Chr(DevFeat.glGainList(gain(PhyChanToLogChan(DevCfg_AI, iPhyChan))).szGainStr(j))
Next j
lstItem.SubItems(1) = tempStr
If iPhyChan < 32 Then
If (DevCfg_AI.ulChanConfig And SHL(1, iPhyChan)) Then
lstItem.SubItems(2) = "Differential"
If (iPhyChan Mod 2) = 0 Then
iPhyChan = iPhyChan + 1
End If
lstItem.Text = "Chan " & Str(iPhyChan - 1) & "," & Str(iPhyChan)
Else
lstItem.SubItems(2) = "Single-Ended"
End If
Else
If (DevCfg_AI.ulChanConfigEx(0) And SHL(1, iPhyChan - 32)) Then
lstItem.SubItems(2) = "Differential"
If (iPhyChan Mod 2) = 0 Then
iPhyChan = iPhyChan + 1
End If
lstItem.Text = "Chan " & Str(iPhyChan - 1) & "," & Str(iPhyChan)
Else
lstItem.SubItems(2) = "Single-Ended"
End If
End If
iPhyChan = iPhyChan + 1
Next i
End Sub
Private Sub lvGain_Click()
cmbGain.Text = cmbGain.List(gain((lvGain.SelectedItem.Index - 1 _
+ PhyChanToLogChan(DevCfg_AI, Setting.EditStartChannel)) Mod gwMaxLogChanNum))
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?