Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-02-2008
bactering bactering is offline
Miembro
 
Registrado: jul 2006
Posts: 19
Poder: 0
bactering Va por buen camino
Variar control de flujo Puerto Serie

Muchas veces no se sabe como prebuntar y por eso no se encuentra la contestación correcta.

Una vez abierto el puerto me funciona todo correctamente:

...
DCB.BaudRate:= CBR_115200; // 19200
DCB.Parity:= noPARITY;
DCB.StopBits:= ONESTOPBIT;
DCB.Flags:=$01 ;
DCB.ByteSize:=8;
SetCommState(hComm, DCB);
...

Al leer con ReadFile se queda colgado. Es debido a que el control de flujo se queda programado en Hadware. Lo he comprobado al arrancar el Hyperterminal y reconfigurar el puerto. Lo cargo con Hyperterminal y ya funciona todo correctamente.
Pregunta ¿Cómo se programa el Control de flujo para que se quede en "ninguno"?
He probado desde el controlador del COM1 y está en "Ninguno" siempre

Gracias
Responder Con Cita
  #2  
Antiguo 03-02-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
El control de flujo se configura en la estructure DCB al igual que el resto de parámetros. En delphi todo un grupo de miembros de esa estructura que midem solo uno o dos bits se juntan dentro de un solo parametro llamado "flags". En resumen si no quieres tener ningún tipo de control de flujo utiliza algo como esto:
Código Delphi [-]
DCB.Flags:= 01; // El "1" es para poner el flag "binary" a 1. El resto de flags los dejamos a cero

De todas formas no creo que el problema que comentas venga del control de flujo, ya que este solo actúa cuando el buffer se llena. Lo que parece que esta pasando es que no hay suficientes bytes almacenados en el buffer cuando llamas a la función readfile, por lo que la función no termina, esperando hasta recibir los bytes que le estas pidiendo.

Una forma de solucionarlo es utilizar la función ClearCommError, que entre otras cosas nos permite saber cuantos bytes hay en el buffer esperando para ser leídos. Así una vez que sabemos cuantos bytes hay en el buffer llamamos a la función ReadFile para que lea solo ese numero de bytes, asegurándonos de que la función terminara inmediatamente.
Responder Con Cita
  #3  
Antiguo 03-02-2008
bactering bactering is offline
Miembro
 
Registrado: jul 2006
Posts: 19
Poder: 0
bactering Va por buen camino
Gracias por el comentario. Voy a ver lo que comentas.

El tema es que arranco el Hyperterminal con la configuracion correcta y lo cierro y el programa que he realizado va estupendamente. Voy a ver si puedo arreglarlo con viendo el buffer.

Muchas gracias.
Responder Con Cita
  #4  
Antiguo 20-03-2011
niikoo07 niikoo07 is offline
Registrado
NULL
 
Registrado: mar 2011
Posts: 1
Poder: 0
niikoo07 Va por buen camino
hola amigo.. soy nuevo en este blog y me parecio muy bueno
queria saber si me pueden ayudar o darme algun tuto de delphi7
para controlar un rele mediante usb o puerto..
muchas gracias...
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con la paridad y el control de flujo atapia Varios 1 18-09-2007 11:35:29
Usb en puerto serie :p D-MO Humor 10 30-06-2006 06:16:45
Puerto serie esquerda21 Varios 2 12-05-2004 23:58:52
Conexion Puerto Serie Rabata Varios 3 11-12-2003 03:02:00
Puerto serie y tcp mercurio Varios 3 28-10-2003 01:21:59


La franja horaria es GMT +2. Ahora son las 10:28:08.


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