Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-11-2006
elbert elbert is offline
Registrado
 
Registrado: nov 2006
Posts: 3
Poder: 0
elbert Va por buen camino
comunicacion serial

Saludos , gracias por contestar . La pesa magellan es un lector de codigos de barra con pesa ( para medir peso ) usada en los supermercados . Tengo un programa de punto de venta ( caja registradora ) y necesito leer el puerto serial para saber el codigo de barra y el peso de el producto . Trate con readstring pero no lograba enteder lo que leia , estoy tratando con un componente Asinc pro , puedo leer pero no se como detectar cuando hay algo en el buffer , ni cuantos caracteres tengo que leer .
Voy a tratar el componente que me recomiendas.
Gracias
Responder Con Cita
  #2  
Antiguo 18-02-2007
jairo guzman jairo guzman is offline
Registrado
 
Registrado: feb 2007
Posts: 4
Poder: 0
jairo guzman Va por buen camino
Lightbulb

Bueno, en primer lugar seria interesante saber el Baud Rate empleado y que cantidad de informacion estas enviando por segundo.

Pero por lo pronto el comport es una buena solucion a tu problema el siguiente codio te puede ayudar a detectar la cantidad de datos recibidos y cuantos datos debes leer.

Hay dos formas de leer el buffer de estrada, en realidad son dos eventos el que yo he utilizado es el evento OnRxChar, en est evento insertas el siguiente codigo

void __fastcall TForm1::ComPortRxChar(TObject *Sender)
{
int x;
unsigned char buf;

x=ComPort->InputCount();
//en x esta el numero de bytes recibidos
while(ComPort->InputCount())
{
buf=ComPort->ReadByte();
ComPort->WaitForReadCompletion();
//en buf esta cada uno de los bytes recibidos
}
}

Esta forma de leer tiene 2 inconvenientes y es que si envias muchos datos a un baud rate bajo puedes perder parte de la informacion para esto en el momento en que abres el puerto incrementas el valor del bufer de entrada con ComPort->BufferSize->Inpout=10000, por ejemplo.

el otro problema es que la lectura del puerto podria tornarse lenta en cuanto a que estas analizando la informacion byte a byte, en este punto puedes utilizar los otros componentes de lectura tales como el ReadString o el Read o cualquier otro, pero estos tienen un fin de cadena especifico y debes tener cuidado con eso, el la ayuda del comport especifican algunos de estos fines de cadena pero esta algo incompleto.

En este momento estoy probando con el componente Read que te permite leer una cantidad de datos determinada del buffer de entrada pero aun no se como funciona bien y lo estoy probando haci que te reboto la pregunta,
si encuentras alguna informacion al respecto de la directiva read del comport me la podrias facilitar?

Espero que esto te ayude.
Responder Con Cita
  #3  
Antiguo 18-02-2007
jairo guzman jairo guzman is offline
Registrado
 
Registrado: feb 2007
Posts: 4
Poder: 0
jairo guzman Va por buen camino
Lightbulb necesito experto en comport!!

Bueno, en primer lugar seria interesante saber el Baud Rate empleado y que cantidad de informacion estas enviando por segundo.

Pero por lo pronto el comport es una buena solucion a tu problema el siguiente codio te puede ayudar a detectar la cantidad de datos recibidos y cuantos datos debes leer.

Hay dos formas de leer el buffer de estrada, en realidad son dos eventos el que yo he utilizado es el evento OnRxChar, en est evento insertas el siguiente codigo

void __fastcall TForm1::ComPortRxChar(TObject *Sender)
{
int x;
unsigned char buf;

x=ComPort->InputCount();
//en x esta el numero de bytes recibidos
while(ComPort->InputCount())
{
buf=ComPort->ReadByte();
ComPort->WaitForReadCompletion();
//en buf esta cada uno de los bytes recibidos
}
}

Esta forma de leer tiene 2 inconvenientes y es que si envias muchos datos a un baud rate bajo puedes perder parte de la informacion para esto en el momento en que abres el puerto incrementas el valor del bufer de entrada con ComPort->BufferSize->Inpout=10000, por ejemplo.

el otro problema es que la lectura del puerto podria tornarse lenta en cuanto a que estas analizando la informacion byte a byte, en este punto puedes utilizar los otros componentes de lectura tales como el ReadString o el Read o cualquier otro, pero estos tienen un fin de cadena especifico y debes tener cuidado con eso, el la ayuda del comport especifican algunos de estos fines de cadena pero esta algo incompleto.

En este momento estoy probando con el componente Read que te permite leer una cantidad de datos determinada del buffer de entrada pero aun no se como funciona bien y lo estoy probando haci que te reboto la pregunta,
si encuentras alguna informacion al respecto de la directiva read del comport me la podrias facilitar?

Espero que esto te ayude.
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
Ayudemos a utilizar Comport (Rs232) IVAND Varios 18 16-04-2020 21:25:17
ComPort (serial) - instalacion problema ibstk Varios 14 06-10-2011 21:27:26
El comport deja de funcionar JULIPO Varios 7 22-08-2007 19:02:37
comport interface elbert Noticias 1 05-11-2006 17:12:38
Cómo parecer un experto en computación DarkByte Humor 6 10-06-2004 19:00:09


La franja horaria es GMT +2. Ahora son las 15:30:23.


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