www.pudn.com > tv_song > COMM.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