Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Web » Cgi Perl Com4 Responder al tema
Nuevo tema


Página 1 de 1  [ 3 mensajes ] 
 
Nota 2008-04-09 00:51 @077

Perlero Nuevo
Registrado: 2008-04-06 16:44 @739
Mensajes: 19
Cgi Perl Com4
Hola. Una pregunta: tengo un programa en Visual que manipula el puerto com4. ¿En Perl también se puede hacer? Gracias.


Nota 2008-04-09 12:52 @578
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10216
Sí...

Win32::SerialPort.

_________________
JF^D Perl programming


Nota 2008-04-09 23:38 @026

Perlero Nuevo
Registrado: 2008-04-06 16:44 @739
Mensajes: 19
Hola. Mira, tengo este que es en Visual Basic. Me podrían ayudar a pasarlo a Perl? Usa el puerto com4.

Syntax: [ Download ] [ Hide ]
Using vb Syntax Highlighting
Private Sub Command1_Click()
   ' Búfer para almacenar la cadena de entrada
  Dim Instring As String
   Dim numero
   ' Usar COM1.
  'MSComm1.CommPort = 5
  ' 9600 baudios, sin paridad, 8 bits de datos y 1
   ' bit de parada.
  MSComm1.Settings = "115200,N,8,1"
   ' Indicar al control que lea todo el búfer al usar
   ' Input.
  MSComm1.InputLen = 0
   
   
   'MSComm1.Output = "AT+CGCLASS=?" & Chr$(13)
     'MSComm1.Output = "ATLEA=?" & Chr$(13)
 
   '--------------------------llamar numero-----------------
  'MSComm1.Output = "ATD000000000;" & Chr$(13) ' LLAMADA DE VOZ
  numero = Text2.Text
   numero = "ATD" & numero & ";"
   MSComm1.Output = numero & Chr$(13) ' LLAMADA DE VOZ




   Do
      DoEvents
   Buffer$ = Buffer$ & MSComm1.Input
Text1.Text = Buffer$
   Loop Until InStr(Buffer$, "OK" & vbCrLf)
         List1.AddItem MSComm1.Input & "  " & Buffer$ & "  " & MSComm1.Input
List1.AddItem Buffer$

   ' Leer los datos de respuesta de aceptación en el
  ' puerto serie.
  ' Cerrar el puerto serie.
  'MSComm1.PortOpen = False

End Sub

Private Sub descolgar_Click()
MSComm1.Output = "ata" & vbCr
End Sub

Private Sub Form_Load()
   MSComm1.CommPort = 4
   ' 9600 baudios, sin paridad, 8 bits de datos y 1
   ' bit de parada.
  MSComm1.Settings = "115200,N,8,1"
   ' Indicar al control que lea todo el búfer al usar
   ' Input.
  MSComm1.InputLen = 1024
   ' Abrir el puerto.
  MSComm1.PortOpen = True

MSComm1.Output = "ATZ" & vbCr  'reset del modem ¡NO PASA NADA POR ESTA ACCION!
'MSComm1.Output = "ATE1" & vbCr
'MSComm1.Output = "ATM2" & vbCr
'MSComm1.Output = "ATF0" & vbCr
'MSComm1.Output = "ATL3" & vbCr
  Do
      DoEvents
   Buffer$ = Buffer$ & MSComm1.Input
Text1.Text = Buffer$
   Loop Until InStr(Buffer$, "OK" & vbCrLf)
         List1.AddItem MSComm1.Input & "  " & Buffer$ & "  " & MSComm1.Input

'MSComm1.Output = "AT#CID=1" & Chr$(13) ' O TAMBIEN SEGUN EL MODEM "AT#CID=1"  "AT+VCID=1"
 ' MSComm1.PortOpen = False

End Sub

Private Sub SMS_Click()
Dim PhoneNum, Message, i

MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 1024
MSComm1.RThreshold = 1
MSComm1.RThreshold = 1

PhoneNum = Text2.Text 'numero al que enviamos
'CENTRO DEL SMS , ES EL Nº AL QUE SE ENVIA EL SMS (DE NUESTRA COMPAÑIA DE TF)
PhoneNum1 = "+5294100001410" ' telcel mexico
'PhoneNum1 = "+525512235110" ' movistar mexico
'PhoneNum1 = "+5294100001410" ' orange

 Message = Text3.Text


MSComm1.Output = "AT+CMGF=1" & Chr$(13) ' MODO TEXTO
MSComm1.Output = "AT+CSCA=" & Chr$(34) & PhoneNum1 & Chr$(34) & Chr$(13) 'CENTRO DE SMS
MSComm1.Output = "AT+CMGS=" & Chr$(34) & PhoneNum & Chr$(34) & Chr$(13) 'NUERO DE DESTINO
MSComm1.Output = Message & Chr$(26) & Chr$(13) 'TEXTO DEL SMS
 
   'ESPERANDO RESPUESTA
  Do
      DoEvents
   Buffer$ = Buffer$ & MSComm1.Input
' List2.AddItem Buffer$
  Loop Until InStr(Buffer$, "OK" & vbCrLf)
      If MSComm1.Input = "" Then
   Else
            List1.AddItem MSComm1.Input & "  " & Buffer$ & "  " & MSComm1.Input

   End If



End Sub

Private Sub Text2_Change()

End Sub

Private Sub Timer1_Timer()
If MSComm1.PortOpen = True Then
   If MSComm1.Input = "" Then
   Else
 List2.AddItem Buffer$
  End If
End If

End Sub
Private Sub MSComm1_OnComm()
On Error GoTo Err_Rutina_Error
Dim conta As Long
    Dim EVMsg$
    Dim ERMsg$
            Label1.Caption = MSComm1.CommEvent

    Select Case MSComm1.CommEvent

        Case comEvReceive
            Dim Buffer As Variant
        Case comEvSend
        Case comEvCTS
            EVMsg$ = "Detectado cambio en CTS"
        Case comEvDSR
            EVMsg$ = "Detectado cambio en DSR"
        Case comEvCD
            EVMsg$ = "Detectado cambio en CD"
        Case comEvRing
           
           
           
        Case comEvEOF
            EVMsg$ = "Detectado el final del archivo"
        Case comBreak
            ERMsg$ = "Parada recibida"
        Case comCDTO
            ERMsg$ = "Sobrepasado el tiempo de espera de detección de portadora"
        Case comCTSTO
            ERMsg$ = "Soprepasado el tiempo de espera de CTS"
        Case comDCB
            ERMsg$ = "Error recibiendo DCB"
        Case comDSRTO
            ERMsg$ = "Sobrepasado el tiempo de espera de DSR"
        Case comFrame
            ERMsg$ = "Error de marco"
        Case comOverrun
            ERMsg$ = "Error de sobrecarga"
        Case comRxOver
            ERMsg$ = "Desbordamiento en el búfer de recepción"
        Case comRxParity
            ERMsg$ = "Error de paridad"
        Case comTxFull
            ERMsg$ = "Búfer de transmisión lleno"
        Case Else
            ERMsg$ = "Error o evento desconocido"
    End Select
Exit_Rutina_Error:
    Exit Sub
Err_Rutina_Error:
    MsgBox Err.Description
    Resume Exit_Rutina_Error
End Sub


Responder al tema  [ 3 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO