?? readelstatus.bas
字號:
Dim eldata(1024) As Integer
Dim retval As Integer
Dim ha As Integer
Dim target As Integer
Dim lun As Integer
Dim results As String
Dim inqstr As String
Dim i As Integer
Dim NL
Dim length As Integer
Dim vendor As String
Dim vers As String
Dim product As String
Dim source As Integer
Dim picker As Integer
Dim dest As Integer
Dim x As Object
Dim bytecount As Integer
Dim dataoffset As Integer
Dim ellength As Integer
Dim pvol As Integer
Set x = CreateObject("Logger.Application")
x.WriteLine "Jukebox command test program "
x.WriteLine ""
pvol = 0
picker = 86
source = 82
dest = 0
bytecount = 0
dataoffset = 0
target = 6
ha = 2
lun = 0
retval = SCSIInquiry(ha,target,lun,eldata)
If retval <> 1 Then
MsgBox "Inquiry failed - Status = " & retval
Stop
Else
retval = SCSIGetVendor(ha,target,lun,vendor)
retval = SCSIGetProduct(ha,target,lun,product)
retval = SCSIGetVersion(ha,target, lun , vers)
results = "Vendor = " & vendor & " Product = " & product & " Version = " & vers
x.Write "Inquiry data = "
x.WriteLine results
End If
retval = SCSIReadElementStatus(ha,target,lun,2,0,255,1024,eldata)
If retval <> 0 Then
MsgBox "Read Element Status failed - Status = " & retval
Stop
Else
dataoffset = 8
bytecount = eldata(5) + eldata(6) + eldata(7)
ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3)
x.WriteLine ""
x.WriteLine ""
x.Write "Element type = " & eldata(8)
If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers"
If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots"
If (eldata(8) = 3) Then x.WriteLine " - Tape Drives"
If (eldata(9) And 128) Then
x.WriteLine "PVolTag = 1"
pvol = 1
Else
x.WriteLine "PVolTag = 0"
pvol = 0
End If
If (eldata(9) And 64) Then
x.WriteLine "AVolTag = 1"
Else
x.WriteLine "AVolTag = 0"
End If
x.WriteLine "Element Descriptor Length = " & ellength
x.Writeline "Byte Count of Descriptor data = " & bytecount
x.WriteLine "First Element Address = " & eldata(0) & eldata(1)
x.WriteLine "Number of Elements = " & eldata(2) & eldata(3)
x.WriteLine "Number of bytes of element status = " & bytecount
x.WriteLine ""
dataoffset = dataoffset + 8
bytecount = bytecount - 8
While (bytecount > 0)
x.WriteLine ""
x.WriteLine ""
x.WriteLine "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1)
If (eldata(dataoffset+2) And 1) Then
x.WriteLine " - Full, "
Else
x.WriteLine " - Empty, "
End If
If (eldata(dataoffset+2) And 4) Then
x.Write " - Except = 1, "
Else
x.Write " - Except = 0, "
End If
If (eldata(dataoffset+2) And 8) Then
x.Write "Access = 1, "
Else
x.Write "Access = 0, "
End If
x.WriteLine ""
x.Write " - Additional Sense Code = " & eldata(dataoffset + 4)
x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5)
If (eldata(dataoffset + 6) And 128) Then
x.Write " - SValid = 1 "
Else
x.Write" - SValid = 0, "
End If
If (eldata(dataoffset + 6) And 64) Then
x.Write "Invert = 1 "
Else
x.Write "Invert = 0"
End If
x.Writeline ""
x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11)
If (pvol = 1) Then
x.Write " - Primary Volume Tag Information = "
For i = 12 To 47
x.Write eldata(dataoffset + i)
Next i
End If
bytecount = bytecount - ellength
dataoffset = dataoffset + ellength
Wend
x.WriteLine ""
End If
x.WriteLine "-------------------------------------------------------"
retval = SCSIReadElementStatus(ha,target,lun,1,0,255,1024,eldata)
If retval <> 0 Then
MsgBox "Read Element Status failed - Status = " & retval
Stop
Else
dataoffset = 8
bytecount = eldata(5) + eldata(6) + eldata(7)
ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3)
x.WriteLine ""
x.WriteLine ""
x.Write "Element type = " & eldata(8)
If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers"
If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots"
If (eldata(8) = 3) Then x.WriteLine " - Tape Drives"
x.WriteLine "First Element Address = " & eldata(0) & eldata(1)
x.WriteLine "Number of Elements = " & eldata(2) & eldata(3)
x.WriteLine "Number of bytes of element status = " & bytecount
x.WriteLine "Element Descriptor Length = " & ellength
x.WriteLine ""
dataoffset = dataoffset + 8
bytecount = bytecount - 8
While (bytecount > 0)
x.WriteLine ""
x.WriteLine ""
x.WriteLine "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1)
If (eldata(dataoffset+2) And 1) Then
x.WriteLine " - Full, "
Else
x.WriteLine " - Empty, "
End If
If (eldata(dataoffset+2) And 4) Then
x.Write " - Except = 1, "
Else
x.Write " - Except = 0, "
End If
If (eldata(dataoffset+2) And 8) Then
x.Write "Access = 1, "
Else
x.Write "Access = 0, "
End If
x.WriteLine ""
x.Write " - Additional Sense Code = " & eldata(dataoffset + 4)
x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5)
If (eldata(dataoffset + 6) And 128) Then
x.Write " - SValid = 1 "
Else
x.Write" - SValid = 0, "
End If
If (eldata(dataoffset + 6) And 64) Then
x.Write "Invert = 1 "
Else
x.Write "Invert = 0"
End If
x.Writeline ""
x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11)
If (pvol = 1) Then
x.Write " - Primary Volume Tag Information = "
For i = 12 To 47
x.Write eldata(dataoffset + i)
Next i
End If
bytecount = bytecount - ellength
dataoffset = dataoffset + ellength
Wend
x.WriteLine ""
End If
x.WriteLine "-------------------------------------------------------"
retval = SCSIReadElementStatus(ha,target,lun,4,0,255,1024,eldata)
If retval <> 0 Then
MsgBox "Read Element Status failed - Status = " & retval
Stop
Else
dataoffset = 8
bytecount = eldata(5) + eldata(6) + eldata(7)
ellength = eldata(dataoffset + 2) + eldata(dataoffset + 3)
x.WriteLine ""
x.WriteLine ""
x.Write "Element type = " & eldata(8)
If (eldata(8) = 1) Then x.WriteLine " - Tape Pickers"
If (eldata(8) = 2) Then x.WriteLine " - Cartridge Magazine Slots"
If (eldata(8) = 4) Then x.WriteLine " - Tape Drives"
x.WriteLine "First Element Address = " & eldata(0) & eldata(1)
x.WriteLine "Number of Elements = " & eldata(2) & eldata(3)
x.WriteLine "Number of bytes of element status = " & bytecount
x.WriteLine "Element Descriptor Length = " & ellength
x.WriteLine ""
dataoffset = dataoffset + 8
bytecount = bytecount - 8
While (bytecount > 0)
x.Write "Element Address = " & eldata(dataoffset) & eldata(dataoffset+1)
x.WriteLine ""
If (eldata(dataoffset+2) And 1) Then
x.WriteLine " - Full, "
Else
x.WriteLine " - Empty, "
End If
If (eldata(dataoffset+2) And 4) Then
x.Write " - Except = 1, "
Else
x.Write " - Except = 0, "
End If
If (eldata(dataoffset+2) And 8) Then
x.Write "Access = 1, "
Else
x.Write "Access = 0, "
End If
x.WriteLine ""
x.Write " - Additional Sense Code = " & eldata(dataoffset + 4)
x.WriteLine ", Additional Sense Code Qualifier = " & eldata(dataoffset + 5)
If (eldata(dataoffset + 6) And 128) Then
x.Write " - Not Bus = 1,"
Else
x.Write " - Not Bus = 0,"
End If
If (eldata(dataoffset + 6) And 32) Then
x.Write " ID Valid = 1,"
Else
x.Write " ID Valid = 0,"
End If
If (eldata(dataoffset + 6) And 16) Then
x.Write " LU Valid = 1,"
Else
x.Write " LU Valid = 0,"
End If
x.WriteLine "Logical Unit Number = " & (eldata(dataoffset + 6) And 7)
x.WriteLine " - SCSI Bus Address = " & eldata(dataoffset + 7)
If (eldata(dataoffset + 6) And 128) Then
x.Write " - SValid = 1 "
Else
x.Write" - SValid = 0, "
End If
If (eldata(dataoffset + 6) And 64) Then
x.Write "Invert = 1 "
Else
x.Write "Invert = 0"
End If
x.Writeline ""
x.WriteLine " - Source Storage Element Address = " & eldata(dataoffset + 10) & eldata(dataoffset + 11)
If (pvol = 1) Then
x.Write " - Primary Volume Tag Information = "
For i = 12 To 47
x.Write eldata(dataoffset + i)
Next i
End If
bytecount = bytecount - ellength
dataoffset = dataoffset + ellength
Wend
x.WriteLine ""
End If
x.WriteLine "-------------------------------------------------------"
'retval = SCSIInitializeElementStatus(ha,target,lun)
'x.WriteLine "Initialize Element status = " & retval
'MsgBox "Move tape from 0 to 5. . ."
'dest = 0
'source = 5
'retval = SCSIMoveMedium(ha,target,lun,picker,source,dest)
'MsgBox "finished move - move back to 0"
'dest = 5
'source = 0
'retval = SCSIMoveMedium(ha,target,lun,picker,source,dest)
x.Write "The End"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -