📄 mod.bas
字号:
d3 = &H30
d4 = CInt(Mid(CStr(Month(Date)), 1, 1)) + &H30
Else
d3 = CInt(Mid(CStr(Month(Date)), 1, 1)) + &H30
d4 = CInt(Mid(CStr(Month(Date)), 2, 1)) + &H30
End If
'日
If Len(CStr(Day(Date))) < 2 Then
d5 = &H30
d6 = CInt(Mid(CStr(Day(Date)), 1, 1)) + &H30
Else
d5 = CInt(Mid(CStr(Day(Date)), 1, 1)) + &H30
d6 = CInt(Mid(CStr(Day(Date)), 2, 1)) + &H30
End If
'周
d7 = CInt(Weekday(Data)) - 1 + &H30
'时
If Len(CStr(Hour(Time))) < 2 Then
d8 = &H30
d9 = CInt(Mid(CStr(Hour(Time)), 1, 1)) + &H30
Else
d8 = CInt(Mid(CStr(Hour(Time)), 1, 1)) + &H30
d9 = CInt(Mid(CStr(Hour(Time)), 2, 1)) + &H30
End If
'分
If Len(CStr(Minute(Time))) < 2 Then
d10 = &H30
d11 = CInt(Mid(CStr(Minute(Time)), 1, 1)) + &H30
Else
d10 = CInt(Mid(CStr(Minute(Time)), 1, 1)) + &H30
d11 = CInt(Mid(CStr(Minute(Time)), 2, 1)) + &H30
End If
'秒
If Len(CStr(Second(Time))) < 2 Then
d12 = &H30
d13 = CInt(Mid(CStr(Second(Time)), 1, 1)) + &H30
Else
d12 = CInt(Mid(CStr(Second(Time)), 1, 1)) + &H30
d13 = CInt(Mid(CStr(Second(Time)), 2, 1)) + &H30
End If
CHK = ((CInt(SOH) + e1 + e2 + e3 + CInt(FID) + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8 + d9 + d10 + d11 + d12 + d13) Mod 256)
CHK = Not CHK
'对返回时间包RT_byte重组
RT_byte(0) = SOH
RT_byte(1) = e1
RT_byte(2) = e2
RT_byte(3) = e3
RT_byte(4) = FID
RT_byte(5) = d1
RT_byte(6) = d2
RT_byte(7) = d3
RT_byte(8) = d4
RT_byte(9) = d5
RT_byte(10) = d6
RT_byte(11) = d7
RT_byte(12) = d8
RT_byte(13) = d9
RT_byte(14) = d10
RT_byte(15) = d11
RT_byte(16) = d12
RT_byte(17) = d13
RT_byte(18) = CHK
'***************************************************************************************************
'********* 送出返回时间
Form1.MSComm1(m_id).Output = RT_byte
aaa = RT_byte(7)
End Sub
Sub HD_opt()
MsgBox "掉线"
'需确定
Form1.MSComm1(m_id).Output = "+++"
Form1.MSComm1(m_id).Output = "ATH0" & vbCrLf
End Sub
Sub AK_opt()
MsgBox "应答"
RID = CStr(CLng(AK_byte(7)) + CLng(AK_byte(6)) * 256 + CLng(AK_byte(5)) * 65536)
End Sub
Sub RR_opt()
MsgBox "查询成绩"
'未确定
End Sub
Sub SR_opt()
'MsgBox "上传成绩"
Dim e1 As Byte
Dim e2 As Byte
Dim e3 As Byte
'***********************
'需要以后修改 现在先屏蔽掉(2004.06.10)
'EID = CStr(CLng(SR_byte(3)) + CLng(SR_byte(2)) * 256 + CLng(SR_byte(1)) * 65536)
'CID = CStr(CLng(SR_byte(9)) + CLng(SR_byte(8)) * 256 + CLng(SR_byte(7)) * 65536 + CLng(SR_byte(6)) * 16777216 + CLng(SR_byte(5)) * 4294967296#)
'TIM = CStr(CInt(SR_byte(10)) * 256 + CInt(SR_byte(11))) + "-" + CStr(CInt(SR_byte(12))) + "-" + CStr(CInt(SR_byte(13))) + Space(1) + CStr(CInt(SR_byte(14))) + ":" + CStr(CInt(SR_byte(15))) + ":" + CStr(CInt(SR_byte(16))) + "." + CStr(CInt(SR_byte(17)))
'***********************
'向归巢数据表中插入数据
sql = "insert t_return values ( '" & Trim(CID) & "'," & "'" & Trim(TIM) & "'," & "'" & Trim(EID) & "')"
' cn.Execute (sql)
'*************************
'以下是对返回临时名次和速度等信息的封包
'
'*************************
'********************
'返回确认
SOH = &HAB '包头ABH
'把服务器的计算机名称转换成三个字节 在这个地方名称用8为数字做为名称但不大于256*256*256
e1 = CLng(computername) \ 65536
e2 = (CLng(computername) Mod 65536) \ 256
e3 = (CLng(computername) Mod 65536) Mod 256
FID = &H3 '功能编号为5 返回时间
CHK = ((171 + CInt(e1) + CInt(e2) + CInt(e3) + 3) Mod 256)
CHK = Not CHK
CO_byte(0) = SOH
CO_byte(1) = e1
CO_byte(2) = e2
CO_byte(3) = e3
CO_byte(4) = FID
CO_byte(5) = CHK
'********************
'********* 送出返回确认
Form1.MSComm1(m_id).Output = CO_byte
End Sub
Sub SD_opt()
'MsgBox "建档"
Dim e1 As Byte
Dim e2 As Byte
Dim e3 As Byte
'***********************
'需要以后修改 现在先屏蔽掉(2004.06.10)
'EID = CStr(CLng(SD_byte(3)) + CLng(SD_byte(2)) * 256 + CLng(SD_byte(1)) * 65536)
'CID = CStr(CLng(SD_byte(9)) + CLng(SD_byte(8)) * 256 + CLng(SD_byte(7)) * 65536 + CLng(SD_byte(6)) * 16777216 + CLng(SD_byte(5)) * 4294967296#)
'DID = Chr(SD_byte(14)) + Chr(SD_byte(13)) + Chr(SD_byte(12)) + Chr(SD_byte(11)) + Chr(SD_byte(10))
'TIM = Date$ + Space(1) + Time$
'************************
'向建档表中插入数据
sql = "insert t_archives values ( '" & Trim(CID) & "'," & "'" & Trim(DID) & "'," & "'" & Trim(EID) & "','" & Trim(TIM) & "')"
' cn.Execute (sql)
'****************************
'以下是对返回确认的封包
'
'****************************
'返回确认
SOH = &HAB '包头ABH
'把服务器的计算机名称转换成三个字节 在这个地方名称用8为数字做为名称但不大于256*256*256
e1 = CLng(computername) \ 65536
e2 = (CLng(computername) Mod 65536) \ 256
e3 = (CLng(computername) Mod 65536) Mod 256
FID = &H3 '功能编号为5 返回时间
CHK = ((171 + CInt(e1) + CInt(e2) + CInt(e3) + 3) Mod 256)
CHK = Not CHK
CO_byte(0) = SOH
CO_byte(1) = e1
CO_byte(2) = e2
CO_byte(3) = e3
CO_byte(4) = FID
CO_byte(5) = CHK
'********************
'****************************************************************************************************
''''' FID = &H5 '功能编号为5 返回时间
'''''' TIM = Date$ + Space(1) + Time$
''''' '得到日期和时间
''''' d1 = CInt(Year(Date)) \ 256 '和d1组成年
''''' d2 = CInt(Year(Date)) Mod 256
''''' d3 = CInt(Month(Date)) '月
''''' d4 = CInt(Day(Date)) '日
''''' d5 = 32 '一个空格
''''' d6 = CInt(Hour(Time)) '小时
''''' d7 = CInt(Minute(Time)) '分钟
''''' d8 = CInt(Second(Time)) '秒
'''''
''''' CHK = ((CInt(SOH) + e1 + e2 + e3 + CInt(FID) + d1 + d2 + d3 + d4 + d5 + d6 + d7 + d8) Mod 256)
'''''
''''' CHK = Not CHK
''''' '对返回时间包RT_byte重组
''''' RT_byte(0) = SOH
''''' RT_byte(1) = e1
''''' RT_byte(2) = e2
''''' RT_byte(3) = e3
''''' RT_byte(4) = FID
''''' RT_byte(5) = d1
''''' RT_byte(6) = d2
''''' RT_byte(7) = d3
''''' RT_byte(8) = d4
''''' RT_byte(9) = d5
''''' RT_byte(10) = d6
''''' RT_byte(11) = d7
''''' RT_byte(12) = d8
''''' RT_byte(13) = CHK
'***************************************************************************************************
'********* 送出返回时间
Form1.MSComm1(m_id).Output = CO_byte
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -