Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
puerto serial, me esta volviendo loco

hola... les comento mi situacion... tengo una aplicacion que se comunica a través del puerto serial con un dispositivo, la cual le envio comandos y el aparato realiza acciones físicas, como encender, apagar, etc...

utilizo el serial con los 3 hilos de send, recieve y tierra... espié el puerto serie para ver como lo hace, y algo entendí, inclusive detecté la linea en la que se envian los comandos de prende y apagar y que parte del equipo, en eso voy bien, pero resulta que tengo que hacer una aplicación que haga algo parecido y me estoy volviendo loco...

le intento de enviar los mismos comandos que manda la aplicacion original (menos los que establecen velocidades y eso, que lo hace solo cuando abro el puerto con el componente de torry), pero a cada linea parece que responde 04 00 00 y me pone como funcion WAIT_MASK o algo así, ni siquiera estoy seguro si es una respuesta del aparato, pues en el programa espía aparece como UP (que creo que es lo que dice el aparato, no se), el hecho es que no puedo hacerlo funcionar...

observé que la original envia comandos como funcion ***DEVICE_CONTROL y nada más (eso dice el programa espía), y cuando utilizo el componente bajado de la pagina de torry (el free) los envía como WRITE... la pregunta es si hay alguna manera de enviar datos como CONTROL y no como write, para tratar de imitar lo mas posible y ver si puedo lograr algo... se me ocurre que a nivel de API se debería poder...

disculpas porque verdaderamente nunca trabaje con puerto serial y no tengo las cosas claras, salvo lo general... inclusive perdon por lo largo del post y porque capaz que ya hay otros hilos similares, pero la verdad que busqué y no enconrté nada...

alguien tiene idea que puede ser??? please help !!!

muchas gracias, saludos

agrego que el 04 00 00 00 que pensé que era una respuesta no es tal, pues conectado o desconectado hace lo mismo helppp !!!
__________________
Marcelo C.

Última edición por emeceuy fecha: 28-11-2007 a las 12:36:29.
Responder Con Cita
  #2  
Antiguo 29-11-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
ay no ! voy a enloquecer de verdad !!!

voy a simplificar la pregunta... no hay manera de que la funcion de la API para el serial sea CONTROL? y no WRITE?, porque el sistema se comunica utilizando la funcion CONTROL, y si uso el componente para el puerto siempre manda damos como WRITE, porque ya ajusté los parametros, todos, y están todos iguales, salvo el primer byte de special charcters (pone 84 y debería ser 1A) y sigue sin funcionar...

probalemente sea que no puedo interpretar el protocolo de inicializacion...

:
__________________
Marcelo C.
Responder Con Cita
  #3  
Antiguo 29-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por emeceuy Ver Mensaje
ay no ! voy a enloquecer de verdad !!!

voy a simplificar la pregunta... no hay manera de que la funcion de la API para el serial sea CONTROL? y no WRITE?, porque el sistema se comunica utilizando la funcion CONTROL, y si uso el componente para el puerto siempre manda damos como WRITE, porque ya ajusté los parametros, todos, y están todos iguales, salvo el primer byte de special charcters (pone 84 y debería ser 1A) y sigue sin funcionar...

probalemente sea que no puedo interpretar el protocolo de inicializacion...

:
Primero que nada necesitas conocer el protocolo de comunicación, no entiendo que quieres decir con eso de CONTROL, si es este signo ^ y está mezclado con una letra por ejemplo ^B, ^C, ^E etc. son caracteres de control.

Si pudieras colocar ese protocolo te podremos ayudar con mas precisión.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 29-11-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
gracias por la respuesta !!!

la inicialzación está muy larga como para postearla, y si, necesito conocer dialogan entre si !

Utilizando el programa para espiar el puerto, deduje los parametros de la comunicacion (baudios, buffer, todo)... El programa espía cuando muestra una linea con la informacion (los bytes) y además describe la funcion... por ejemplo, cuando se setean la velocidad pone (algo)+CONTROL_SET_BAUD_RATE o algo así (que aparentemente son funciones propias de la API, y hay varias más)... yo comentaba que cuando espío como se comunica la aplicacion original, los comandos que envía (luego que está la comunicacion establecida) la funcion dice CONTROL, en cambio con el componente a través de delphi cuando envio informacion la funcion dice WRITE...

esa es una diferencia, y por eso preguntaba si no hay manera de escribir el puerto con la API directamente y que use la funcion CONTROL o lo que sea... que lio este !!!
__________________
Marcelo C.
Responder Con Cita
  #5  
Antiguo 29-11-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por emeceuy Ver Mensaje
gracias por la respuesta !!!

la inicialzación está muy larga como para postearla, y si, necesito conocer dialogan entre si !

Utilizando el programa para espiar el puerto, deduje los parametros de la comunicacion (baudios, buffer, todo)... El programa espía cuando muestra una linea con la informacion (los bytes) y además describe la funcion... por ejemplo, cuando se setean la velocidad pone (algo)+CONTROL_SET_BAUD_RATE o algo así (que aparentemente son funciones propias de la API, y hay varias más)... yo comentaba que cuando espío como se comunica la aplicacion original, los comandos que envía (luego que está la comunicacion establecida) la funcion dice CONTROL, en cambio con el componente a través de delphi cuando envio informacion la funcion dice WRITE...

esa es una diferencia, y por eso preguntaba si no hay manera de escribir el puerto con la API directamente y que use la funcion CONTROL o lo que sea... que lio este !!!

Ese (algo) es lo que necesitamos conocer que es, me atrevo a decir que son caracteres de control como los que te puse anteriormente, tal vez un Start of Text, o un Enquiry o un ACK, no se , esos caracteres son primordiales para que los equipos "platiquen" en el mismo idioma.

Lo que yo hago normalmente es tomar esos datos con hiperterminal y guardarlos en un archivo de texto para después hacer un "barrido" caracter por caracter y saber el valor decimal que le corresponde.

Ojala y puedas hacerlo y que postees lo que te manda, se que es largo, pero en este foro no se te cobra por palabra escrita .

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 30-11-2007
emeceuy emeceuy is offline
Miembro
 
Registrado: jun 2003
Ubicación: Uruguay
Posts: 122
Poder: 21
emeceuy Va por buen camino
si, puede ser, mañana posteo algo de la información que deslpiega... lo que si, he intentado hacerlo con el hiperterminal, pero si la aplicacion de comunicacion original abre el puerto el hiperterminal da error que no lo puede abrir, y al revés, lo mismo...

gracias por seguir este hilo e intentar darme una mano
__________________
Marcelo C.
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
Puerto serial CLX bismarck_sierra Lazarus, FreePascal, Kylix, etc. 0 06-07-2004 21:55:22
Mi navigator esta loco nefy Varios 7 19-05-2004 16:58:44
Puerto serial fled Varios 2 28-04-2004 22:27:47
Puerto serial. danytorres Impresión 1 29-01-2004 16:51:42
me estoy volviendo loco haron Humor 6 04-09-2003 08:21:32


La franja horaria es GMT +2. Ahora son las 08:32:48.


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