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 27-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cuantos ComPortRxChar?

Hola amigos.

Tengo una preguntica:
Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);

Se pueden hacer mas de un procedure como este en un mismo programa?

Un Saludo.
Responder Con Cita
  #2  
Antiguo 27-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Hola amigos.

Tengo una preguntica:
Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);

Se pueden hacer mas de un procedure como este en un mismo programa?

Un Saludo.
Podrias comentarnos que es lo que quieres hacer, porque me imagino que lo necesitas para actuar en consecuencia en base a las cadenas que te llegan, ¿si?......

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #3  
Antiguo 27-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola egostar.

La cosa es que ya tengo ese procedure en mi programita y trabaja bien.Cuando recibo una cadena de bytes y la comparo.Pero la estoy tratando de usar en otro boton, que hace otra cosa y se me complico el asunto.
Me explico. Yo tengo un boton donde mando al serial port unos bytes(4) para ser mas claro y tengo que esperar un byte de retorno,compararlo y si es = al que espero , entonces mandar otros dos bytes y esperar otro bytes de regreso.El problema es que ese byte es un 01 y se repite tres veces en ese procedure del boton.
A todo lo largo de mi programita estare empleando ComPort.ReadStr(Str, Count); puedo llenar de "else" el procedure pero el problema es que cuando tengo tres como en este caso.No en todos los 01 que espero tomare la misma decision, depende de cuando y porque me lo estan mandando.

Un Saludo.
Responder Con Cita
  #4  
Antiguo 27-03-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Lo mas seguro es que me equivoque pero pienso en voz alta.
Por que no crear un procedimiento aislado al que se le llame desde este procedimiento y que contenga una variable que guarde ese valor.
No conozco el ComPortRxChar, supongo que vendra de los chart o de algun componente determinado, pero si es necesario que envie el resultado con un dato string y otro integer, cual seria el problema de hacerlo con otro procedimiento o funcion?, asi no se necesitaría duplicar el procedimiento.
Bueno, solo opino, ya sabéis, así aprendo.
Saludos
Responder Con Cita
  #5  
Antiguo 27-03-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
No puedes usar mas de un OnRxChar puesto que solo tienes un punto de entrada al puerto serie. On RxChar revisa caracter a caracter lo que entra al puerto. Si necesitas que tu programa reaccione a un caracter o caracteres especiales deberas de programar una rutina para tratar cada uno de ellos.

Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
begin
   {AQUI EL COMPONENTE LEE LO QUE RECIBE POR EL PUERTO COM}
  ComPort.ReadStr(Str, Count);
 
   if Str = 'DELPHI' then
      ShowMessage('Bienvenido')
   else if Str = 01 then
      ShowMessage('OK')
   else if Str = 2 then
      UnProcedimiento
   else if Str = 3 then
      OtroProcedimiento
   else
      LoQueSea;
end;

Ahora bien si necesitas capturar alguna conjunto de caracteres o "paquetes" bien definidos entonces es mejor usar el ComDataPacket el cual te permitira colocar tantos como necesites para un solo puerto.

Código Delphi [-]
//Suponemos que necesitamos recibir una cadena que al final cierra con CR
 
//declaramos una constante
const Terminador = #13  //ASCII 13 o CR
 
//En la creacion del formulario declaramos
procedure TForm1.Create(Sender: TObject);
begin
   ComDataPacket.StopString := Terminador;
end;
 
//Este procedimiento se ejecutaria cada vez que aparezca CR
procedure TForm1.ComPortDataPacket(str: string; count: integer);
begin
   ShowMessage('Cadena Recibida: ' + Str);
end;

Si necesitas recibir el caracter 01 varias veces y bajo diversas circunstancias tal vez la mejor manera de tratarlo seria usando OnRxChar y llamar a un procedimiento que procese acorde a la circunstancia en que lo esperas. Esto es una sugerencia tal vez hay mejor manera; crear un Type por ejemplo llamado Modo y que tenga declarados los diversos modos que tu necesitas por ejemplo:

Código Delphi [-]
Type Modo = (Leer, Escribir, Borrar);
 
//Redeclarando el evento OnRxChar
procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
begin
   {AQUI EL COMPONENTE LEE LO QUE RECIBE POR EL PUERTO COM}
  ComPort.ReadStr(Str, Count);
 
   if Str = 'DELPHI' then
      ShowMessage('Bienvenido')
   else if Str = 01 then
      if Modo = Leer then
         ShowMessage('OK')
      else if Modo = Escribir then
          ProcedimientoEscribir
      else
          ProcedimientoBorrar
   else if Str = 2 then
      UnProcedimiento
   else if Str = 3 then
      OtroProcedimiento
   else
      LoQueSea;
end;
Responder Con Cita
  #6  
Antiguo 27-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Mas claro ni el agua,

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 27-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
begin      
ComPort.ReadStr(Str, Count);    
if Str = 'DELPHI' then      
ShowMessage('Bienvenido')   
else if Str = 01 then   // <---aqui no esta comparando.   
  comport.WriteStr(#2#2) 
  else if Str = 2 then     
 UnProcedimiento   
else if Str = 3 then     
 OtroProcedimiento   
else    
  LoQueSea;
end;
Todo funciona bien hasta donde lo tengo comentado.
Me da un error si el 01 no lo pongo asi '01'
Un Saludo.

Última edición por JoseFco fecha: 27-03-2008 a las 22:33:14.
Responder Con Cita
  #8  
Antiguo 27-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
begin      
ComPort.ReadStr(Str, Count);    
if Str = 'DELPHI' then      
ShowMessage('Bienvenido')   
else if Str = 01 then   // <---aqui no esta comparando.   
  comport.WriteStr(#2#2) 
  else if Str = 2 then     
 UnProcedimiento   
else if Str = 3 then     
 OtroProcedimiento   
else    
  LoQueSea;
end;
Todo funciona bien hasta donde lo tengo comentado.
Me da un error si el 01 no lo pongo asi '01'
Un Saludo.

Sera porque Str es un char y no un entero?

Trata con esto:

Código Delphi [-]
else if Str = #1 then   // <---aqui no esta comparando.   
  comport.WriteStr(#2#2) 
  else if Str = #2 then     
 UnProcedimiento   
else if Str = #3 then     
 OtroProcedimiento

o así si es un String:

Código Delphi [-]
else if Str = '01' then   // <---aqui no esta comparando.   
  comport.WriteStr(#2#2) 
  else if Str = '02' then     
 UnProcedimiento   
else if Str = '03' then     
 OtroProcedimiento

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 27-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola egostar.
Este es el codigo en realidad.

Código Delphi [-]
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
 ComPort.ReadStr(Str, Count);
AddHexString(Str,Memo.Lines);
if length(Str)>= 8 then
 if Str = 'Hi-LOGIC' then
showmessage('¡OK! ¡ES ORIGINAL!')
 else if Str = '01' then
Comport.WriteStr(#2#2)
 else
showmessage('¡HORROR!, ¡ES PIRATA!');
end;




Creo que aqui esta el problema.Yo tengo esa rutina que al comenzar recibe
algo que me envia el chip y si es = continua el programa.Creo que aqui esta la cosa.
Dejame estudiar eso ultimo que mandastes.
Un Saludo.

Última edición por JoseFco fecha: 27-03-2008 a las 23:00:23.
Responder Con Cita
  #10  
Antiguo 28-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Tengo medio resuelto el problema.
Código Delphi [-]
Type Modo = (Leer, Escribir, Borrar);
 //Redeclarando el evento OnRxChar
procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
begin   {AQUI EL COMPONENTE LEE LO QUE RECIBE POR EL PUERTO COM}  
ComPort.ReadStr(Str, Count);   
 if Str = 'DELPHI' then    
  ShowMessage('Bienvenido')   
else if Str = 01 then      
if Modo = Leer then     
    ShowMessage('OK')     
 else if Modo = Escribir then      
   ProcedimientoEscribir     
else          ProcedimientoBorrar
   else if Str = 2 then  
    UnProcedimiento   
else if Str = 3 then     
 OtroProcedimiento  
 else     
 LoQueSea;
end;
Cambie mi codigo y ya puedo comparar el primer #1el problema es que tendre en esta rutina tres veces el retornodel uC con el byte (01) y es donde tendre que hacer uso de larutina que escribio FGarcia.Pero tengo una duda, como le digo alReadStr que Modo quiero que compare? Yo tengo un boton y manda al serial port (#4#1#0#1)recibo un #1 compara si es = entonces mando al serial port (#2#2)hasta aqui trabaja bien mi programita.El relajo entra cuando recibo [/color]el segundo #1 y no diferencia del primero mandandome otra vez los(#2#2) sindo que yo no quiero mandar eso despues de recibir el primer #1. No se si me explico? Un Saludo.

Última edición por JoseFco fecha: 28-03-2008 a las 00:42:05.
Responder Con Cita
  #11  
Antiguo 28-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Esto es lo que tengo hecho.
Código Delphi [-]
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
if not ComPort.Connected then
ComPort.Open;
comport.WriteStr(#2#0);
end;
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str: String;
begin
 ComPort.ReadStr(Str, Count);
 if length(Str)>= 8 then
 ShowMessage('OK')
 else if Str = #1 then
 ComPort.WriteStr(#2#2)
 else
 ShowMessage('No puede comunicar');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if not ComPort.Connected then
  ComPort.Open;
 comport.WriteStr(#4#1#0#1);
end;
end.

Todo esta bien hasta que tengo que comparar otra vez el #1.

Un Saludo.
Responder Con Cita
  #12  
Antiguo 28-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
A ver si entendi lo que necesitas

Código Delphi [-]
var
  Form1: TForm1;
  Cuantos : Integer;

.......

procedure TForm1.ComPortRxChar(Sender: TObject; count:integer);
var
  Str: String;
begin
  ComPort.ReadStr(Str, Count);
  AddHexString(Str,Memo.Lines);
  if Str = 'Hi-LOGIC' then
     showmessage('¡OK! ¡ES ORIGINAL!')
  else begin
         if Str = '01' then begin
            case Cuantos of
                1: begin //Modo Leer;
                     Comport.WriteStr(#2#2)
                     //ProcedimientoLeer
                     Cuantos := 2;
                end
                2: begin //Modo Escribir
                     //ProcedimientoEscribir
                     Cuantos := 3;
                end
                3: begin //Modo Borrar
                     //ProcedimientoBorrar
                end;
             end;
         end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if not ComPort.Connected then
      ComPort.Open;
   comport.WriteStr(#4#1#0#1);
   Cuantos := 1;
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #13  
Antiguo 28-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola egostar.

Bueno asi esta la cosa, despues de algunos errores al final copilo.
Código Delphi [-]
var
  Form1: TForm1;
  Cuantos : Integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
if not ComPort.Connected then
ComPort.Open;
comport.WriteStr(#2#0);
end;
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
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!')
 end;
 end;
 end;
 end;
 

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not ComPort.Connected then
  ComPort.Open;
 comport.WriteStr(#4#1#0#1);
   Cuantos := 1;
end;
end.

Asi esta copilando sin errores y haciendo el trabajo que esperaba, esta es la
rutina para borrar la memoria de un AT89S51 y esta trabajando de maravillas.
Ya borre un chip que estaba programado y chequeado en otro programador que esta borrado.
Un paso mas en el proyecto.
100 puntos para el maestro egostar.
Responder Con Cita
  #14  
Antiguo 28-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
100 puntos para el maestro egostar.
ya te pareces a Caral

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #15  
Antiguo 28-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Aqui la prueba del delito:

:10000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
:10001000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0
:10002000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0
:10003000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD0
:10004000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0
:10005000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0
:10006000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0
:10007000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF90
:10008000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80
:10009000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70
:1000A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60
:1000B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF50
:1000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
:1000D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF30
:1000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
:1000F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF10
:10010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
:10011000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
:10012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
:10013000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
:10014000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF
:10015000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF
:10016000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F
:10017000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F
:10018000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F
:10019000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F
:1001A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F
:1001B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F
:1001C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F
:1001D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F
:1001E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F
:1001F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F
:10020000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
:10021000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
:10022000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE
:10023000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:10024000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBE
:10025000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
:10026000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E
:10027000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
:10028000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E
:10029000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
:1002A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E
:1002B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
:1002C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3E
:1002D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
:1002E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1E
:1002F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
:10030000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
:10031000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:10032000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDD
:10033000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
:10034000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBD
:10035000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
:10036000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
:10037000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
:10038000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
:10039000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:1003A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
:1003B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
:1003C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
:1003D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
:1003E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
:1003F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
:10040000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
:10041000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
:10042000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
:10043000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
:10044000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
:10045000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
:10046000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
:10047000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
:10048000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
:10049000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
:1004A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
:1004B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
:1004C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
:1004D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
:1004E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
:1004F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
:10050000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
:10051000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
:10052000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB
:10053000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
:10054000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
:10055000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
:10056000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
:10057000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
:10058000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
:10059000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
:1005A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B
:1005B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
:1005C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
:1005D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
:1005E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
:1005F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
:10060000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
:10061000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
:10062000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA
:10063000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
:10064000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
:10065000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
:10066000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A
:10067000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
:10068000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
:10069000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
:1006A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A
:1006B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
:1006C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
:1006D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
:1006E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A
:1006F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
:10070000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
:10071000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
:10072000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
:10073000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
:10074000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
:10075000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
:10076000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
:10077000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
:10078000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
:10079000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
:1007A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
:1007B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
:1007C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
:1007D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
:1007E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
:1007F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
:10080000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8
:10081000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
:10082000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8
:10083000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
:10084000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8
:10085000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
:10086000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98
:10087000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
:10088000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78
:10089000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
:1008A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58
:1008B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
:1008C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
:1008D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
:1008E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
:1008F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
:10090000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
:10091000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
:10092000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
:10093000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
:10094000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
:10095000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
:10096000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97
:10097000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87
:10098000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77
:10099000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67
:1009A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57
:1009B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47
:1009C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37
:1009D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27
:1009E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17
:1009F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
:100A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
:100A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
:100A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
:100A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
:100A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
:100A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
:100A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
:100A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
:100A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76
:100A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
:100AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56
:100AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
:100AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36
:100AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
:100AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
:100AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
:100B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
:100B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
:100B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
:100B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
:100B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
:100B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
:100B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
:100B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
:100B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
:100B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
:100BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
:100BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
:100BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
:100BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
:100BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
:100BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05
:100C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
:100C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
:100C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
:100C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
:100C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
:100C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
:100C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
:100C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
:100C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
:100C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
:100CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
:100CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
:100CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
:100CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
:100CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
:100CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
:100D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
:100D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3
:100D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
:100D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3
:100D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
:100D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3
:100D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
:100D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83
:100D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
:100D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63
:100DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
:100DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
:100DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
:100DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
:100DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
:100DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
:100E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
:100E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
:100E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
:100E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
:100E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
:100E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
:100E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
:100E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
:100E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
:100E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
:100EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
:100EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42
:100EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
:100ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
:100EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
:100EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
:100F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1
:100F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
:100F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
:100F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
:100F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
:100F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
:100F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:100F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
:100F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
:100F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
:100FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
:100FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
:100FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
:100FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
:100FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
:100FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
:00000001FF

Exito total!!
Responder Con Cita
  #16  
Antiguo 28-03-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
ya te pareces a Caral

Salud OS
JAJAJAJAJAJAJA

¡Solo falta que diga que tambien es novato!

Habra que recordarle que Novato es marca registrada de Caral Enterprises Inc. y que le pueden reclamar regalias por derechos de uso.
Responder Con Cita
  #17  
Antiguo 28-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Cita:
Empezado por FGarcia Ver Mensaje
JAJAJAJAJAJAJA

¡Solo falta que diga que tambien es novato!

Habra que recordarle que Novato es marca registrada de Caral Enterprises Inc. y que le pueden reclamar regalias por derechos de uso.
Caral es todo un maestro ya, es hora que suelte la corona de novato y nos la deje a las nuevas generaciones.

jajajajajajaja

Un Saludo.
Responder Con Cita
  #18  
Antiguo 28-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por JoseFco Ver Mensaje
Caral es todo un maestro ya, es hora que suelte la corona de novato y nos la deje a las nuevas generaciones.

jajajajajajaja

Un Saludo.
ya lo decia yo, Caral ya es un viejo.... lobo

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #19  
Antiguo 28-03-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
A ver, Egostar me corrige si me equivoco, hice algunos añadidos al ultimo codigo que mado PepePancho:

Código Delphi [-]
var
  Form1: TForm1;
  Cuantos, CuentaB : Integer;  //OJO AQUI SE MODIFICO
 
implementation
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
if not ComPort.Connected then
ComPort.Open;
comport.WriteStr(#2#0);
end;
 
procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
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!')
      end;
   end
 
//AQUI la cadena recibida vale 2
 else if Str = #2 then begin
   case Cuantos of
      1: begin
          //
          end;
      2: begin //Envia el primer byte. CuentaB vale 0.
             ComPort.WriteStr(Buffer[CuentaB]);
             Inc(CuentaB);
          end;
      
   end;

//AQUI el chip respondio a el envio del primer byte
 else if Str = #53 then begin
   case Cuantos of
      2: ProcedimientoEscribir;
   end;

 end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 if not ComPort.Connected then
  ComPort.Open;
 comport.WriteStr(#4#1#0#1);
   Cuantos := 1;
end;
 
{Este procedimiento pretende escribir caracter a caracter sobre el
puerto serie. CuentaB es un contador que lleva el registro de las transmisiones efectuadas, siempre se 
compara su valor contra el valor de la longitud del buffer que contiene el archivo a transmitir.}

procedure TForm1.ProcedimientoEscribir;
begin
  if CuentaB <= Length(Buffer) then
    begin
      ComPort.WriteStr(Buffer[CuentaB]);
      Inc(CuentaB);
    end
  else
    ComPort.WriteStr(ByteFinTx);
end;
end.

Última edición por FGarcia fecha: 28-03-2008 a las 05:50:48.
Responder Con Cita
  #20  
Antiguo 29-03-2008
JoseFco JoseFco is offline
Baneado
 
Registrado: dic 2007
Posts: 1.861
Poder: 0
JoseFco cantidad desconocida en este momento
Hola FGarcia.

Ayer no pude trabajar en el proyecto.Pero si le di una miradita al codigo.
Para poder rodar este codigo tengo que incorporar al programa otras rutinas que tengo por separadas y ya es hora de que se reunan asi que tengo buen taller para el dia de hoy.

Un Saludo.
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
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 14:39:26.


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