📄 sourceswitch.vb
字号:
Public Class SourceSwitch
'''信号源自动切换功能
'''完成步骤如下:
'''1、先找到切换器的输出信号端
'''2、判断输出端有无信号输出
'''3、如有,则不切换;如无,则分别查看其他路是否有信号。
'''4、找准有信号的端口,往发送命令表里插入一条切换信号源的指令,来完成自动切换。
'''VB.net(中怎样定位一条记录)
'''ds.tables(0).rows.find()或 ds.tables(0).select
Public Shared outPort As Integer '''对应信号源切换器的输出端口
Public Shared inPort(3) As Integer '''0-信号源切换器卫星信号输入端的状态
'Public Shared inPort2 As Integer '''1-信号源切换器微波信号输入端的状态
'Public Shared inPort3 As Integer '''2-信号源切换器光缆信号输入端的状态
'Public Shared inPort4 As Double '''3-预留
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Shared sourceEquName As String
Public Shared Sub getOut(ByVal equNum As Integer)
Dim QueryString As String
Dim ds As DataSet
Dim ResNum As Integer
Dim i As Integer
QueryString = "select * from sourceTotrans where sourceNum=" & Trim(equNum)
ds = search.query(QueryString)
If ds.Tables(0).Rows.Count > 0 Then
outPort = ds.Tables(0).Rows(0).Item("outPort")
End If
End Sub
Public Shared Sub getIn(ByVal equNum As Integer)
Dim QueryString As String
Dim ds As DataSet
Dim ResNum As Integer
Dim i As Integer
QueryString = "select * from sourceToPort where equNum=" & Trim(equNum) + " order by id desc"
ds = search.query(QueryString)
If ds.Tables(0).Rows.Count > 0 Then
For i = 0 To 3
inPort(i) = ds.Tables(0).Rows(0).Item("port" & Trim(CStr(i + 1)))
Next
End If
End Sub
Public Shared Function isnotSource() As Boolean
If inPort(outPort) = 0 Then '''无信号输出
isnotSource = True
Else
isnotSource = False
End If
If isnotSource = False Then
Sleep(5000)
If inPort(outPort) = 0 Then
isnotSource = True
Else
isnotSource = False
End If
End If
End Function
Public Shared Sub sendSourceCmd(ByVal equNum As Integer)
Dim strsql As String
Dim i As Integer
Dim switchPort As Integer
Dim strTemp As String
If isnotSource() = True Then
For i = 0 To 3
If inPort(i) = 1 Then
switchPort = i + 1
Exit For
End If
Next
If switchPort > 0 Then
'''发送切换指令
strsql = "insert into controlCmd values('" & Now & "','通讯平台'," & equNum & ",13,'" & CStr(switchPort) & "','00',0,0)"
If search.con.State = ConnectionState.Open Then
search.con.Close()
End If
search.insert(strsql)
Sleep(1000)
'''修改信号输出
strsql = "update sourceTotrans set outPort =" + Trim(switchPort) + " where equNum=" & Trim(equNum)
If search.con.State = ConnectionState.Open Then
search.con.Close()
End If
search.update(strsql)
'''添加操作记录
strTemp = sourceEquName
Select Case outPort
Case 1
Select Case switchPort
Case 1
strTemp += "自动从卫星切到卫星"
Case 2
strTemp += "自动从卫星切到微波"
Case 3
strTemp += "自动从卫星切到光纤"
End Select
Case 2
Select Case switchPort
Case 1
strTemp += "自动从微波切到卫星"
Case 2
strTemp += "自动从微波切到微波"
Case 3
strTemp += "自动从微波切到光纤"
End Select
Case 3
Select Case switchPort
Case 1
strTemp += "自动从光纤切到卫星"
Case 2
strTemp += "自动从光纤切到微波"
Case 3
strTemp += "自动从光纤切到光纤"
End Select
End Select
strsql = "insert into systemLog values('0',2,'" & strTemp & "'," & Now & ",0)"
If search.con.State = ConnectionState.Open Then
search.con.Close()
End If
search.insert(strsql)
End If
End If
End Sub
Public Shared Sub autoSourceSwitch(ByVal equNum As Integer)
getOut(equNum)
getIn(equNum)
sendSourceCmd(equNum)
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -