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

📄 comm.frm

📁 广播级有线电视台MTV互动点播系统
💻 FRM
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Begin VB.Form sCOMx 
   BorderStyle     =   0  'None
   Caption         =   "通信窗体"
   ClientHeight    =   120
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   150
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   120
   ScaleWidth      =   150
   ShowInTaskbar   =   0   'False
   StartUpPosition =   3  '窗口缺省
   Visible         =   0   'False
   Begin VB.Timer VoiceTimer 
      Interval        =   100
      Left            =   1080
      Top             =   0
   End
   Begin VB.Timer ComTimer 
      Interval        =   100
      Left            =   600
      Top             =   0
   End
   Begin MSCommLib.MSComm CoMm 
      Left            =   600
      Top             =   120
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   -1  'True
   End
   Begin MSWinsockLib.Winsock sSock 
      Left            =   1560
      Top             =   0
      _ExtentX        =   741
      _ExtentY        =   741
      _Version        =   393216
   End
End
Attribute VB_Name = "sCOMx"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub CoMm_OnComm()
   Select Case CoMm.CommEvent
      Case 1
      Case 2
      Case 3
      Case 4
      Case 5
         ComTimer.Enabled = True
      Case 6
   End Select
End Sub

Private Sub Form_Load()
On Error Resume Next
'===Comm方式====
   ComTimer.Enabled = False
   CoMm.CommPort = sCOM
   CoMm.Settings = "2400,N,8,1"
   CoMm.InputMode = comInputModeText
   CoMm.InputLen = 0
   CoMm.RTSEnable = False
   CoMm.RThreshold = 0
   CoMm.PortOpen = True
   CoMm.Output = "ATQ0V1W0S0=1&C1&D2" + Chr$(13)
'===Winsock方式====
   sSock.LocalPort = 2000
   sSock.Listen
End Sub

'===Comm方式====
Private Sub ComTimer_Timer()
On Error Resume Next
   Dim aAa$, Tt, Ss$, ZfyBH, Zfy
   aAa$ = CoMm.Input
   tAJZ = " "
   Tt = InStr(aAa$, Chr$(13))
   If Tt = 0 Then Exit Sub
   Ss$ = left(aAa$, 3)
   If BuSy = 1 And Mid(aAa$, 3, 10) = "NO CARRIER" Then TV_Exit
   Select Case Ss$
      Case "AJZ"
          If Tt = 5 Then tAJZ = Mid(aAa$, 4, 1)
          Ajz = UCase(IIf(InStr("0123456789*#CSH", tAJZ) > 0, tAJZ, " "))
          '====用户是否挂机========
          If BuSy = 1 And ZjBZ = 1 And Ajz = "S" Then TV_Exit
          If Ajz = "H" Then
              If ZjBZ = 0 Then
                  SendCMD "STOP"
                ElseIf BuSy = 0 Then
                  SendCMD "PAUSE"
                ElseIf BuSy = 1 Then
                  SendCMD "BUSY"
              End If
          End If
      Case "ZFY"
          If Tt > 9 Then
              ZfyBH = Mid(aAa$, 4, 4)
              Zfy = Mid(aAa$, 8, Tt - 8)
              If UCase(ZfyBH) = "AAAA" Then
                   YfZm = YfZm + "   " + Zfy
                 ElseIf UCase(ZfyBH) = "BBBB" Then
                   YfZm = Zfy
                 Else
                   DB.Execute "insert into zfy values ('" + ZfyBH + "','" + Zfy + "');"
              End If
          End If
   End Select
End Sub

'===电话语音卡定时检测按键====
Private Sub VoiceTimer_Timer()
On Error Resume Next
  Dim Teling As String
  Dim TelLong As Long
  Dim IiIi
  Dim SigCount As Long, SigLen As Long, SigType As Long
  Teling = String(24, 0)
  If ChannelNum = 0 Then Exit Sub
  If ZjBZ = 0 Then
     If TV_RingDetect(sCOM) > 0 Then
        For IiIi = 0 To 10000: DoEvents: Next IiIi
        TelLong = TV_ReceiveCallingID(sCOM, Teling, 24)
        TV_OffHookCtrl (sCOM)
        TV_StartPlayFile CInt(sCOM), App.Path + "\welcome", 1, LONG_MAX
        TV_StartTimer sCOM, 30000
        For IiIi = 0 To 10000: DoEvents: Next IiIi
        Ajz = "C"
        ZjBZ = 1
     End If
   Else
     SigType = TV_CheckSignal(sCOM, SigCount, SigLen)
     If (SigType = SIG_BUSY1 Or SigType = SIG_BUSY2) And SigCount >= 3 Then
          TV_Exit
        ElseIf Ajz = " " Then
          Ajz = Chr(CInt(TV_GetDTMFChar(sCOM)))
     End If
  End If
End Sub
'======
Private Sub sSock_Close()
On Error Resume Next
   sSock.Close
'===Winsock方式====
   sSock.LocalPort = 2000
   sSock.Listen
End Sub

Private Sub sSock_Connect()
   TVsong.TVsongTimer.Enabled = True
End Sub

Private Sub sSock_ConnectionRequest(ByVal requestID As Long)
On Error Resume Next
   If sSock.State <> 0 Then sSock.Close
   sSock.Accept requestID
   If ZjBZ = 0 Then
           sSock.SendData "STOP"
           TVsong.TVsongTimer.Enabled = True
       ElseIf BuSy = 0 Then
           sSock.SendData "PAUSE"
       ElseIf BuSy = 1 Then
           sSock.SendData "BUSY"
           TVsong.TVsongTimer.Enabled = True
   End If
End Sub

Private Sub sSock_DataArrival(ByVal bytesTotal As Long)
Dim aAa$, Tt, Ss$, ZfyBH, Zfy
   sSock.GetData aAa$, vbString
   Ss$ = left(aAa$, 3)
   Select Case Ss$
      Case "AJZ"
          tAJZ = Mid(aAa$, 4, 1)
          Ajz = UCase(IIf(InStr("0123456789*#CSH", tAJZ) > 0, tAJZ, " "))
          'If AJZ = "C" Then TVsong.TVsongTimer.Enabled = True
          '====用户是否挂机========
          If BuSy = 1 And ZjBZ = 1 And Ajz = "S" Then TV_Exit
          If Ajz = "H" Then
              If ZjBZ = 0 Then
                  sSock.SendData "STOP"
                ElseIf BuSy = 0 Then
                  sSock.SendData "PAUSE"
                ElseIf BuSy = 1 Then
                  sSock.SendData "BUSY"
              End If
              TVsong.TVsongTimer.Enabled = True
          End If
      Case "ZFY"
          ZfyBH = Mid(aAa$, 4, 4)
          Zfy = Mid(aAa$, 8)
          If UCase(ZfyBH) = "AAAA" Then
               YfZm = YfZm + "   " + Zfy
             ElseIf UCase(ZfyBH) = "BBBB" Then
               YfZm = Zfy
             Else
                DB.Execute "insert into zfy values ('" + ZfyBH + "','" + Zfy + "');"
          End If
   End Select
End Sub

⌨️ 快捷键说明

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