📄 form8.frm
字号:
If rx$ = vbCr Then
' let the follwing (expected) LF to come into the buffer before we look for it
Start = Timer
Do
Loop Until (Timer - Start) > 0.001
rx$ = ProBuild.MSComm1.Input
If rx$ = vbLf Then
' end of response
Response_box.Text = (Response_box.Text + "<CR><LF>" + vbCrLf)
End If
Else
If rx$ = vbLf Then ' Check for linefeed
' LF detected so it's a new response coming in
If INV_F.Value <> 1 Then
Response_box.Text = "" ' Just clear
End If
Response_box.Text = Response_box.Text + "<LF>" ' Accumulate inventory
Else
Response_box.Text = Response_box.Text + rx$ ' Build up response
End If
End If
End If
' here we test to see if the end of the sid poll has occurred by testing whether the end of the
' captured string equals "<LF>94<CR><LF>"
If (INV_F.Value = 1) And (Len(Response_box.Text) > 30) Then
If Right(Response_box.Text, 32) = ("<LF>94<CR><LF>" + vbCrLf + "<LF>94<CR><LF>" + vbCrLf) Then
Response_box.Text = Left(Response_box.Text, Len(Response_box.Text) - 16)
freezeF = False
End If
End If
Else ' Binary Mode
If stxF = False Then ' if this is the beginning of a STX response then display the ASCII STX
If ProBuild.MSComm1.InBufferCount Then
stxF = True
rx$ = ProBuild.MSComm1.Input
'p = ""
'For x = 1 To 5
' rx$ = ProBuild.MSComm1.Input
' p = Hex(Asc(rx$))
'Next
If rx$ = Chr$(2) Then
If INV_F.Value = 1 Then
Response_box.Text = Response_box.Text + "<STX>"
Else
Response_box.Text = "<STX>"
End If
Else
Response_box.Text = "ERROR"
End If
End If
Else
' stxF was true --> already got the STX so keep displaying incoming bytes (2 ascii chars per byte) until >20ms
Start = Timer
Do
If ProBuild.MSComm1.InBufferCount Then
Start = Timer
rx$ = ProBuild.MSComm1.Input
H$ = Hex(Asc(rx$))
Response_box.Text = Response_box.Text & Left("00", 2 - Len(H$)) & H$
End If
Loop Until (Timer - Start) > 0.013
stxF = False
Response_box.Text = Response_box.Text + vbCrLf
End If
End If
End Sub
Private Sub MsgLen_Box_Change()
refresh_HostCommand_box
End Sub
Private Sub RID_F_Click()
If RID_F.Value = 1 Then
flags% = flags% Or &H80 ' sets BIT7
RID_box.Enabled = True
RID_box.Text = "00"
Else
flags% = flags% And &H7F ' clears BIT7
RID_box.Enabled = False
RID_box.Text = ""
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub TID_F_Click()
If TID_F.Value = 1 Then
flags% = flags% Or &H40 ' sets BIT6
TID_box.Enabled = True
Else
flags% = flags% And &HBF ' clears BIT6
TID_box.Enabled = False
TID_box.Text = ""
End If
Call CalcBlockLength
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub CRC_F_Click()
If CRC_F.Value = 1 Then
flags% = flags% Or &H20 ' sets BIT5
CRC_box.Enabled = True
Else
flags% = flags% And &HDF ' clears BIT5
CRC_box.Enabled = False
CRC_box.Text = ""
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub AFI_F_Click()
If AFI_F.Value = 1 Then
AFI_F.Value = 0
End If
End Sub
Private Sub RF_F_Click()
If RF_F.Value = 1 Then
flags% = flags% Or &H8 ' sets BIT3
Else
flags% = flags% And &HF7 ' clears BIT3
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub LOCK_F_Click()
If LOCK_F.Value = 1 Then
flags% = flags% Or &H4 'sets BIT2
Else
flags% = flags% And &HFB 'clears BIT2
'LOCK_F.Value = 0
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
' If LOCK_F.Value = 1 Then
' LOCK_F.Value = 0
' End If
End Sub
Private Sub INV_F_Click()
If Sel_Bit.Value = False Then
INV_F.Value = 0
End If
If INV_F.Value = 1 Then
flags% = flags% Or &H2 ' sets BIT1
Else
flags% = flags% And &HFD ' clears BIT1
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub LOOP_F_Click()
If LOOP_F.Value = 1 Then
flags% = flags% Or &H1 ' sets BIT0
Else
flags% = flags% And &HFE ' clears BIT0
End If
Call refresh_FLAGS_box
Call refresh_HostCommand_box
End Sub
Private Sub Write_Bit_Click()
'INV_F.Value = 0
'INV_F.Enabled = False
'flags% = flags% And &HFD ' clears BIT1
' Update the Flags
UpdateFlags
STARTING_BLOCK_box.Enabled = True
If STARTING_BLOCK_box.Text = "" Then
STARTING_BLOCK_box.Text = "00"
End If
NUMBER_OF_BLOCKS_box.Enabled = True
If NUMBER_OF_BLOCKS_box.Text = "" Then
NUMBER_OF_BLOCKS_box.Text = "01"
End If
DATA_box.Enabled = True
command% = command% And &HF ' clears high nibble
command% = command% Or &H40 ' sets high nibble to 0100
Call CalcBlockLength
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub Read_Bit_Click()
'INV_F.Value = 0
'LOCK_F.Value = 0
'flags% = flags% And &HFD ' clears BIT1
' Update the flags
UpdateFlags
STARTING_BLOCK_box.Enabled = True
If STARTING_BLOCK_box.Text = "" Then
STARTING_BLOCK_box.Text = "00"
End If
NUMBER_OF_BLOCKS_box.Enabled = True
If NUMBER_OF_BLOCKS_box.Text = "" Then
NUMBER_OF_BLOCKS_box.Text = "01"
End If
'If Sys_Bit.Value = True Then
DATA_box.Text = ""
DATA_box.Enabled = True
DATA_box.MaxLength = 6
'Else
' DATA_box.Text = ""
' DATA_box.Enabled = False
'End If
command% = command% And &HF ' clears high nibble
command% = command% Or &H20 ' sets high nibble to 0010
Call CalcBlockLength
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub Sel_Bit_Click()
'LOCK_F.Value = 0
' Update the Flags
UpdateFlags
STARTING_BLOCK_box.Enabled = False
STARTING_BLOCK_box.Text = ""
NUMBER_OF_BLOCKS_box.Enabled = False
NUMBER_OF_BLOCKS_box.Text = ""
If Tag_Bit.Value = True Then
DATA_box.Enabled = False
DATA_box.Text = ""
End If
command% = command% And &HF ' clears high nibble
command% = command% Or &H10 ' sets high nibble to 0001
Call CalcBlockLength
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub Tag_Bit_Click()
' Update the Flags
UpdateFlags
TagType.Text = TagType.List(0)
TagType.Enabled = True
command% = command% And &HF0 ' clears low nibble
command% = command% Or &H4 ' sets low nibble to 0100
Call CalcBlockLength
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub Sys_Bit_Click()
' Update the Flags
UpdateFlags
TagType.Enabled = False
command% = command% And &HF0 ' clears low nibble
command% = command% Or &H2 ' sets low nibble to 0010
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub Mem_Bit_Click()
' Update the Flags
UpdateFlags
TagType.Enabled = False
command% = command% And &HF0 ' clears low nibble
command% = command% Or &H1 ' sets low nibble to 0001
Call refresh_COMMAND_box
Call refresh_HostCommand_box
End Sub
Private Sub RID_box_Change()
If invalidF = True Then
RID_box.Text = temp
End If
Call refresh_HostCommand_box
End Sub
Private Sub RID_box_KeyPress(KeyAscii As Integer)
temp = RID_box.Text
invalidF = IsNotHex(KeyAscii)
End Sub
Private Sub TagType_Change()
Call refresh_HostCommand_box
End Sub
Private Sub TagType_Click()
TID_box.Enabled = True
If Form1.M8detected = True Then
Select Case TagType.Text
Case "00 Auto-Detect"
tag_type = "00"
TID_box.Text = ""
TID_box.Enabled = False
' UHF TAG TYPES
Case "81 EPC CLASS 1"
tag_type = "81"
TID_box.MaxLength = 16
Case "82 EPC CLASS 0"
tag_type = "82"
TID_box.MaxLength = 16
Case "83 EPC CLASS 0+ IMPINJ"
tag_type = "83"
TID_box.MaxLength = 16
Case "84 EPC CLASS 0+ MATRICS"
tag_type = "84"
TID_box.MaxLength = 16
Case "85 ISO180006A"
tag_type = "85"
TID_box.MaxLength = 16
Case "86 ISO180006B"
tag_type = "86"
TID_box.MaxLength = 16
Case "87 EPC CLASS 1 Gen 2"
tag_type = "87"
TID_box.MaxLength = 16
Case "88 EM4222"
tag_type = "88"
TID_box.MaxLength = 16
Case "89 EM4022"
tag_type = "89"
TID_box.MaxLength = 16
Case "8A UCODE"
tag_type = "8A"
TID_box.MaxLength = 16
Case "8B TAGIDU"
tag_type = "8B"
TID_box.MaxLength = 16
Case "8C SCS"
tag_type = "8C"
TID_box.MaxLength = 16
End Select
Else
Select Case TagType.Text
Case "00 Auto-Detect"
tag_type = "00"
TID_box.Text = ""
TID_box.Enabled = False
' HF TAG TYPES
Case "01 ISO15693"
tag_type = "01"
TID_box.MaxLength = 16
Case "02 I稢ode SL1"
tag_type = "02"
TID_box.MaxLength = 16
Case "03 Tag-it HF"
tag_type = "03"
TID_box.MaxLength = 8
Case "04 ISO14443A"
tag_type = "04"
TID_box.MaxLength = 8
Case "06 PicoTag"
tag_type = "06"
TID_box.MaxLength = 16
Case "08 GemWave C210"
tag_type = "08"
TID_box.MaxLength = 0
Case "09 LTO CM"
tag_type = "09"
TID_box.MaxLength = 8
Case "0A Mifare UltraLight"
tag_type = "0A"
TID_box.MaxLength = 16
' UHF TAG TYPES
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -