Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Bueno, y porque no usar el Memo para enviar los caracteres, agrega otra variable de tipo Integer de nombre Contador

Código Delphi [-]
var
  Str: String;
begin
  ComPort.ReadStr(Str, Count);
  if length(Str)>= 8 then
    ShowMessage('OK')
  else if Str = #1 then  begin
          case Cuantos of
             1: begin
                  ComPort.WriteStr(#2#2);
                  Cuantos := 2;
             end;
             2: begin //Modo Escribir
                  ComPort.WriteStr(#2#3);
                  //ProcedimientoEscribir
                  Cuantos := 3;
             end;
             3: begin //Modo Borrar
                  //ProcedimientoBorrar
                  showmessage('Chip Borrado.. OK!')
                  Cuantos := 4;
             end;
             4: begin //poner el chip en prog..
                  ComPort.WriteStr(#2#2);
                  Cuantos := 5;
             end;
             5: begin // Comando para escribir el chip(06 04 00 00 10 00)
                  ComPort.WriteStr(#6#4#0#0#16#0);
                  Contador := 1;
             end;
          end;
      end
      else if Str = #2 then begin
           end
           else if Str = #53 then begin
                   if contador <= 4096 then begin
                      ComPort.WriteStr(Memo1.Text[Contador]);
                      Inc(Contador);
                   end;
                end;
end;

A ver como funciona

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 01-04-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Una preguntita.
Código Delphi [-]
 5: begin // Comando para escribir el chip(06 04 00 00 10 00)
                  ComPort.WriteStr(#6#4#0#0#16#0);
                  Contador := 1; // aqui esta mandando el primer byte?
             end;
          end;
      end
      else if Str = #2 then begin
           end
           else if Str = #53 then begin
                   if contador <= 4096 then begin
                      ComPort.WriteStr(Memo1.Text[Contador]);
                      Inc(Contador);
                   end;
                end;
end;

Esta copilando bien y rueda sin problemas hasta donde manda los 6 bytes de comando.El primer byte del memo no sale al serial port. contador:=1; Esta esperando el primer 53?
El primer 53 entrara despues que el primer byte de data entro al chip.

Un Saludo.
Responder Con Cita
  #3  
Antiguo 01-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Una preguntita.

Esta copilando bien y rueda sin problemas hasta donde manda los 6 bytes de comando.El primer byte del memo no sale al serial port. contador:=1; Esta esperando el primer 53?
El primer 53 entrara despues que el primer byte de data entro al chip.
A ver, lo que entendi es que tu estas esperando el #53, entonces lo que necesitas es enviar #53?

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 01-04-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por egostar Ver Mensaje
A ver, lo que entendi es que tu estas esperando el #53, entonces lo que necesitas es enviar #53?

Salud OS
El 53 lo manda el chip despues que recive el primer byte de data ( el primer byte que esta en el memo) entonces es que manda el primer 53.
Código Delphi [-]
   ComPort.WriteStr(#6#4#0#0#16#0);
     // aqui debe mandar el primer byte del memo y entonces espera el 53
                  Contador := 1;

El primer 53 es para mandar el segundo en adelante hasta el final de los 4096 bytes.

Un Saludo.
Responder Con Cita
  #5  
Antiguo 01-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Código Delphi [-]
    ComPort.WriteStr(#6#4#0#0#16#0);
    sleep(100); // Edito, esto es para que haga una pequeña pausa, antes de enviar el primer caracter....
    ComPort.WriteStr(Memo1.Text[1]);
    Contador := 2;

A ver que tal así....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 01-04-2008 a las 02:49:53.
Responder Con Cita
  #6  
Antiguo 01-04-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Ya esta mandando el primer byte y recibe el primer 53.
Eso quiere decir que si el chip regresa el primer 53 es que esta entendiendo bien la cosa.
Ahora hay dos problemas, uno es que el primer byte es un "01" y esta mandando "20" .cambie el file hex y el primer byte es un "00" y sigue mandando un "20".El segundo problema es que cuando regresa el primer 53 ya no manda mas nada.Se detiene.La rutina contador no manda mas nada.

Un Saludo.
PD: el 20 es espacio en asscii?? jejejejeje creo que aqui hay gato encerrado.

Última edición por JoseFco fecha: 01-04-2008 a las 03:14:43.
Responder Con Cita
  #7  
Antiguo 01-04-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Ya esta mandando el primer byte y recibe el primer 53.
Eso quiere decir que si el chip regresa el primer 53 es que esta entendiendo bien la cosa.
Ahora hay dos problemas, uno es que el primer byte es un "01" y esta mandando "20" .cambie el file hex y el primer byte es un "00" y sigue mandando un "20".El segundo problema es que cuando regresa el primer 53 ya no manda mas nada.Se detiene.La rutina contador no manda mas nada.

Un Saludo.
PD: el 20 es espacio en asscii?? jejejejeje creo que aqui hay gato encerrado.
Una pregunta Jose, que es lo que tienes en el Memo......

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cuantos Querys? Nomad Conexión con bases de datos 13 24-01-2008 18:41:51
Contar cuantos edits hay lbidi Varios 4 04-10-2007 21:23:36
cuantos querys???? kryna Conexión con bases de datos 5 09-05-2005 20:50:13
Cuantos son Colombianos???? sercornejov Humor 7 28-12-2004 16:49:56
Cuantos Campos eduarcol Tablas planas 4 23-02-2004 17:07:02


La franja horaria es GMT +2. Ahora son las 08:09:21.


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