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

📄 frmmain.frm

📁 多达5路DTu的信息接收客户端
💻 FRM
📖 第 1 页 / 共 3 页
字号:
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   5
         Left            =   1800
         TabIndex        =   26
         Top             =   1560
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   4
         Left            =   1800
         TabIndex        =   25
         Top             =   1320
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   3
         Left            =   1800
         TabIndex        =   24
         Top             =   1080
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   2
         Left            =   1800
         TabIndex        =   23
         Top             =   840
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   1
         Left            =   1800
         TabIndex        =   22
         Top             =   600
         Width           =   3375
      End
      Begin VB.Label LabTongDao 
         Appearance      =   0  'Flat
         BackColor       =   &H80000005&
         BorderStyle     =   1  'Fixed Single
         ForeColor       =   &H80000008&
         Height          =   255
         Index           =   0
         Left            =   1800
         TabIndex        =   21
         Top             =   360
         Width           =   3375
      End
      Begin VB.Label Label1 
         Caption         =   "7通道"
         Height          =   255
         Index           =   7
         Left            =   1200
         TabIndex        =   20
         Top             =   2080
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "6通道"
         Height          =   255
         Index           =   6
         Left            =   1200
         TabIndex        =   19
         Top             =   1820
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "5通道"
         Height          =   255
         Index           =   5
         Left            =   1200
         TabIndex        =   18
         Top             =   1580
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "4通道"
         Height          =   255
         Index           =   4
         Left            =   1200
         TabIndex        =   17
         Top             =   1340
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "3通道"
         Height          =   255
         Index           =   3
         Left            =   1200
         TabIndex        =   16
         Top             =   1100
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "2通道"
         Height          =   255
         Index           =   2
         Left            =   1200
         TabIndex        =   15
         Top             =   860
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "1通道"
         Height          =   255
         Index           =   1
         Left            =   1200
         TabIndex        =   14
         Top             =   620
         Width           =   615
      End
      Begin VB.Label Label1 
         Caption         =   "0通道"
         Height          =   255
         Index           =   0
         Left            =   1200
         TabIndex        =   13
         Top             =   380
         Width           =   615
      End
   End
   Begin VB.OptionButton OptDian 
      Height          =   735
      Index           =   5
      Left            =   4440
      Style           =   1  'Graphical
      TabIndex        =   3
      Tag             =   "五号测点"
      Top             =   120
      Width           =   1095
   End
   Begin VB.OptionButton OptDian 
      Height          =   735
      Index           =   4
      Left            =   3360
      Style           =   1  'Graphical
      TabIndex        =   2
      Tag             =   "四号测点"
      Top             =   120
      Width           =   1095
   End
   Begin VB.OptionButton OptDian 
      Height          =   735
      Index           =   3
      Left            =   2280
      Style           =   1  'Graphical
      TabIndex        =   1
      Tag             =   "三号测点"
      Top             =   120
      Width           =   1095
   End
   Begin VB.OptionButton OptDian 
      Height          =   735
      Index           =   1
      Left            =   120
      Style           =   1  'Graphical
      TabIndex        =   0
      Tag             =   "一号测点"
      Top             =   120
      Value           =   -1  'True
      Width           =   1095
   End
   Begin VB.Label LabDian 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BorderStyle     =   1  'Fixed Single
      Caption         =   "等待连接中未取得相关信息 "
      ForeColor       =   &H80000008&
      Height          =   255
      Left            =   120
      TabIndex        =   4
      Top             =   960
      Width           =   5415
   End
End
Attribute VB_Name = "FrmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'========================================================
'Copyright (c) 2008
'
'文件名称:FrmMain.Frm
'摘    要:实时从下接DTU处获取数,并通过DDE传送给 组态软件
'
'当前版本:1.0
'作    者:畅彦峰
'完成日期:2008年3月4日
'========================================================

Dim iDtu(1 To 5) As Byte '1-5号Dtu所对应的动态winsock控件编号
Dim iWinsock(1 To 5) As Byte '1-5号winsock控件所对应的动态DTU编号
Dim LastTime(1 To 5) As Date '最后一次收到消息的时间
Dim LastTimeValue(1 To 5) As Date '第一次相同数据收到的时间
Dim sReport(1 To 5, 0 To 6, 0 To 9) As String '定义1-5号DTU返回的详细数据,分模块与通道
Dim isReturn(1 To 5) As Boolean '定义发送命令后是否接收到数据
Dim haoma(1 To 5, 1 To 2) As Integer '定义当前 模块 以及 通道编号
Dim dTimeClose As Integer '延时断线所用

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
On Error GoTo ERR
    Dim ShiftDown, AltDown, CtrlDown
    ShiftDown = (Shift And vbShiftMask) > 0
    AltDown = (Shift And vbAltMask) > 0
    CtrlDown = (Shift And vbCtrlMask) > 0
    
    If CtrlDown Then
        If KeyCode = vbKeyS Then
            FrmSetup.Show
        End If
        If KeyCode = vbKeyC Then
            TimerTest.Enabled = Not TimerTest.Enabled
        End If
    End If
    Exit Sub
ERR:
    Call ShowError(Me.Name, "Form_KeyDown", ERR.Number, ERR.Description)
End Sub

Private Sub Form_Load()
    On Error Resume Next
    
    Dim sCommand As String
    sCommand = Command
    Me.LinkTopic = ""
    
    If Dir("c:\Hide.Dtu") <> "" Then Kill ("c:\Hide.Dtu")
    If Dir("c:\Close.Dtu") <> "" Then Kill ("c:\Hide.Dtu")
    Select Case LCase(sCommand)
        Case "hide"
            Open "c:\Hide.Dtu" For Output As #1
                Print "Hide"
            Close #1
        Case "show"
            Open "c:\Show.Dtu" For Output As #1
                Print "Show"
            Close #1
        Case "close"
            Open "c:\Close.Dtu" For Output As #1
                Print "Close"
            Close #1
        Case Else
            '
    End Select
    
    If App.PrevInstance Then End
    'DDE
    'Me.LinkMode = 1
    Me.LinkTopic = "DDE"
    '
    
    '初始化相关控件 变量
    
    Load FrmMessage
    '临时=====================
    For x = 1 To 7
        Load T11(x): Load T12(x): Load T13(x): Load T14(x): Load T15(x): Load T16(x)
        Load T21(x): Load T22(x): Load T23(x): Load T24(x): Load T25(x): Load T26(x)
        Load T31(x): Load T32(x): Load T33(x): Load T34(x): Load T35(x): Load T36(x)
        Load T41(x): Load T42(x): Load T43(x): Load T44(x): Load T45(x): Load T46(x)
        Load T51(x): Load T52(x): Load T53(x): Load T54(x): Load T55(x): Load T56(x)
    Next
    TimerDDE.Interval = 500
    TimerDDE = True '定时向DDE数据控件 写信息
    '==========================
    
    Call LoadSetup '读取配置文件
    
    W(0).LocalPort = "2008"
    W(0).Listen
    
    WTest.RemoteHost = RemoteUrl
    WTest.RemotePort = "8002"
    TimerTestRemote.Interval = RemoteTime * 1000
    TimerTestRemote = isUseRemote
    
    TimerClose = isUseClose '是否启用延时断线
    
    For x = 1 To 5
        Load W(x)
        OptDian(x).Caption = CStr(x) & "号测点" & vbNewLine & "等待连接"
        OptDian(x).Enabled = False
        
        iDtu(x) = 0
    Next
    
    For x = 1 To 6
        OptMod(x).Caption = OptMod(x).Tag & x
    Next
    
    TimerDTU1.Interval = iTimer * 100: TimerDTU1 = True
    TimerDTU2.Interval = iTimer * 100: TimerDTU2 = True
    TimerDTU3.Interval = iTimer * 100: TimerDTU3 = True
    TimerDTU4.Interval = iTimer * 100: TimerDTU4 = True
    TimerDTU5.Interval = iTimer * 100: TimerDTU5 = True
    
    TimerLost = True
    TimerCommand = isReCommand

    Call ResizeInit(Me)
End Sub

Sub load_DtuSim()
    Dim sTemp As String
    Dim x As Integer
    Open App.Path & "\" & "SimId.Dtu" For Input As #1
        Do While Not EOF(1)
            x = x + 1
            Line Input #1, sTemp
            Dim sSim() As String
            
            sSim() = Split(sTemp, "=", -1)
            sDianId(x, 1) = sSim(0) '序号
            sDianId(x, 2) = sSim(1) 'Sim卡号码
        Loop
    Close #1
End Sub

Function ReDtuId(ByVal s As String) As Integer
On Error GoTo ERR
    Dim x As Integer
    Dim ss As String
    ss = s
    
    For x = 1 To 5
        If s = sDianId(x, 2) Then ReDtuId = CInt(sDianId(x, 1))
    Next
    Exit Function
ERR:
    Call ShowError(Me.Name, "ReDtuId", ERR.Number, ERR.Description)
End Function

Private Sub Form_Resize()
    On Error Resume Next
    
    Call ResizeForm(Me)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    End
End Sub

Private Sub OptDian_Click(Index As Integer)
    On Error GoTo ERR
    
    LabDian.Caption = sReport(Index, 0, 8) & "--" & sReport(Index, 0, 9)
    
    Call OptMod_Click(1)
    
    Exit Sub
ERR:
    Call ShowError(Me.Name, "OptDian_Click", ERR.Number, ERR.Description)
End Sub

Private Sub OptMod_Click(Index As Integer)
    On Error GoTo ERR
    
    For x = 1 To 5
        If OptDian(x).Value = True Then
            For y = 0 To 7
                LabTongDao(y).Caption = sReport(x, Index, y)
            Next
        End If
    Next
    
    Exit Sub
ERR:
    Call ShowError(Me.Name, "OptMod_Click", ERR.Number, ERR.Description)
End Sub


Private Sub TimerClose_Timer()
    On Error Resume Next
    
    Dim x As Integer
    
    dTimeClose = dTimeClose + 1
    If iCloseTime = dTimeClose Then
        dTimeClose = 0
        For x = 1 To 5
            iDtu(x) = 0
            
            W(x).Close
            Unload W(x)
            Load W(x)
            
            OptDian(x).Enabled = False
            OptDian(x).Caption = CStr(5) & "号测点" & vbNewLine & "等待连接"
        Next
    End If
End Sub

Private Sub TimerCommand_Timer()
    On Error GoTo ERR
    
    If Dir("c:\Show.Dtu") <> "" Then
        Kill ("c:\Show.Dtu")
        Me.Show
    End If
    If Dir("c:\Hide.Dtu") <> "" Then
        Kill ("c:\Hide.Dtu")
        Me.Hide
    End If
    If Dir("c:\Close.Dtu") <> "" Then
        Kill ("c:\Close.Dtu")
        End
    End If
    
    Exit Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -