⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sourceswitch.vb

📁 广西百色247台电视发射机监控源代码.已经过实践
💻 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 + -