Module SpectrumModule Private myMgr As Ivi.Visa.Interop.ResourceManager Private mySpec As Ivi.Visa.Interop.FormattedIO488 Private strQueryRes As String Public Function SpecOpen(SpecID As String, ToCount As Integer) As String Try myMgr = New Ivi.Visa.Interop.ResourceManager mySpec = New Ivi.Visa.Interop.FormattedIO488 mySpec.IO = myMgr.Open(SpecID) mySpec.IO.Clear() mySpec.IO.Timeout = ToCount strQueryRes = SpecQueryStr("*IDN?") Return strQueryRes Catch ex As Exception Return "FAIL" End Try End Function Public Function RunCommand(command As String) As String Dim errStr As String Try mySpec.WriteString(command) errStr = CheckError() If errStr.Replace(" ", "") <> "" Then Return errStr End If Return "PASS" Catch ex As Exception Return "VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + "," + Err.Description End Try End Function Public Function SpecQueryStr(query As String) As String Dim errStr As String Try mySpec.WriteString(query) SpecQueryStr = mySpec.ReadString errStr = CheckError() If errStr.Replace(" ", "") <> "" Then Return SpecQueryStr & " / " & errStr End If Return SpecQueryStr Catch ex As Exception Return "VISA COM Error: " + vbCrLf + CStr(Err.Number) + ", " + Err.Source + "," + Err.Description End Try End Function Private Function CheckError() As String Dim strerrval As String Dim strout As String = "" mySpec.WriteString(":SYSTem:ERRor?") strerrval = mySpec.ReadString While Val(strerrval) <> 0 strout = "INST Error: " + strerrval mySpec.WriteString(":SYSTem:ERRor?") strerrval = mySpec.ReadString End While If Not strout = "" Then 'MsgBox(strout, vbExclamation, "INST Error Messages") mySpec.FlushWrite(False) mySpec.FlushRead() Return strout End If Return "" End Function ''' 스펙트럼 분석기 버퍼 초기화. 연결된 경우에만 동작. Public Sub SpecClear() Try If mySpec IsNot Nothing AndAlso mySpec.IO IsNot Nothing Then mySpec.IO.Clear() End If Catch ' 연결 해제 등으로 접근 불가 시 무시 End Try End Sub End Module