📄 module2.bas
字号:
ByVal i4 As Byte, _
ByVal i5 As Byte, _
ByVal i6 As Byte, _
ByVal i7 As Byte, _
ByVal ddd As Integer)
Dim feature As Byte
Dim total As Single
Dim addr As Byte
Dim st, Active_String, ST1 As String
Dim tabl As Recordset
Dim st2 As String
On Error Resume Next
feature = (i4 And &HF0) \ 16
total = CInt(find(i5)) * 256 + CInt(find(i6)) * 16 + CInt(find(i7))
addr = find(i2) * 16 + find(i3)
If pd5(addr, feature, 8, ddd) Then
Select Case feature
Case &HC
st = "雨量"
Total_Rain = Total_Rain + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Call Write_Act(addr, Active_String, &HC)
Case &HF
st = "水位"
Total_Water = Total_Water + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Call Write_Act(addr, Active_String, &HF)
Call shuiweichuli(addr, total)
Case &HD
st = "电压"
Total_V = Total_V + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
CallByName Write_Act(addr, Active_String, &HD)
End Select
p_date.addr = addr
p_date.character = feature
p_date.day = day(Now())
p_date.hour = hour(Now())
p_date.min = Minute(Now())
p_date.mon = Month(Now())
p_date.total = total
Open App.Path & "\" & old_file For Binary As #11
Put #11, FileLen(App.Path & "\" & old_file) + 1, p_date
Close #11
ST1 = "SELECT * from " & st & "排除 WHERE " & st & "排除 = " & CStr(total)
Set tabl = New Recordset
tabl.Open ST1, DB1, adOpenStatic, adLockOptimistic
If tabl.BOF Then
Select Case st
Case "雨量"
ST1 = "INSERT INTO 雨量 (站号,雨量,时间) VALUES (" & _
CStr(addr) & "," & _
CStr(total) & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "1"
Case "水位"
ST1 = "INSERT INTO 水位 (站号,水位,时间) VALUES (" & _
CStr(addr) & "," & _
Format$(((total + Find_WeiTiao(addr)) / 100) + Find_GaoCheng(addr), "0.00") & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "2"
Case "电压"
ST1 = "INSERT INTO 电压 (站号,电压,时间) VALUES (" & _
CStr(addr) & "," & _
Format$(total / 100, "0.00") & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "3"
Case Else
End Select
End If
st2 = "INSERT INTO 原始数据 (站号,数值,时间,物理量) VALUES (" & _
CStr(addr) & "," & _
CStr(total) & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & "," & _
"'" & st & "')"
DB1.Execute st2
Open App.Path & file_Path & Format$(addr, "000") & ".txt" For Append As #2
Print #2, Format$(addr, "000") & " " & Format$(total, "0000") & " " & Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Close #2
Select Case st
Case "雨量"
Open App.Path & file_Path & "Rain" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",1"
Close #2
Case "水位"
Open App.Path & file_Path & "Water" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",2"
Close #2
Case "电压"
Open App.Path & file_Path & "V" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",3"
Close #2
Case Else
End Select
Call Change_StatusBar
End If
Set tabl = Nothing
End Sub
Public Sub R_Date(ByVal i0 As Byte, ByVal i1 As Byte, ByVal i2 As Byte, ByVal i3 As Byte)
Dim feature, datechar0, datechar1 As Byte
Dim total As Single
Dim addrchar0, addrchar1 As Byte
Dim addr As Byte
Dim st, Active_String, ST1 As String
Dim tabl As Recordset
Dim st2 As String
On Error Resume Next
feature = (i2 And &HF0) \ 16
datechar0 = i2 And &HF
datechar1 = i3
total = CInt(datechar0)
total = CInt(total) * 256 + CInt(datechar1)
addrchar0 = find(i0)
addrchar1 = find(i1)
addr = addrchar0 * 16 + addrchar1
Select Case feature
Case &HC
st = "雨量"
Total_Rain = Total_Rain + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Call Write_Act(addr, Active_String, &HC)
Case &HF
st = "水位"
Total_Water = Total_Water + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Call Write_Act(addr, Active_String, &HF)
Call shuiweichuli(addr, total)
Case &HD
st = "电压"
Total_V = Total_V + 1
Active_String = Format$(addr, "000") + "号站 " + st + " " + Format$(total, "0000") + " " + Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Call Write_Act(addr, Active_String, &HD)
End Select
p_date.addr = addr
p_date.character = feature
p_date.day = day(Now())
p_date.hour = hour(Now())
p_date.min = Minute(Now())
p_date.mon = Month(Now())
p_date.total = total
Open App.Path & "\" & old_file For Binary As #10
Put #10, FileLen(App.Path & "\" & old_file) + 1, p_date
Close #10
ST1 = "SELECT * from " & st & "排除 WHERE " & st & "排除 = " & CStr(total)
Set tabl = New Recordset
tabl.Open ST1, DB1, adOpenStatic, adLockOptimistic
If tabl.BOF Then
Select Case st
Case "雨量"
ST1 = "INSERT INTO 雨量 (站号,雨量,时间) VALUES (" & _
CStr(addr) & "," & _
CStr(total) & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "1"
Case "水位"
ST1 = "INSERT INTO 水位 (站号,水位,时间) VALUES (" & _
CStr(addr) & "," & _
Format$(((total + Find_WeiTiao(addr)) / 100) + Find_GaoCheng(addr), "0.00") & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "2"
Case "电压"
ST1 = "INSERT INTO 电压 (站号,电压,时间) VALUES (" & _
CStr(addr) & "," & _
Format$(total / 100, "0.00") & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & ")"
DB1.Execute ST1
Max.Winsock1.SendData "3"
Case Else
End Select
End If
st2 = "INSERT INTO 原始数据 (站号,数值,时间,物理量) VALUES (" & _
CStr(addr) & "," & _
CStr(total) & "," & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & "," & _
"'" & st & "')"
DB1.Execute st2
Open App.Path & file_Path & Format$(addr, "000") & ".txt" For Append As #2
Print #2, Format$(addr, "000") & " " & Format$(total, "0000") & " " & Format$(Now(), "yyyy-mm-dd hh:mm:ss")
Close #2
Select Case st
Case "雨量"
Open App.Path & file_Path & "Rain" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",1"
Close #2
Case "水位"
Open App.Path & file_Path & "Water" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",2"
Close #2
Case "电压"
Open App.Path & file_Path & "V" & Format$(addr, "000") & ".txt" For Append As #2
Print #2, CStr(addr) & "," & _
Format$(Year(Now()), "0000") & "," & _
CStr(Month(Now())) & "," & _
CStr(day(Now())) & "," & _
CStr(hour(Now())) & "," & _
CStr(Minute(Now())) & "," & _
CStr(Second(Now())) & "," & _
CStr(total) & ",3"
Close #2
Case Else
End Select
Call Change_StatusBar
Set tabl = Nothing
End Sub
Public Function pd1(ByVal char As Byte) As Boolean
Dim i As Integer
On Error Resume Next
For i = 0 To 15
If char = jycode(i) Then
pd1 = True
Exit Function
End If
Next i
pd1 = False
End Function
Public Function pd2(ByVal char As Byte) As Integer
On Error Resume Next
Select Case (char And &HF0)
'Case &H0, &H30 '0人工置数参数一,3人工置数参数二
'pd2 = 2
Case &HC0, &HD0, &HF0 'C雨量,D电压,F水位
pd2 = 1
Case Else
pd2 = 0
End Select
End Function
Public Sub shuiweichuli(ByVal a As Integer, ByVal b As Integer)
Dim st As String
Dim tabl As Recordset
Dim c As Integer
Dim d As Date
st = "select top 1 * from 原始数据 where 站号 = " & CStr(a) & " and 物理量 = '水位' and 时间 < " & _
zhong_time_symbol & Format$(Now(), "yyyy-mm-dd hh:mm:ss") & zhong_time_symbol & _
" order by 时间 desc"
Set tabl = New Recordset
tabl.Open st, DB1, adOpenStatic, adLockOptimistic
If Not tabl.BOF Then '有前一个原始数据
c = tabl("数值").Value
d = tabl("时间").Value
If ((b <= jiexian) And (c >= (1000 - jiexian))) And ((Now() - d) <= riqijiexian) Then '+10米
st = "select * from 水位高程 where 站号 = " & CStr(a)
Set tabl = New Recordset
tabl.Open st, DB1, adOpenStatic, adLockOptimistic
If Not tabl.BOF Then
st = "update 水位高程 set 水位高程=水位高程+10 where 站号 = " & CStr(a)
Else
st = "INSERT INTO 水位高程 (站号,水位高程) VALUES (" & _
CStr(a) & "," & _
"10" & ")"
End If
DB1.Execute st
End If
If ((c <= jiexian) And (b >= (1000 - jiexian))) And ((Now() - d) <= riqijiexian) Then '-10米
st = "select * from 水位高程 where 站号 = " & CStr(a)
Set tabl = New Recordset
tabl.Open st, DB1, adOpenStatic, adLockOptimistic
If Not tabl.BOF Then
st = "update 水位高程 set 水位高程=水位高程-10 where 站号 = " & CStr(a)
Else
st = "INSERT INTO 水位高程 (站号,水位高程) VALUES (" & _
CStr(a) & "," & _
"-10" & ")"
End If
DB1.Execute st
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -