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

📄 form8.frm

📁 M8演示程序
💻 FRM
📖 第 1 页 / 共 5 页
字号:
            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
    End If
    
Call CalcBlockLength
Call refresh_HostCommand_box
End Sub
Private Sub TID_box_Change()
    If invalidF = True Then
        TID_box.Text = temp
    End If
    
    Call CalcBlockLength
    Call refresh_HostCommand_box
End Sub
Private Sub TID_box_KeyPress(KeyAscii As Integer)
    temp = TID_box.Text
    invalidF = IsNotHex(KeyAscii)
End Sub
Private Sub STARTING_BLOCK_box_Change()
    If invalidF = True Then
        STARTING_BLOCK_box.Text = temp
    End If
    
    Call refresh_HostCommand_box
End Sub
Private Sub STARTING_BLOCK_box_KeyPress(KeyAscii As Integer)
    temp = STARTING_BLOCK_box.Text
    invalidF = IsNotHex(KeyAscii)
End Sub


Private Function CalcBlockLength()
' determine block length here
        CalcBlockLength = 2
             
        If Read_Bit.Value = True And Sys_Bit.Value = True Then
            CalcBlockLength = 6
        End If
        
        If Write_Bit.Value = True And Sys_Bit.Value = True Then
            'If STARTING_BLOCK_box.Text = "0A" Or STARTING_BLOCK_box.Text = "0C" Then
                CalcBlockLength = 160
            'End If
        End If

        If Len(TID_box.Text) = 16 Then
            CalcBlockLength = 8              ' 4 bytes per block
            If (Val("&H" & Mid(TID_box.Text, 3, 2)) = 5) Then
                CalcBlockLength = 16  ' 8 bytes per block for Infineon my-d tags
            End If
        End If
    
        If Len(TID_box.Text) = 8 Then
            CalcBlockLength = 8              ' 4 bytes per block
        End If
        
        ' Selected State functionality
        If Len(TID_box.Text) = 0 Then
            CalcBlockLength = 16              ' 8 bytes per block
        End If
        
        If Len(NUMBER_OF_BLOCKS_box.Text) = 2 Then
            ' note the value (text) shown in the NUMBER_OF_BLOCKS_box must be interpreted as a hex value
            DATA_box.MaxLength = Val("&H" & Mid(NUMBER_OF_BLOCKS_box.Text, 1, 2)) * CalcBlockLength
        End If
        
        Select Case TagType
            Case "03  Tag-it HF"
                CalcBlockLength = 8
                
            Case "06  PicoTag" ' 8 bytes/block
                CalcBlockLength = 16
                DATA_box.MaxLength = Val("&H" & Mid(NUMBER_OF_BLOCKS_box.Text, 1, 2)) * CalcBlockLength
                
            Case "0A  Mifare UltraLight" ' 4 bytes/block
                CalcBlockLength = 8
                DATA_box.MaxLength = Val("&H" & Mid(NUMBER_OF_BLOCKS_box.Text, 1, 2)) * CalcBlockLength
                
        End Select

        
    ' block length now determined
End Function

Private Sub NUMBER_OF_BLOCKS_box_Change()
    Dim BlockLength%
    
    If invalidF = True Then
        NUMBER_OF_BLOCKS_box.Text = temp
    End If
    
        
    Call CalcBlockLength
    Call refresh_HostCommand_box
End Sub
Private Sub NUMBER_OF_BLOCKS_box_KeyPress(KeyAscii As Integer)
    temp = NUMBER_OF_BLOCKS_box.Text
    invalidF = IsNotHex(KeyAscii)
End Sub
Private Sub DATA_box_Change()
    If invalidF = True Then
        DATA_box.Text = temp
    End If
    
    Call refresh_HostCommand_box
End Sub
Private Sub DATA_box_KeyPress(KeyAscii As Integer)
    temp = DATA_box.Text
    invalidF = IsNotHex(KeyAscii)
End Sub
Private Sub CRC_box_Change()
    If invalidF = True Then
        CRC_box.Text = temp
    End If
End Sub
Private Sub CRC_box_KeyPress(KeyAscii As Integer)
    temp = CRC_box.Text
    invalidF = IsNotHex(KeyAscii)
    Call refresh_HostCommand_box
End Sub
Private Sub btnExit_Click()
    mnuFileExit_Click
End Sub
Private Sub btnSendHostCommand_Click()
Dim i As Integer   'Loop Variable
Dim X$

    ' Initialize x$
    X$ = ""
    
    ' if the inventory comand is not yet complete (i.e. if it ends with <LF><94><LF>) then dont send another command
    If INV_F.Value = 1 Then
        freezeF = True
    End If
    
    Call refresh_HostCommand_box
    
    ProBuild.MSComm1.InBufferCount = 0    ' clear buffer
                
    If protocolF = True Then
        ' Send Host command as ASCII
        If secondLF = False Then
            ' test here to see if the inventory command is complete
            ' i.e. if the host response box contains ends with either <LF>94<LF> in ascii mode
            ' if the host response box ends with <STX>94 in binary mode, then the inventory
            ' command (in which INV_F=1) is complete and thus it's ok to send this next command
            If Len(Response_box.Text) > 13 Then
                If Mid(Response_box.Text, (Len(Response_box.Text) - 11), 12) = ("<LF>94<LF>" + vbCrLf) Then
                    If INV_F.Value = 0 Then
                        Response_box.Text = ""
                    End If
                End If
            End If
        End If
    
        ProBuild.MSComm1.Output = ""
        ProBuild.MSComm1.Output = vbCr
        For i = 5 To (Len(HostCommand_box.Text) - 4)
            ProBuild.MSComm1.Output = Mid(HostCommand_box.Text, i, 1)
        Next i
        ProBuild.MSComm1.Output = vbCr
    Else
        If Len(Response_box.Text) > 7 Then
            If Mid(Response_box.Text, (Len(Response_box.Text) - 8), 9) = ("<STX>94" + vbCrLf) Then
                If INV_F.Value = 0 Then
                    Response_box.Text = ""
                End If
            End If
        End If
        ' Send Host command as Binary
        ProBuild.MSComm1.Output = ""
        'ProBuild.MSComm1.Output = Chr$(2)
        X$ = X$ + Chr$(2)
        'For i = 6 To Len(HostCommand_box.Text) Step 2
        '    ProBuild.MSComm1.Output = Chr$(Val("&H" & Mid(HostCommand_box.Text, i, 2)))
        'Next i
        For i = 6 To Len(HostCommand_box.Text) Step 2
             X$ = X$ + Chr$(Val("&H" & Mid(HostCommand_box.Text, i, 2)))
        '    ProBuild.MSComm1.Output = Chr$(Val("&H" & Mid(HostCommand_box.Text, i, 2)))
        Next i
               
        ProBuild.MSComm1.Output = X$
        
    End If
End Sub
Private Sub mnuFileExit_Click()
    If (ProBuild.MSComm1.PortOpen = True) Then
            ProBuild.MSComm1.PortOpen = False
    End If
   
    If Form1.MSComm1.PortOpen = False Then
        Form1.MSComm1.PortOpen = True
    End If
    Unload ProBuild
    'Load Form1
    
End Sub
Sub refresh_COMMAND_box()
    Dim H$
    H$ = Hex(command%)
    COMMAND_box.Text = Left("00", 2 - Len(H$)) & H$
End Sub

Sub refresh_FLAGS_box()
    Dim H$
    H$ = Hex(flags%)
    FLAGS_box.Text = Left("00", 2 - Len(H$)) & H$
End Sub
Sub refresh_HostCommand_box()
    Dim byteCount As Integer
    Dim strByteCount As String

    If TID_F.Value = 0 Then
        TID_box.Text = ""
        TID_box.Enabled = False
    End If
    
    If COMMAND_box.Text = "14" Then
        STARTING_BLOCK_box.Text = ""
        NUMBER_OF_BLOCKS_box.Text = ""
        DATA_box.Text = ""
    End If
    
    If TagType.Enabled = False Then
        tag_type = ""
    Else
        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
                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
      End If
    
    End If
    
    If protocolF = True Then     ' ascii mode
        MsgLen_Box.Text = ""
        MsgLen_Box.Visible = False
        MsgLenFrame.Visible = False
        HostCommand_box.Text = "<CR>" + FLAGS_box.Text + C

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -