![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Gracias por tu ayuda Egostar... pero... pero...
El componente que uso es el TVaComm. Este viene junto con otra serie de componentes en un paquete llamado Async32 si no me equivoco. Otro de los componentes que trae es el TVaCapture que funciona como tu dices. Le indicas el comienzo y el fin de trama y cuando detecta ese comienzo y fin produce un evento que tiene como parámetro el contenido del paquete. El problema que me encontré es que el modem que uso devuelve los caracteres hexadecimales y el componente TVaCapture devuelve caracteres ASCII. En principio para algunas cosas me es igual, pero me he dado cuenta de un pequeño fallo. Resulta que el modem devuelve en muchas tramas el valor $00 (carácter NULL) y TVaCapture lo devuelve en el String de datos como un espacio en blanco ($20 si no me equivoco). Entonces esto a veces me lleva a error xq puede que alguna vez sí sea verdaderamente un espacio o a veces sea un NULL. Y estos valores puede que me sean necesarios saber el valor exacto. No sé si después de todo este palabrerío se me habrá entendido jeje. De todas formas... muchísimas gracias por el consejo!!! |
|
#2
|
||||
|
||||
|
Cita:
Saludos. Al. |
|
#3
|
|||
|
|||
|
Cita:
Muchas gracias otra vez a los dos!!! |
|
#4
|
|||
|
|||
|
Cita:
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#5
|
|||
|
|||
|
Gracias por tomarte la molestia de realizar un código para la lectura del puerto serie. Una pequeña pega que le veo es que la variable linea debería ser global y no local, ya que puede que no lleguen todos los caracteres de la trama en el momento en que se produzca el evento. Quizás llegue en dos veces por lo que la variable se habrá vuelto a inicializar y supongo que no funcionará, no?
Salu2... |
|
#6
|
|||
|
|||
|
Cita:
Si y no, ya que al ser una comunicación serial, los caracteres te llegan como su nombre lo indica, de forma serial, uno tras otro, por lo que el conflicto que mencionas no creo que se presente ya que cuando te llega el primer caracter de la siguiente trama, inicializas la variable Linea. La puse como local para que se viera, pero puedes hacerla global. Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#7
|
|||
|
|||
|
Hola de nuevo,
Cita:
<STX>Esto es un ejemplo de una cadena por el puerto serie<ETX> puede que la primera vez que se genera el evento llegue tan sólo: <STX>Esto es un ejemplo de una cadena esto tu lo almacenas en lína y a continuación te llega el resto de trama: por el puerto serie<ETX> Esto te llega la segunda vez que se genera el evento por lo que la variable línea se habrá vuelto a inicializar y no tendrá la trama completa por lo que se perdería. Si no me equivoco este es el comportamiento del puerto serie, aunque para decir la verdad es ahora cuando lo estoy manejando por primera vez. Para evitar que se pierdan tramas lo que usaba yo es un buffer circular. Un saludo egostar & cia... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Lectura del USB por Interrupción | cisco | Varios | 0 | 25-10-2007 18:13:29 |
| Documentacion para Generar Tramas TCP | bastardo10 | Varios | 0 | 07-06-2007 17:31:38 |
| Lectura de un FTP con idHTTP | gluglu | Internet | 2 | 05-05-2007 00:35:50 |
| Problema de lectura de un cd | dragondetierra | Varios | 0 | 18-02-2007 18:58:52 |
|