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

📄 frmdemo.frm

📁 HD 6P RFID 终端机、考勤卡钟 RS232/RS485 通讯接口程序 VB 源码
💻 FRM
📖 第 1 页 / 共 4 页
字号:
      Top             =   1920
      Width           =   375
   End
   Begin VB.Label Label7 
      Caption         =   "实时上串记录显示"
      Height          =   375
      Left            =   7440
      TabIndex        =   33
      Top             =   1320
      Width           =   2295
   End
   Begin VB.Line Line3 
      X1              =   7320
      X2              =   7320
      Y1              =   1080
      Y2              =   4680
   End
   Begin VB.Line Line2 
      X1              =   4080
      X2              =   4080
      Y1              =   1080
      Y2              =   4680
   End
   Begin VB.Label LbVersion 
      Caption         =   "黑名单版本"
      Height          =   255
      Left            =   4200
      TabIndex        =   28
      Top             =   2280
      Width           =   975
   End
   Begin VB.Label Label6 
      Caption         =   "终端ID"
      Height          =   255
      Left            =   4680
      TabIndex        =   26
      Top             =   2760
      Width           =   615
   End
   Begin VB.Label Label5 
      Caption         =   "配置:"
      Height          =   375
      Left            =   1920
      TabIndex        =   14
      Top             =   240
      Width           =   855
   End
   Begin VB.Line Line1 
      X1              =   0
      X2              =   10680
      Y1              =   1080
      Y2              =   1080
   End
   Begin VB.Label Label4 
      Caption         =   "序列号:"
      Height          =   255
      Left            =   1920
      TabIndex        =   12
      Top             =   600
      Width           =   615
   End
   Begin VB.Label Label3 
      Caption         =   "子系统:"
      Height          =   255
      Left            =   120
      TabIndex        =   11
      Top             =   600
      Width           =   735
   End
   Begin VB.Label Label2 
      Caption         =   "地址:"
      Height          =   255
      Left            =   4320
      TabIndex        =   10
      Top             =   1680
      Width           =   855
   End
   Begin VB.Label Label1 
      Caption         =   "串口号:"
      Height          =   255
      Left            =   120
      TabIndex        =   8
      Top             =   240
      Width           =   735
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim m_nSystemID As Long
Dim m_nBroadcastAddress As Long
Dim m_strPort, m_strEnumPort As String
Dim m_bResult As Boolean
Dim m_nStart As Long
Dim m_bWK(0 To 7) As Byte
Dim m_Button
Dim m_bSendData() As Byte
Dim m_BufferLength As Long
Dim m_Message As Long
Dim m_HD8583 As HD8583STRUCT
Dim m_RspHd8583 As HD8583STRUCT                    '响应报文
Dim m_ReqHd8583 As HD8583STRUCT                    '请求报文
Dim m_Buffer As BUFFERSTRUCT                       '缓冲区定义
Public m_nTryTimes As Integer                      '定义报文重发次数
Public nCount As Integer                           '处理记录的条数
Dim m_HD8583_Bak As HD8583STRUCT                   '采集记录时备份的报文
Dim CurrentVersion As Long                         '当前终端的黑名单版本
Dim IDWCListVersion As Long                        'ID白名单版本
Dim WordMode As Byte                               '工作模式


Private Sub btnAllotAddr_Click()
    Dim wAddress As Integer
    Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
    m_HD8583.Message_Type = MT_ALLOTADDRESS2
    m_HD8583.TerminalSN = GetTerminalSN()
    m_HD8583.Address = GetAddress()
    wAddress = 108
    m_HD8583.LenOfAdditionalData1 = Len(wAddress)
    Call CopyMemory(m_HD8583.AdditionalData1(0), wAddress, m_HD8583.LenOfAdditionalData1)
    If TimerOn(btnAllotAddr, 300) Then
        Call DoSendDatagram(m_HD8583)
    End If
  
     
End Sub

Private Sub btnClearUpBList_Click()
'没有调试过,2006-5-29
      Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
      m_HD8583.Message_Type = MT_UPDATELIST2
      m_HD8583.Address = GetAddress()
      m_HD8583.TerminalID = GetTerminalID()
      m_HD8583.VerOfList = 0
      m_HD8583.LenOfAdditionalData3 = 1
   
      m_HD8583.WorkKey(1) = 255
      m_HD8583.WorkKey(2) = 255
      m_HD8583.WorkKey(3) = 255
      m_HD8583.WorkKey(4) = 255
      m_HD8583.WorkKey(5) = 255
      m_HD8583.WorkKey(6) = 255
      m_HD8583.WorkKey(7) = 255
      m_HD8583.WorkKey(0) = 255
      
      If (TimerOn(btnClearUpBList, 1000)) Then      'IC清空黑白名单, MT_UPDATELIST2 , VerOfList = 0 时清空
         Call DoSendDatagram(m_HD8583) '发送报文
      End If
      
End Sub

Private Sub btnCollectRec_Click()
      m_nTryTimes = 4  '报文重复次数赋值
      Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
      m_HD8583.Message_Type = MT_BATCHSENDRECORD2
      m_HD8583.Address = GetAddress()
      m_HD8583.TerminalID = CLng(TextTermilID.Text)
      m_HD8583.LenOfAdditionalData1 = 1
      m_HD8583.AdditionalData1(0) = 10
      m_HD8583.WorkKey(1) = &HFF
      m_HD8583.WorkKey(2) = &HFF
      m_HD8583.WorkKey(3) = &HFF
      m_HD8583.WorkKey(4) = &HFF
      m_HD8583.WorkKey(5) = &HFF
      m_HD8583.WorkKey(6) = &HFF
      m_HD8583.WorkKey(7) = &HFF
      m_HD8583.WorkKey(0) = &HFF
      Call CopyMemory(m_HD8583_Bak, m_HD8583, Len(m_HD8583))
      If (TimerOn(btnCollectRec, 5000)) Then
         Call DoSendDatagram(m_HD8583) '发送报文
      End If
     
End Sub

Private Sub btnGetPara_Click()
    Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
    m_HD8583.Message_Type = MT_CONFIGPARA2
    m_HD8583.TerminalSN = GetTerminalSN()
    m_HD8583.Address = GetAddress()
    If (TimerOn(btnGetPara, 5000)) Then
       Call DoSendDatagram(m_HD8583) '发送报文
    End If
     
End Sub

Private Sub btnGetUserID_Click()
    Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
    m_HD8583.Message_Type = MT_SETUSERDEFNUMBER2
    m_HD8583.TerminalSN = GetTerminalSN()
    m_HD8583.Address = GetAddress()
    If (TimerOn(btnGetUserID, 1000)) Then
        Call DoSendDatagram(m_HD8583)
    End If
     
End Sub

Private Sub btnInitPara_Click()
    Dim DateTime As MYDATETIMESTRUCT
    Dim bCommType As Byte
    Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
    m_HD8583.Message_Type = MT_INITPARA2
    m_HD8583.TerminalSN = GetTerminalSN()
    m_HD8583.Address = GetAddress()
    DateTime = GetDateTime()
    Call CopyMemory(m_HD8583.DateTime, DateTime, Len(DateTime))
    '此处请注意,0表示CAN通讯方式,1表示RS485通讯方式,2表示MODEM通讯方式
    '3表示TCP/IP通讯方式,4表示GPRS通讯方式
    bCommType = 0
    m_HD8583.LenOfAdditionalData1 = Len(bCommType)
    Call CopyMemory(m_HD8583.AdditionalData1(0), bCommType, m_HD8583.LenOfAdditionalData1)
    m_HD8583.LenOfAdditionalData2 = 1
    m_HD8583.AdditionalData2(0) = 0
    If (TimerOn(btnInitPara, 3500)) Then
       Call DoSendDatagram(m_HD8583)
    End If
End Sub

'IC更新黑白名单
Private Sub btnUpdateBCList_Click()
Dim i As Integer, j As Integer
Dim byteTemp(0 To 5) As Byte
Dim Count As Long
Dim BlackRecord As BlackListSTRUCT
     
    Call MemSet_HD(m_HD8583, &H0, 10080)
    m_HD8583.Message_Type = MT_UPDATELIST2
    m_HD8583.Address = GetAddress()
    m_HD8583.TerminalID = GetTerminalID()
    m_HD8583.VerOfList = CurrentVersion + 10
    m_HD8583.LenOfAdditionalData3 = 1 ' 结束标志
    
    m_HD8583.WorkKey(1) = &HFF
    m_HD8583.WorkKey(2) = &HFF
    m_HD8583.WorkKey(3) = &HFF
    m_HD8583.WorkKey(4) = &HFF
    m_HD8583.WorkKey(5) = &HFF
    m_HD8583.WorkKey(6) = &HFF
    m_HD8583.WorkKey(7) = &HFF
    m_HD8583.WorkKey(0) = &HFF
        
     Dim CardNO As Long
     For Count = 0 To 9 Step 1
         CardNO = Count + CurrentVersion
         BlackRecord.SerialNO = 1               '1为增加黑白名单,0为删除黑白名单
         BlackRecord.CardNO = CardNO + 1
         
         '---------------------------------------------------------反转后4个字节
         Call CopyMemory(byteTemp(0), BlackRecord, 5)
         m_HD8583.AdditionalData2(Count * 5) = byteTemp(0)
         j = 4
         For i = Count * 5 + 1 To Count * 5 + 4
            m_HD8583.AdditionalData2(i) = byteTemp(j)
            j = j - 1
         Next i
         '---------------------------------------------------------
         
         'Call CopyMemory(m_HD8583.AdditionalData2(Count * 5), BlackRecord, 5)
         

     Next Count
     
     m_HD8583.LenOfAdditionalData2 = Len(BlackRecord) * 9
     If (TimerOn(btnUpdateBCList, 3500)) Then
       Call DoSendDatagram(m_HD8583)
     End If

     

'        // 手工输入终端当前的黑名单版本
'        String strAgoVersion = "0";
'        if (InputQuery(Restable_AgoBCListVer, Restable_AgoBCListVerOfTer, strAgoVersion))
'        {
'            DWORD dwAgoVersion = StrToInt64(strAgoVersion);
'            if (dwAgoVersion < m_nICBCListVersion)
'            {
'                HD8583STRUCT hd8583;
'                memset(&hd8583, 0x00, sizeof(hd8583));
'                hd8583.MessageType = MT_UPDATELIST2;
'                hd8583.TerminalSN = GetTerminalSN();
'                hd8583.Address = GetAddress();
'//              hd8583.TerminalID = GetTerminalID();
'                if (m_nICBCListVersion - dwAgoVersion > PERTIMECOUNT_ICBCLIST)   // 每次下载60个黑名单
'                {
'                    hd8583.VerOfList = dwAgoVersion + PERTIMECOUNT_ICBCLIST;
'                    hd8583.LenOfAdditionalData2 = sizeof(m_bICBCList[0]) * PERTIMECOUNT_ICBCLIST;
'                    memcpy(hd8583.AdditionalData2, m_bICBCList[dwAgoVersion], hd8583.LenOfAdditionalData2);
'                }
'                Else
'                {
'                    hd8583.VerOfList = m_nICBCListVersion;
'                    hd8583.LenOfAdditionalData2 = sizeof(m_bICBCList[0]) * (m_nICBCListVersion - dwAgoVersion);
'                    memcpy(hd8583.AdditionalData2, m_bICBCList[dwAgoVersion], hd8583.LenOfAdditionalData2);
'                    hd8583.LenOfAdditionalData3 = 1;
'                }
'                memcpy(hd8583.WorkKey, bWK, sizeof(bWK));
'                if (TimerOn(1000, btnUpdateBCList))
'                    MySendHD8583(&hd8583, m_SckClient, false, pmAddCRC16->Checked);
'            }
'            else if (dwAgoVersion == m_nICBCListVersion)
'                ShowMessage(Restable_BCListVerEqual);
'            Else
'                ShowMessage(Restable_BCListVerLarger);


End Sub

Private Sub btnUpdateIDWCList_Click()
     Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
     m_HD8583.Message_Type = MT_UPDATEIDWCLIST2
     m_HD8583.TerminalID = GetTerminalID()
     m_HD8583.Address = GetAddress()
     m_HD8583.VerOfList = IDWCListVersion + 10
     
     m_HD8583.LenOfAdditionalData3 = 1
     m_HD8583.WorkKey(1) = 255
     m_HD8583.WorkKey(2) = 255
     m_HD8583.WorkKey(3) = 255
     m_HD8583.WorkKey(4) = 255
     m_HD8583.WorkKey(5) = 255
     m_HD8583.WorkKey(6) = 255
     m_HD8583.WorkKey(7) = 255
     m_HD8583.WorkKey(0) = 255
     m_HD8583.VerOfList = IDWCListVersion + 10
     
     Dim Count As Long
     Dim CardNO As Long
     Dim MyName  As String * 12
     For Count = 0 To 9 Step 1
         CardNO = IDWCListVersion + Count
         MyName = "张三"
         Call CopyMemory(m_HD8583.AdditionalData2(Count * 4), CardNO, 4)
         m_HD8583.AdditionalData4 = m_HD8583.AdditionalData4 + MyName
     Next Count
     m_HD8583.LenOfAdditionalData2 = 4 * Count
     m_HD8583.LenOfAdditionalData4 = 12 * Count
     m_HD8583.LenOfAdditionalData1 = 1
     m_HD8583.AdditionalData1(0) = 1
     If (TimerOn(btnUpdateIDWCList, 3500)) Then
         Call DoSendDatagram(m_HD8583)
     End If
    
End Sub

Private Sub CmdConfigPara_Click()
    Call MemSet_HD(m_HD8583, &H0, Len(m_HD8583))
    m_HD8583.Message_Type = MT_CONFIGPARA2
    m_HD8583.TerminalSN = GetTerminalSN()
    m_HD8583.Address = GetAddress()

⌨️ 快捷键说明

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