⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readelstatus.bas

📁 scsil固件读出专业讯出 scsil固件读出专业讯出 scsil固件读出专业讯出 scsil固件读出专业讯出
💻 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 + -