📄 frmdemo.frm
字号:
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 + -