• Publicidad

Cgi Perl Com4

Todo lo relacionado con el desarrollo Web con Perl: desde CGI hasta Mojolicious

Cgi Perl Com4

Notapor alphabravo » 2008-04-09 00:51 @077

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

Publicidad

Notapor explorer » 2008-04-09 12:52 @578

JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor alphabravo » 2008-04-09 23:38 @026

Hola. Mira, tengo este que es en Visual Basic. Me podrían ayudar a pasarlo a Perl? Usa el puerto com4.

Sintáxis: [ Descargar ] [ Ocultar ]
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
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
alphabravo
Perlero nuevo
Perlero nuevo
 
Mensajes: 19
Registrado: 2008-04-06 16:44 @739


Volver a Web

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados