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

📄 form8.frm

📁 M8演示程序
💻 FRM
📖 第 1 页 / 共 5 页
字号:
            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 + -