?? 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 + -