📄 module1.vb
字号:
End Sub
#Region "recivedata"
Public Shared Sub SynReceiveData()
System.Threading.Thread.Sleep(0)
_serialPort.ReadTimeout = 1000
Try
'Dim firstByte As Byte
'Dim bytesRead As Integer
'firstByte = Convert.ToByte(_serialPort.ReadByte())
'bytesRead = _serialPort.BytesToRead
'_buffer = New Byte(20) {}
'_buffer(0) = firstByte
For i = 0 To _buffer.Length - 1
_buffer(i) = Convert.ToByte(_serialPort.ReadByte())
Next
Console.WriteLine("Receive datas success! ")
Catch ex As TimeoutException
Console.WriteLine("Recieve datas timeout error!")
'do timeout error
End Try
End Sub
#End Region
#Region "readpt"
Public Shared Sub readport()
Dim SQL As String
Dim conn As New Data.SqlClient.SqlConnection
Dim cmd As Data.SqlClient.SqlCommand
Dim rd As Data.SqlClient.SqlDataReader
Dim ds As New Data.DataSet
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("connectionString").ConnectionString
SQL = "select * from device"
Try
conn.Open()
Catch ex As SqlClient.SqlException
Console.WriteLine(ex.Message)
End Try
'从设备表中获取设备的序列号数组
cmd = New Data.SqlClient.SqlCommand(SQL, conn)
rd = cmd.ExecuteReader()
Dim rcount As Integer
rcount = 0
Dim did() As Integer
Dim dad() As Integer
did = New Integer(20) {}
dad = New Integer(20) {}
While rd.Read()
did(rcount) = rd.Item(0)
dad(rcount) = rd.Item(3)
rcount = rcount + 1
End While
rd.Close()
'根据设备的ID号更新实时数据表中对应ID号的行的数据
Dim k As Integer
For k = 0 To rcount - 1
_wbuffer0(1) = _wbuffer0(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer0(12) = _wbuffer0(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer1(1) = _wbuffer1(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer1(12) = _wbuffer1(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer2(1) = _wbuffer2(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer2(12) = _wbuffer2(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer3(1) = _wbuffer3(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer3(12) = _wbuffer3(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer4(1) = _wbuffer4(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer4(12) = _wbuffer4(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer5(1) = _wbuffer5(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer5(12) = _wbuffer5(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer6(1) = _wbuffer6(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer6(12) = _wbuffer6(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer7(1) = _wbuffer7(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer7(12) = _wbuffer7(12) + Convert.ToInt32(dad(k)) - 1
_wbuffer8(1) = _wbuffer8(1) + Convert.ToInt32(dad(k)) - 1
_wbuffer8(12) = _wbuffer8(12) + Convert.ToInt32(dad(k)) - 1
Dim _date As DateTime
Dim _dat As String
Dim da As New Data.SqlClient.SqlDataAdapter("select * from SecPTS where d_Id='" & Convert.ToInt32(did(k)) & "'", conn)
Dim dab As New Data.SqlClient.SqlCommandBuilder(da)
da.Fill(ds, "TempSecPTS")
_serialPort.Open()
SendBytesData(_wbuffer0)
'开启接收数据线程
_buffer = New Byte(21) {}
ReceiveData()
_serialPort.Close()
_dat = Hex(_buffer(17)) + "-" + ((_buffer(16) >> 4) And 1).ToString + (_buffer(16) And 15).ToString + "-" + Hex(_buffer(15)) + " " + Hex(_buffer(14)) + ":" + Hex(_buffer(13)) + ":" + Hex(_buffer(12))
Try
_date = DateTime.Parse(_dat)
Catch
Console.WriteLine("Read datetime error!")
End Try
'drow = ds.Tables("TempSecPTS").Rows(0)
ds.Tables("TempSecPTS").Rows(0).Item(0) = _date
_serialPort.Open()
SendBytesData(_wbuffer1)
'开启接收数据线程
_buffer = New Byte(51) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 8
ds.Tables("TempSecPTS").Rows(0).Item(i + 2) = CInt(_buffer(12 + i * 4) And 15) / 100000 + CInt(_buffer(12 + i * 4) >> 4) / 10000 _
+ CInt(_buffer(13 + i * 4) And 15) / 1000 + CInt(_buffer(13 + i * 4) >> 4) / 100 _
+ CInt(_buffer(14 + i * 4) And 15) / 10 + CInt(_buffer(14 + i * 4) >> 4) _
+ CInt(_buffer(15 + i * 4) And 15) * 10 + CInt(_buffer(15 + i * 4) >> 4) * 100
Next
_serialPort.Open()
SendBytesData(_wbuffer2)
'开启接收数据线程
_buffer = New Byte(39) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 5
ds.Tables("TempSecPTS").Rows(0).Item(i + 11) = CInt(_buffer(12 + i * 4) And 15) / 100 + CInt(_buffer(12 + i * 4) >> 4) / 10 _
+ CInt(_buffer(13 + i * 4) And 15) + CInt(_buffer(13 + i * 4) >> 4) * 10 _
+ CInt(_buffer(14 + i * 4) And 15) * 100 + CInt(_buffer(14 + i * 4) >> 4) * 1000 _
+ CInt(_buffer(15 + i * 4) And 15) * 10000 + CInt(_buffer(15 + i * 4) >> 4) * 100000
Next
_serialPort.Open()
SendBytesData(_wbuffer3)
'开启接收数据线程
_buffer = New Byte(63) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 11
ds.Tables("TempSecPTS").Rows(0).Item(i + 17) = (CInt(_buffer(12 + i * 4)) _
+ CInt(_buffer(13 + i * 4)) * 256 _
+ CInt(_buffer(14 + i * 4)) * 256 * 256 _
+ CInt(_buffer(15 + i * 4)) * 256 * 256 * 256) / 100000
Next
_serialPort.Open()
SendBytesData(_wbuffer4)
'开启接收数据线程
_buffer = New Byte(39) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 5
ds.Tables("TempSecPTS").Rows(0).Item(i + 29) = (CInt(_buffer(12 + i * 4)) _
+ CInt(_buffer(13 + i * 4)) * 256 _
+ CInt(_buffer(14 + i * 4)) * 256 * 256 _
+ CInt(_buffer(15 + i * 4)) * 256 * 256 * 256) / 100
Next
_serialPort.Open()
SendBytesData(_wbuffer5)
'开启接收数据线程
_buffer = New Byte(33) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 8
ds.Tables("TempSecPTS").Rows(0).Item(i + 35) = (CInt(_buffer(12 + i * 2)) _
+ CInt(_buffer(13 + i * 2)) * 256)
Next
_serialPort.Open()
SendBytesData(_wbuffer6)
'开启接收数据线程
_buffer = New Byte(27) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 5
ds.Tables("TempSecPTS").Rows(0).Item(i + 44) = (CInt(_buffer(12 + i * 2)) _
+ CInt(_buffer(13 + i * 2)) * 256)
Next
_serialPort.Open()
SendBytesData(_wbuffer7)
'开启接收数据线程
_buffer = New Byte(51) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 8
ds.Tables("TempSecPTS").Rows(0).Item(i + 50) = CInt(_buffer(12 + i * 4)) _
+ CInt(_buffer(13 + i * 4)) * 256 _
+ CInt(_buffer(14 + i * 4)) * 256 * 256 _
+ CInt(_buffer(15 + i * 4)) * 256 * 256 * 256
Next
_serialPort.Open()
SendBytesData(_wbuffer8)
'开启接收数据线程
_buffer = New Byte(39) {}
ReceiveData()
_serialPort.Close()
For i = 0 To 5
ds.Tables("TempSecPTS").Rows(0).Item(i + 59) = CInt(_buffer(12 + i * 4)) _
+ CInt(_buffer(13 + i * 4)) * 256 _
+ CInt(_buffer(14 + i * 4)) * 256 * 256 _
+ CInt(_buffer(15 + i * 4)) * 256 * 256 * 256
Next
ds.Tables("TempSecPTS").Rows(0).Item(65) = 1
Try
'ds.Tables("strUserInfo").AcceptChanges
da.Update(ds, "TempSecPTS")
Catch
Console.WriteLine("Write current datas error!")
End Try
ds.Clear()
_wbuffer0 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (16), (80), (52), (22)}
_wbuffer1 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (16), (82), (54), (22)}
_wbuffer2 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (17), (82), (55), (22)}
_wbuffer3 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (16), (96), (68), (22)}
_wbuffer4 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (17), (96), (69), (22)}
_wbuffer5 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (16), (97), (69), (22)}
_wbuffer6 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (17), (97), (70), (22)}
_wbuffer7 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (16), (98), (70), (22)}
_wbuffer8 = New Byte() {(104), (1), (0), (0), (0), (0), (0), (104), (1), (2), (17), (98), (71), (22)}
Next
conn.Close()
conn.Dispose()
End Sub
#End Region
Public Shared Function SetPortName(ByVal defaultPortName As String) As String
Dim newPortName As String
Console.WriteLine("Available Ports:")
Dim s As String
For Each s In IO.Ports.SerialPort.GetPortNames()
Console.WriteLine(" {0}", s)
Next s
Console.Write("COM port({0}): ", defaultPortName)
newPortName = Console.ReadLine()
If newPortName = "" Then
newPortName = defaultPortName
End If
Return newPortName
End Function
Public Shared Function SetPortBaudRate(ByVal defaultPortBaudRate As Integer) As Integer
Dim newBaudRate As String
Console.Write("Baud Rate({0}): ", defaultPortBaudRate)
newBaudRate = Console.ReadLine()
If newBaudRate = "" Then
newBaudRate = defaultPortBaudRate.ToString()
End If
'Dim start, finish As Double
'start = Microsoft.VisualBasic.DateAndTime.Timer
'' Set end time for 5-second duration.
'finish = start + 5.0
'Do While Microsoft.VisualBasic.DateAndTime.Timer < finish
' ' Do other processing while waiting for 5 seconds to elapse.
'Loop
Return Integer.Parse(newBaudRate)
End Function
End Class
End Module
#Region "test"
'If TimeOfDay >= #11:59:55 PM# Then
' MsgBox("The current time is within 5 seconds of midnight" & _
' vbCrLf & "The timer returns to 0.0 at midnight")
' Return
'End If
'Dim start, finish, totalTime As Double
' If (MsgBox("Press Yes to pause for 5 seconds", MsgBoxStyle.YesNo)) _
' = MsgBoxResult.Yes Then
' start = Microsoft.VisualBasic.DateAndTime.Timer
'' Set end time for 5-second duration.
' finish = start + 5.0
' Do While Microsoft.VisualBasic.DateAndTime.Timer < finish
'' Do other processing while waiting for 5 seconds to elapse.
' Loop
' totalTime = Microsoft.VisualBasic.DateAndTime.Timer - start
' MsgBox("Paused for " & totalTime & " seconds")
' End If
' End Sub
#End Region
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -