Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2005
G.A.R.S G.A.R.S is offline
Miembro
 
Registrado: may 2005
Posts: 10
Poder: 0
G.A.R.S Va por buen camino
leer desde los puerto seriales.

Buenas.

Necesito poder leer una informacion desde una balanza conectada a mi PC por el puerto Comm1 existe un codigo ejecutado en VB 5 que lo realiza pero tiene algunos errores y quisiera integrarlo en Delphi de una vez.
Ya Ubique varios Link en esta pagina y en torry.net http://www.swissdelphicenter.ch/torr...ode.php?id=841 pero este especificamente que es bastante completo no me compila, me da el siguiente error al compilarlo: "Types of actual and formal var parameters must be identical", especificamente en la function de readtxt que es la que me interesa.

Les agradeceria mucho su ayuda.

Gilberto Ramos.
Responder Con Cita
  #2  
Antiguo 16-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Lightbulb ...prueba este...

Si tienes el protocolo de comunicacion con la balanza, puedes hacerlo con cualquier componente, personalmente uso este:

http://www.torry.net/authorsmore.php?id=2760

Lo uso en D6 y D2005 Win32 y funciona muy bien.

Espero que te sirva la info.



Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita
  #3  
Antiguo 16-05-2005
G.A.R.S G.A.R.S is offline
Miembro
 
Registrado: may 2005
Posts: 10
Poder: 0
G.A.R.S Va por buen camino
Gracias, ya lo baje solo que....

Buenas.

Disculpa el abuso solo que no soy muy experto en la materia, ya baje el componente e instale solo que no se como se utiliza y es un SOS, no me podrias indicar como usarlo, el sistema simplemente debe abrir el puerto, capturar lo que este en ese momento en el puerto comm1 y luego escribirlo en un .txt o directamente en un campo edit.

Gilberto Ramos
Responder Con Cita
  #4  
Antiguo 17-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Talking ...asi puedes empezar...

El componente tiene una buena ayuda, pero en terminos generales debes usarlo asi:

El componente que debes usar es TXComm, lo colocas en la forma donde lo vayas a utilizar, con el inspector de objetos le cambias las propiedades de que necesites con respecto a velocidad, puerto, bit de datos, de parada y paridad de acuerdo a las especificaciones de la balanza. Para abrir el puerto utilizas el metodo OpenDevice. Cuando envias una cadena utilizas SendString, aunque tambien puedes enviar byte con SendByte. para recibir utilizas ReadString o ReadByte de acuerdo a lo que necesites. Y al terminar recuerda utlizar CloseDevice para liberar el puerto.

De todas maneras como te dije la ayuda es muy buena y puede ayudarte de mucho.



Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita
  #5  
Antiguo 17-05-2005
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Question Como Instalar Este Componente En Delphi 2005 ?

Hello Colegas, Una Pregunta , Como Puedo Instalar
Este Componente ( Txcomm ) En Delphi 2005 ?
Ya Baje El Componente Completo Pero No Se Como Instalarlo.

Te Agradezco Tu Ayuda.:d
Responder Con Cita
  #6  
Antiguo 17-05-2005
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Question Como Instalar Este Componente En Delphi 2005 ?

Hello Colegas, Una Pregunta , Como Puedo Instalar
Este Componente ( Txcomm ) En Delphi 2005 ?
Ya Baje El Componente Completo Pero No Se Como Instalarlo.

Te Agradezco Tu Ayuda.:d
Responder Con Cita
  #7  
Antiguo 17-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Lightbulb ...si se puede...

Cita:
Empezado por Pascual Montes
....Como Puedo Instalar
Este Componente ( Txcomm ) En Delphi 2005 ?...
Yo lo uso en D6 y D2005 y funciona perfectamente.

Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita
  #8  
Antiguo 21-05-2005
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
ok, pero di como colega coopera, no seas malo !!!

colega dime como instalar el componente no me dejes en suspenso
el problema es que estoy acostumbrado a delphi 7, y en delphi 2005 no
se como hacer la instalacion, cuales son los pasos a seguir.
anda dime.!!!!


saludos

El que se pregunta como hacerlo empieza su camino a ser maestro en la materia
y el que asume que todo lo sabe sin saberlo empieza su camino a la mitomania
, el que asume que todo lo sabe y en realidad lo sabe , empieza su camino a ya no aprender mas y quedarse en el mismo lugar.
Responder Con Cita
  #9  
Antiguo 21-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Talking ...asi...

Epale Pascual, el componentes no tiene un paquete de instalacion entonces hay que hacerlo manualmente, yo cree un nuevo paquete para Delphi Win32 y le agregué el archivo Reg.pas que esta la carpeta Source, y luego simplemente compilas e instalas. Luego de esto ya lo puedes utilizar en tus aplicaciones Win32 hechas en D2005. Lo he hecho con varios componentes que no traen paquete para instalar en D2005 Win32 y me han funcionado bien.

Espero haberte ayudado.



Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita
  #10  
Antiguo 24-05-2005
G.A.R.S G.A.R.S is offline
Miembro
 
Registrado: may 2005
Posts: 10
Poder: 0
G.A.R.S Va por buen camino
Ayuda.

Disculpen el fastidio solo que de verdad no entiendo muy bien el componente, sera posible que me pases un fracmento de tu codigo, seguramente para ustedes mi requerimiento es sencillo.
  • Abrir el puerto.
  • Leer el puerto.
  • Escribir el resultado a un .txt
  • Cerra el puerto.
este es el codigo de VB 5 que se utilizo, deseo es colocarlo en Delphi.

Private Sub Form_Load()
com1.InBufferCount = 0
com1.CommPort = 1
On Error Resume Next
If Err = 8005 Then
MsgBox "Puerto ya esta en uso", vbCritical, "Balanza"
End If
com1.Settings = "9600,N,8,1"
On Error Resume Next
Select Case Err
Case 8007
MsgBox "Error, Rata de transmisión no válida!", vbCritical, "Balanza"
Case 8008
MsgBox "Error, Tamaño de la información no válido!", vbCritical, "Balanza"
Case 8009
MsgBox "Error, valores por defecto no válidos!", vbCritical, "Balanza"
End Select
'**********************************
If com1.PortOpen = False Then
com1.PortOpen = True
End If
On Error Resume Next
If Err = 8018 Then
MsgBox "Error, El Puerto esta Cerrado", vbCritical, "Balanza"
End If
com1.Output = "AT" + Chr$(13)
Do
DoEvents
Loop Until com1.InBufferCount >= 2
Instring = com1.Input
Label1.Caption = Instring
com1.PortOpen = False
com1.InputLen = 8
com1.InBufferCount = 0
End Sub

Para el amigo que esta consultando como se instala es sencillo, descomprimes el archivo en un carpeta lo copias en en la carpeta de tus librerias seleccionas por component > install component, lo ubicas y compilas.

G.A.R.S.
Responder Con Cita
  #11  
Antiguo 25-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Poder: 21
Jure Va por buen camino
Thumbs up ...a ver esto...

Hola G.A.R.S, veo el codigo VB que nos muestras, primero me parece un poco confuso, voy a darte un fracmento de codigo que utilizo recuperar datos de un caja registradora por el puerto serial:

Código Delphi [-]
    ....
if XComm1.OpenDevice then;  // Abres el puerto
begin    
    if XComm1.SendString(Comando) then // Envio la cadena comando
    begin
      Cadena := '';
      I := 0;
      while (I < 5) do // hago el ciclo para contar 4 despues de ETX
      begin
        XComm1.ReadByte(Caracter) then
        begin
          if (Caracter = 18) then // Este valor me indica que tengo que esperar
          begin                         
            Sleep(400); // Detengo la ejecución del programa por 400 msg
            Application.ProcessMessages;
          end else
          begin
              Cadena := Cadena + Char(Caracter); // hago la cadena 
              
              // ETX es una constante     

              If Caracter = ETX then I := 1; // despues de este caracter 
              if I > 0 then I := I + 1;          // empiezo el contador
          end;
        end;
      end;
    end else
    begin
      Codigo := 66;
      Cadena := 'Error de Comunicación 66';
    end;
    XComm1.CloseDevice;
    .....

Despues valido la cadena que recibo. Porque lo efectué de esta manera, porque no nunca se el tamaño exacto, solo se que la cadena que recibo despues del valor ETX tiene 4 caracteres que representan un valor hex del tamaño en caracteres de la cadena, con el cual verifico si esta bien. El codigo original es mucho mas largo porque recibo varias respuestas de acuerdo a los comandos que le mando, y tengo que hacer una serie de validaciones que no vienen al caso. Otra cosa a mi el equico me envia un byte valor 18 que significa que debo esperar por 400 msegs por el resto de la info. Creo que deberias leer bien el manual del protocolo de comunicacion de la balanza y adaptarlo a lo que necesitas.

Espero que te sirva.



Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:36:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi