【发布时间】:2015-07-14 18:22:52
【问题描述】:
我对 vb.net 还很陌生,所以我并不完全熟悉公共函数是如何从一种形式调用到另一种形式的。当悬停在类 frmReadTemp 中的“myIniFile”和“initGPIB”上时,我收到错误消息 - 未声明。由于其保护级别,它可能无法访问。但是,该函数和子函数在另一个类中是公共的。
Public Class frmReadTemp
Private Sub cmdRun_Click(sender As Object, e As EventArgs) Handles cmdRun.Click
Dim err_code As eCode = eCode.ERR_NONEr
myInifile()
err_code = initGPIB()
End Sub
End Class
Public Class PowerSupply_setup
#Region "Variable Declarations"
Dim myIniFile As IniFile
Public instrInfo As New ArrayList
Public myiniObj As iniObj
WithEvents myPS As IPowerSupply
WithEvents myTestSystem As New testSystemObj(4)
#End Region
Public Sub loadIniFile()
Dim tenable As String
'Power Supply
myiniObj.ps_addr.PrimaryAddress = myIniFile.GetInteger("GPIB_INSTRUMENTS", "POWERSUPPLY_ADDR", 6)
myiniObj.ps_addr.ComInterface = 1
myiniObj.ps_type = myIniFile.GetString("GPIB_INSTRUMENTS", "POWERSUPPLY_TYPE", "HP6632").ToUpper
tenable = myIniFile.GetString("GPIB_INSTRUMENTS", "POWERSUPPLY_AVAILABLE", "NO")
myiniObj.ps_available = IIf(tenable.ToUpper.Trim.StartsWith("NO"), False, True)
'myiniObj.ps_available = IIf((myIniFile.GetString("GPIB_INSTRUMENTS", "POWERSUPPLY_AVAILABLE", 0)) = "0", False, True)
myiniObj.ps_port = myIniFile.GetInteger("GPIB_INSTRUMENTS", "POWERSUPPLY_PORT", 1)
myiniObj.ps_ov_offset = Val(myIniFile.GetInteger("GPIB_INSTRUMENTS", "POWERSUPPLY_OVERVOLTAGE_OFFSET", "3.0"))
myiniObj.ps_current_limit = Val(myIniFile.GetInteger("GPIB_INSTRUMENTS", "POWERSUPPLY_CURRENT_LIMIT", "3.0"))
End Sub
Public Function initGPIB() As swiErr.eCode
Dim err_code As eCode = eCode.ERR_NONE
If (instrInfo.Count = 0) Then
'init Power Supply
If (err_code = eCode.ERR_NONE And myiniObj.ps_available) Then
Dim iInfo2(1) As String
If (myiniObj.ps_type.ToUpper.Contains("HP6632")) Then
myPS = New HP6632(myiniObj.ps_addr)
err_code = myPS.ErrCode
ElseIf (myiniObj.ps_type.ToUpper.Contains("E3631")) Then
myPS = New E3631A(myiniObj.ps_addr)
err_code = myPS.ErrCode
ElseIf (myiniObj.ps_type.ToUpper.Contains("E66311")) Then
myPS = New E66311B(myiniObj.ps_addr)
err_code = myPS.ErrCode
ElseIf (myiniObj.ps_type.ToUpper.Contains("E66319")) Then
myPS = New E66311B(myiniObj.ps_addr)
err_code = myPS.ErrCode
ElseIf (myiniObj.ps_type.ToUpper.Contains("SCPI")) Then
myPS = New SCPI_PS(myiniObj.ps_addr)
err_code = myPS.ErrCode
Else
myPS = Nothing
err_code = eCode.ERR_INST_PS_NOT_SUPPORTED
End If
If (err_code = eCode.ERR_NONE) Then
iInfo2(0) = myPS.instrumentName
iInfo2(1) = myPS.gpibAddress.PrimaryAddress
myPS.selectPort = Me.myiniObj.ps_port
instrInfo.Add(iInfo2)
myPS.OverVoltageOffset = myiniObj.ps_ov_offset
myPS.setPwrOff()
End If
If (err_code = eCode.ERR_INST_GPIB_SEARCH) Then err_code = eCode.ERR_INST_MISSING_PWRSUPPLY
Else
'create object but set availability to false
myPS = New E3631A()
End If
Me.myTestSystem.instrument.PS = myPS
End If
Return err_code
End Function
End Class
【问题讨论】:
标签: vb.net function declaration