Foros del Web » Programación para mayores de 30 ;) » .NET »

Leer puerto Serie

Estas en el tema de Leer puerto Serie en el foro de .NET en Foros del Web. Hola Foreros. Necesito hacer una lectura del puerto serie (COM1) en el que tengo un lector de tarjetas. Tras investigar por ahí he agregado a ...
  #1 (permalink)  
Antiguo 12/05/2005, 01:38
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Leer puerto Serie

Hola Foreros.

Necesito hacer una lectura del puerto serie (COM1) en el que tengo un lector de tarjetas. Tras investigar por ahí he agregado a mi proyecto el ActiveX llamado MSCOMM32.OCX
Para hacer una prueba he hecho el siguiente código (para empezar):

Código:
Dim oCom As New MSCommLib.MSComm
oCom.CommPort = 1
oCom.PortOpen = True
Cuando ejecuto me sale el siguiente problema: No hay licencia de uso de la clase

¿Tengo que registrar este ActiveX? ¿Hay otra forma gratuita de leer el puerto serie en .NET?

Gracias y un saludo.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #2 (permalink)  
Antiguo 16/05/2005, 02:43
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 19 años, 10 meses
Puntos: 1
Bueno... ya veo que este es un tema que llama mucho la atención...
Como ya he conseguido leer del puerto serie, os formularé una segunda pregunta:

-He hecho una pequeña aplicación en VB.NET (con la que leo el puerto serie). La cosa es que quiero utilizar este programa como un ACTIVEX ¿Cómo puedo hacer este paso? ¿Hay alguien que tenga un ejemplo o que haya hecho algo por el estilo?

Espero que esta vez tenga alguna contestación.
Gracias!!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #3 (permalink)  
Antiguo 02/06/2005, 08:34
 
Fecha de Ingreso: septiembre-2004
Mensajes: 171
Antigüedad: 19 años, 7 meses
Puntos: 0
yo estoy aciendo una aplicacion para leer desde el puerto serie también y aunque logro abrir el puerto no logro leer, yo uso apis pero si pues mandarme tu ejemplo para ver si de esa forma puedo lograr leer del puerto t lo agradeceria muxo, si pues mandamelo al correo [email protected]
  #4 (permalink)  
Antiguo 18/07/2005, 08:00
Avatar de jose_d  
Fecha de Ingreso: enero-2003
Ubicación: Cali
Mensajes: 220
Antigüedad: 21 años, 3 meses
Puntos: 4
Hola como estan, estoy haciendo lo mismo tengo una maquina que me manda datos por el puerto com1 del pc segun veo uds tienen informacion de como hacerlo, sera que me pueden dar una mano.
se los agradeceria mucho.
__________________
El leer te da el poder de mejorar
  #5 (permalink)  
Antiguo 29/07/2005, 10:16
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 18 años, 8 meses
Puntos: 0
hola Phoncadiz!!
He visto que tienes un programa para leer del puerto serie me lo podrias pasar? y no sabras por casualidad como escribir datos en el puerto paralelo? muchas gracias y si se me ocurre como ayudarte o encuentro algo por internet te lo paso ok?

mi dirección de correo es : [email protected]
  #6 (permalink)  
Antiguo 31/07/2005, 23:58
 
Fecha de Ingreso: julio-2005
Mensajes: 103
Antigüedad: 18 años, 8 meses
Puntos: 0
Hola Phoncadiz, podrías poner el código aquí para que pueda echarle un vistazo?? Quiero hacer algo parecido y no tengo ni idea de por donde empezar!!
Gracias por adelantado
  #7 (permalink)  
Antiguo 09/08/2005, 02:14
 
Fecha de Ingreso: agosto-2005
Mensajes: 1
Antigüedad: 18 años, 8 meses
Puntos: 0
Hola Phoncadiz,
Estoy intentando leer un puerto serie en Visual Basic .net y no puedo.
¿podrias ayudarme?
Si puedes mandame tu programa para poder basarme en algo.
Gracias.
Mi correo es [email protected].
  #8 (permalink)  
Antiguo 09/08/2005, 02:19
 
Fecha de Ingreso: julio-2005
Mensajes: 103
Antigüedad: 18 años, 8 meses
Puntos: 0
Hola Phoncadiz, me podrías mandar a mí también tu programa?? Tengo que leer el puerto serie y no sé por donde empezar, me sería muy útil tu programa para orientarme un poco.

Muchas gracias.

[email protected]
  #9 (permalink)  
Antiguo 02/09/2005, 11:06
 
Fecha de Ingreso: septiembre-2005
Mensajes: 3
Antigüedad: 18 años, 7 meses
Puntos: 0
+Puerto serie

Hola buenas, no se si llegará demasiado tarde, pero igual puedo ayudarte.

Estoy cursando un curso de .Net y podría preguntarle a mi profesora, si me mandas el proyecto a mi cuenta le echamos un vistazo, y aprobechando aprendo un poquillo +. Porque, evidentemente, ahora no se hacerlo.

mi cuenta es: [email protected]

Por si te has olvidado después de tanto tiempo esto es una respuesta a:

-He hecho una pequeña aplicación en VB.NET (con la que leo el puerto serie). La cosa es que quiero utilizar este programa como un ACTIVEX ¿Cómo puedo hacer este paso? ¿Hay alguien que tenga un ejemplo o que haya hecho algo por el estilo?

Espero que esta vez tenga alguna contestación.
Gracias!!! [/QUOTE]
  #10 (permalink)  
Antiguo 02/09/2005, 11:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 722
Antigüedad: 18 años, 8 meses
Puntos: 2
holam porfavor Phoncadiz no se Si puedes mandame tu programa para poder basarme en algo ya que estoy siguiendo siguiendo un curso de .net y podria indagar con los que mas saben. grasias
[email protected]

Gracias
  #11 (permalink)  
Antiguo 11/10/2005, 07:24
 
Fecha de Ingreso: octubre-2005
Mensajes: 2
Antigüedad: 18 años, 6 meses
Puntos: 0
Rutinas puerto serial

Este es un ejemplo de como capturar los eventos en visual basic con el MSCOM.
Private Sub MSCommARB_OnComm()
Dim IntEvent As Integer
IntEvent = MDIarb.MSCommArb.CommEvent
Select Case IntEvent
Case comEvReceive ' Recive RThreshold # Número de caracteres.

While MDIarb.MSCommArb.InBufferCount ' Toma todos los caracteres del buffer
StrInput = MDIarb.MSCommArb.Input ' Lee .InputLen Numero de caracteres

'El siguiente codigo Determina cuando empieza una cadena de caracteres

Select Case StrInput
Case "+" 'caracter de inicio
StrIdentificador = ""
Case Chr$(10) 'Ignora el caracter lf
' Line Feed Ignorado
Case Chr$(129)

StrIdentificador = ""
Case Chr$(13) 'el CR indica final de la trama
IdentifierEvent (StrIdentificador) ' procesa la trama recibida
MDIarb.MSCommArb.InBufferCount = 0
Case Else
StrIdentificador = StrIdentificador + StrInput 'Save everything between the + and CR
End Select
Wend
'Los ssiguientes Eventos son ignorados, en operación normal no son muy criticos
Case comBreak ' A Break was received.
Case comCDTO ' CD (RLSD) Timeout.
Case comCTSTO ' CTS Timeout.
Case comDSRTO ' DSR Timeout.
Case comFrame ' Framing Error
Case comOverrun ' Data Lost.
Case comRxOver ' Receive buffer overflow.
Case comRxParity ' Parity Error.
Case comTxFull ' Transmit buffer full.
Case comEvCD ' Change in the CD line.
Case comEvCTS ' Change in the CTS line.
Case comEvDSR ' Change in the DSR line.
Case comEvRing ' Change in the Ring Indicator.
Case comEvSend ' chars in send buffer
'ignore these
End Select
End Sub


Private Sub IdentifierEvent(StrEvent As String)
'Llamada desde MSCommARB (MSCommARB control) OnComm Event
Dim ByteStado As String
Dim ByteChequeo As Byte
' si encuentra el caracter de una sentencia escape no procesa la informacion recibida
DirecEquipo = Mid(StrEvent, 2, 3) 'Lee el primer caracter de la cadena
NumeroEquipo = CInt(DirecEquipo)
Comando = Mid(StrEvent, 5, 1)
NumComando = CInt(Comando)
Modulo = Mid(StrEvent, 6, 1)

On Error Resume Next
NumModulo = CInt(Modulo)
If Err Then
MsgBox Modulo
End If
WordComando = Chr(129) & Chr(NumeroEquipo) & Chr(NumComando) & Chr(NumModulo) & Chr(ChkDato) & Chr(255)
If CompararComando(WordComando) Then
Select Case NumComando
Case 0 'Respuesta de la Interfaz al abrir canal.
StrError = Mid$(StrEvent, 8, 2)
If StrError <> "ER" Then
CanalEstado = True
Toolbar1.Buttons(8).Enabled = False
Toolbar1.Buttons(9).Enabled = True
If HypertInstancia = False Then
EsperaTerminaPrograma (PathHyperT + "\" + NombreArchivoHT + PathHyperT + "\" + NombreArchivoHTBayly)
Else
MDIarb.MSCommArb.PortOpen = False
End If
Else

End If
Case 1 'Respuesta de la Interfaz al cerrar canal.
Explorador.PicMod(ModSelec).BorderStyle = 0
StBarArb.Panels(3).Text = StBarArb.Panels(3).Key
Explorador.PicMux.Enabled = True
Toolbar1.Buttons(9).Enabled = False
Toolbar1.Buttons(10).Value = 0
Toolbar1.Buttons(10).Enabled = False
CanalEstado = False
Explorador.TmrLoopARB.Enabled = False
Case 3
'El siguiente bucle determina si un multiplexor posee eventos o no para ser enviados
If NumeroEquipo = EquipoNum Then
Alarma = Mid$(StrEvent, 8, 1)
If Alarma = Chr$(255) Then
Explorador.ShapeAlarmas(0).FillColor = &HFF&

Else
Explorador.ShapeAlarmas(0).FillColor = &HFFFFFF
End If
Alarma1 = Mid$(StrEvent, 9, 1)
If Alarma1 = Chr$(255) Then
Explorador.ShapeAlarmas(1).FillColor = &HFF&
Else
Explorador.ShapeAlarmas(1).FillColor = &HFFFFFF
End If
End If

Case 4
DatoFecha = LeerFecha(StrEvent)
FechaOk = FechaOk & Chr(Mid$(StrEvent, 8, 1))
FechaOk = FechaOk & Chr(Mid$(StrEvent, 9, 1))
If FechaOk = "OK" Then
MsgBox ("Fecha Configurada ")
Else
MsgBox ("Fecha Configurada ")
End If
Explorador.TmrLoopARB.Enabled = True
Case 5
StBarArb.Panels(5).Text = StBarArb.Panels(5).Key
'ChequeoSuma = 0
FechaOk = Mid$(StrEvent, 8, 12)
For I = 1 To 6 Step 2
fechac = fechac & Mid$(FechaOk, I, 2) & "/"
Next
For I = 7 To 12 Step 2
Horac = Horac & Mid$(FechaOk, I, 2) & ":"
Next
fechac = Left(fechac, 8)
Horac = Left(Horac, 8)
FechaRemota = fechac
HoraRemota = Horac
StBarArb.Panels(4).Text = StBarArb.Panels(4).Key & " " & FechaRemota & " " & HoraRemota
'DatoFecha = LeerFecha(StrEvent)
'For I = 1 To 6
'ChequeoSuma = ChequeoSuma + FechaRecibida(I)
'Next
'ChequeoSuma = ChequeoSuma And &HFF
'ByteChequeo = ChequeoSuma
'ByteChequeo = Not ByteChequeo
'ByteChequeo = ByteChequeo + 1
'If ByteChequeo = FechaRecibida(7) Then
'ChecksumOK = ChecksumOK + 1
'Else
'ErrChecksum = ErrChecksum + 1
'End If

Case 9
MsgBox ("Reset OK "), vbInformation
End Select
Else
MsgBox ("No se Recibio una Respuesta Valida "), vbCritical
End If
End Sub

No miren detalladamente el codigo solo lo general.

Algunas varibles se declaran en otro modulo.

Espero les de alguna idea de como utilizar el MSCOM.

Buen día.

Luis E. Díaz.
  #12 (permalink)  
Antiguo 11/10/2005, 15:36
 
Fecha de Ingreso: octubre-2004
Ubicación: Guatemala
Mensajes: 83
Antigüedad: 19 años, 6 meses
Puntos: 0
Pues yo estaba buscando algo para manejar el puerto serial y encontre esta pagina, espero les sirva http://dotnetpuebla.com/portal/Publi...odigo/330.aspx
__________________
Definitivamente la vida no es como en las películas...
C'est la vie
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:57.