📄 module1.bas
字号:
Form1.sendList.Text = sndList
J = J + 3
M = M + 3
If M > 48 Then
M = 1
End If
Form1.PBar.Value = k
SendChar Mid$(Temp2, k, 1)
Next k
sendText = Right$(Form1.sendList.Text, 2)
If (sendText <> Chr$(13) + Chr$(10)) Then
sndList = sndList + Chr$(13) + Chr$(10)
Form1.sendList.Text = sndList
End If
Temp = ""
PackDiff = Len(InBuf) - PackLen
'convert read
For k = 1 To Len(InBuf)
TempAtr = Asc(Mid$(InBuf, k, 1))
ConvertAtr
If HoldAtr < &H10 Then
Temp = Temp + "0" + Hex$(HoldAtr) + " "
Else
Temp = Temp + Hex$(HoldAtr) + " "
End If
Next k
'Test = Test + " " + Mid$(Temp, 4, 2)
If (InStr(1, Temp, Left$(Test, 5)) = False) Then
Msg = "Unable to read EEProm."
StartFlag = False
Temp = Form1.Comm.Input
GoTo Handler
End If
M = 1
J = 1
Test = Right$(Temp, PackDiff * 3)
For k = 1 To Len(Test) Step 3
If M = 16 Then
sndList = sndList + Chr$(13) + Chr$(10)
End If
sndList = sndList + Mid$(Test, J, 3)
Form1.sendList.Text = sndList
If (PackDiff > 2) And (J = 1) Then
If PackDiff < 512 Then
M = 1
Else
M = M + 1
End If
Else
M = M + 1
End If
If PackDiff > 500 Then
If J = 1536 Then
M = 1
End If
Else
If J = (PackDiff * 3) - 8 Then
M = 1
End If
End If
J = J + 3
If M > 16 Then
M = 1
End If
Next k
If (Right$(sndList, 2) <> Chr$(13)) Then
sndList = sndList + Chr$(13) + Chr$(10)
Form1.sendList.Text = sndList
End If
Z = I + 1
If Z < Index Then
If RetBytes > 256 Then
ResetATR
End If
cnt = cnt + 1
'If cnt = 2 Then
' cnt = 0
' ResetATR
' End If
Temp = Form1.Comm.Input
Form1.Comm.InputLen = 0
Temp1 = ""
Temp2 = ""
InBuf = ""
Temp = ""
GoTo Top
End If
InTime = ByteDelay * 17
Temp1 = Form1.Comm.Input
Form1.Comm.InputLen = 0
Temp1 = ""
Temp2 = ""
'XPLList.Clear
If SendEEprom = True Then
InBuf = Temp
Exit Sub
End If
Form1.txtStat.Text = "XPL file complete."
Exit Sub
Handler:
Form1.txtStat.Text = Msg
Temp = Form1.Comm.Input
Form1.Comm.InputLen = 0
Temp1 = ""
Temp2 = ""
InBuf = ""
Temp = ""
'XPLList.Clear
InTime = ByteDelay * 17
End Sub
Public Sub ShowList()
Form1.lblATR.Visible = False
Form1.txtATR.Visible = False
Form1.Label(10).Caption = "HIDE PACKET RESULTS"
Form1.Label(10).Enabled = True
Form1.sendList.Visible = True
Form1.XPLList.Visible = True
Form1.Label9.Visible = True
Form1.Label10.Visible = True
End Sub
Public Sub HideList()
Form1.lblATR.Visible = True
Form1.txtATR.Visible = True
Form1.Label(10).Caption = "SHOW PACKET RESULTS"
Form1.Label(10).Enabled = True
Form1.sendList.Visible = False
Form1.XPLList.Visible = False
Form1.Label9.Visible = False
Form1.Label10.Visible = False
End Sub
Public Function ConvertHex(s As String) As Integer
Dim I As Integer
Dim Temp As String
Dim Hold As Integer
If Len(s) = 1 Then
Select Case UCase(s)
Case "0"
ConvertHex = 0
Case "1"
ConvertHex = 1
Case "2"
ConvertHex = 2
Case "3"
ConvertHex = 3
Case "4"
ConvertHex = 4
Case "5"
ConvertHex = 5
Case "6"
ConvertHex = 6
Case "7"
ConvertHex = 7
Case "8"
ConvertHex = 8
Case "9"
ConvertHex = 9
Case "A"
ConvertHex = 10
Case "B"
ConvertHex = 11
Case "C"
ConvertHex = 12
Case "D"
ConvertHex = 13
Case "E"
ConvertHex = 14
Case "F"
ConvertHex = 15
Case Else
ConvertHex = 0
Exit Function
End Select
ElseIf Len(s) = 2 Then
Select Case UCase(Left$(s, 1))
Case "0"
Hold = 0
Case "1"
Hold = 1 * 16
Case "2"
Hold = 2 * 16
Case "3"
Hold = 3 * 16
Case "4"
Hold = 4 * 16
Case "5"
Hold = 5 * 16
Case "6"
Hold = 6 * 16
Case "7"
Hold = 7 * 16
Case "8"
Hold = 8 * 16
Case "9"
Hold = 9 * 16
Case "A"
Hold = 10 * 16
Case "B"
Hold = 11 * 16
Case "C"
Hold = 12 * 16
Case "D"
Hold = 13 * 16
Case "E"
Hold = 14 * 16
Case "F"
Hold = 15 * 16
Case Else
ConvertHex = 0
Exit Function
End Select
Select Case UCase(Right$(s, 1))
Case "0"
ConvertHex = Hold
Case "1"
ConvertHex = Hold + 1
Case "2"
ConvertHex = Hold + 2
Case "3"
ConvertHex = Hold + 3
Case "4"
ConvertHex = Hold + 4
Case "5"
ConvertHex = Hold + 5
Case "6"
ConvertHex = Hold + 6
Case "7"
ConvertHex = Hold + 7
Case "8"
ConvertHex = Hold + 8
Case "9"
ConvertHex = Hold + 9
Case "A"
ConvertHex = Hold + 10
Case "B"
ConvertHex = Hold + 11
Case "C"
ConvertHex = Hold + 12
Case "D"
ConvertHex = Hold + 13
Case "E"
ConvertHex = Hold + 14
Case "F"
ConvertHex = Hold + 15
Case Else
ConvertHex = 0
End Select
Else
ConvertHex = 0
End If
End Function
'*******************************
'
' Sub to convert data
' by reversing the bits
' then inverting all the bits
'
' Paramaters: TempAtr is byte
' to convert
'
'*******************************
Public Sub ConvertAtr()
HoldAtr = 0
Top:
Select Case TempAtr
Case Is > 127
HoldAtr = HoldAtr + 1
TempAtr = TempAtr - 128
GoTo Top
Case Is > 63
HoldAtr = HoldAtr + 2
TempAtr = TempAtr - 64
GoTo Top
Case Is > 31
HoldAtr = HoldAtr + 4
TempAtr = TempAtr - 32
GoTo Top
Case Is > 15
HoldAtr = HoldAtr + 8
TempAtr = TempAtr - 16
GoTo Top
Case Is > 7
HoldAtr = HoldAtr + 16
TempAtr = TempAtr - 8
GoTo Top
Case Is > 3
HoldAtr = HoldAtr + 32
TempAtr = TempAtr - 4
GoTo Top
Case Is > 1
HoldAtr = HoldAtr + 64
TempAtr = TempAtr - 2
GoTo Top
Case Is = 1
HoldAtr = HoldAtr + 128
End Select
TempAtr = HoldAtr
HoldAtr = 255 Xor TempAtr
End Sub
'********************************
'
' Sub to output 1 character
' to communications port
'
' Paramaters: s as output byte
'
'********************************
Public Sub SendChar(s As String)
Dim Temp As String
'clear input buffer
Form1.Comm.InputLen = 0
Temp = Form1.Comm.Input
Form1.Comm.RTSEnable = False
Form1.Comm.RThreshold = 1
TimeOut = 0
Form1.Timer1.Enabled = False
Form1.Timer1.Interval = 200
Form1.Timer1.Enabled = True
Form1.Comm.Output = s
Do While (TimeOut = 0) Or (StateChanged = 0)
DoEvents
Loop
'StateChanged = 0
'TimeOut = 0
'Timer1.Enabled = False
'Timer1.Interval = 200
'Temp = Comm.Input
'Timer1.Enabled = True
'Do While (TimeOut = 0) Or (StateChanged = 0)
' DoEvents
'Loop
'Comm.InputLen = 0
StateChanged = 0
End Sub
Public Sub ResetATR()
Dim Temp As String
Dim I As Integer
InBuf = ""
If Form1.Comm.PortOpen = True Then
Form1.Comm.PortOpen = False
End If
Form1.Comm.Settings = "9600,O,8,2"
Form1.Comm.PortOpen = True
TimeOut = 0
Form1.Timer1.Enabled = False
Form1.Timer1.Interval = 200
Form1.Comm.RTSEnable = True
Form1.Comm.DTREnable = False
Form1.Comm.RThreshold = 1
Form1.Comm.InputLen = 0
MaxP2Limit = 13
MaxP3Limit = 20
Form1.Timer1.Enabled = True
Form1.Timer1.Interval = 200
Do While TimeOut = 0
DoEvents
Loop
StateChanged = 0
TimeOut = 0
Form1.Timer1.Enabled = False
Form1.Timer1.Enabled = True
Form1.Comm.RTSEnable = False
'rem P3 card
Do While Len(InBuf) < 16
If TimeOut = 1 Then
'rem P2 card
If Len(InBuf) > 11 Then
Exit Do
Else
GoTo SendEnd
End If
End If
DoEvents
Loop
For I = 1 To Len(InBuf)
TempAtr = Asc(Mid$(InBuf, I, 1))
ConvertAtr
If HoldAtr < &H10 Then
Temp = Temp + "0" + Hex$(HoldAtr) + " "
Else
Temp = Temp + Hex$(HoldAtr) + " "
End If
If I = 3 Then
Mask = HoldAtr And &HF
End If
Next I
Select Case Mask
Case 1
Form1.Comm.Settings = "9600,O,8,2"
Case 2
Form1.Comm.Settings = "19200,O,8,2"
Case 3
Form1.Comm.Settings = "38400,O,8,2"
Case 5
Form1.Comm.Settings = "115200,O,8,2"
End Select
SendEnd:
StateChanged = 0
Temp = Form1.Comm.Input
Form1.Comm.InputLen = 0
Temp = Form1.Comm.Input
Form1.Timer1.Enabled = False
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -