PDA

Ver la Versión Completa : Guardar un fichero Intelhex.


JoseFco
30-03-2008, 21:39:55
"Tolomeo se mudo al Polo Norte"

JoseFco
30-03-2008, 22:24:16
"Tolomeo se mudo al Polo Norte"

JoseFco
30-03-2008, 23:51:59
"Tolomeo se mudo al Polo Norte"

JoseFco
08-04-2008, 23:01:27
"Tolomeo se mudo al Polo Norte"

egostar
08-04-2008, 23:41:22
Hola amigos.

Tengo dias tratando de declarar este buffer y me da error de declaracion.

Quien me de una ayudadita a ver que pasa con esta declaracion que no se deja?

Un Saludo.

Pues si, no veo donde esté declarado buffer, incluso no veo donde declaras HexBufOut que por lo que veo es del mismo tipo buffer.....

No se, algo así


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
buffer = Array [0..100] of Byte; //Declaras el tipo buffer, caracter, byte o lo que se necesite....
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
function writeline(ADDR,RECLEN,RECTYPE:integer;
var buf:buffer): string;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function TForm1.writeline(ADDR,RECLEN,RECTYPE:integer;
var buf:buffer): string;
var
i:integer;
CHKSUM:byte;
begin
CHKSUM:=0;
result:=':'+inttohex(RECLEN,2)+inttohex(ADDR,4)+inttohex(RECTYPE,2);
CHKSUM:=RECLEN+lo(ADDR)+hi(ADDR);
for i:=0 to RECLEN-1 do begin
result:=result+inttohex(buf[ADDR+i],2);
CHKSUM:=CHKSUM+buf[ADDR+i];
end;
result:=result+inttohex(256-CHKSUM,2);
end;

end.

Salud OS

JoseFco
09-04-2008, 00:35:45
"Tolomeo se mudo al Polo Norte"

egostar
09-04-2008, 00:40:43
Hola egostar.

Gracias por la respuesta, ya de esa forma me reconoce la declaracion de buffer.Y si tienes razon le faltan cosas a este codigo.Lo saque de aqui.http://www.sixca.com/delphi/article/writehex.html

Tengo dias dandole vueltas y no lo entiendo.

Un saludo.

Ya veo, pero ahi mismo (http://www.sixca.com/delphi/article/readhex.html) puedes ver lo que te falta....


type buffer=array of byte; //assign as Dynamic array
var HexBuf:buffer;


Salud OS

JoseFco
09-04-2008, 22:25:43
"Tolomeo se mudo al Polo Norte"

JoseFco
11-04-2008, 03:17:53
"Tolomeo se mudo al Polo Norte"

JoseFco
12-04-2008, 16:44:44
"Tolomeo se mudo al Polo Norte"

JoseFco
12-04-2008, 23:57:53
"Tolomeo se mudo al Polo Norte"

Dedalo
14-04-2008, 20:03:21
Código Delphi [-] (http://www.clubdelphi.com/foros/#)
for i:=0 to ((usedbuf-1) div 16) do begin





Esta linea del codigo, quien me la puede explicar?
usedbuf es de donde tomare los bytes a combertir.?

Un saludo.

Esa linea es para repetir el bucle una vez por cada 16 bytes, pues cada linea del fichero intelhex describe 16 bytes binarios.

JoseFco
15-04-2008, 01:08:47
"Tolomeo se mudo al Polo Norte"

JoseFco
19-04-2008, 23:48:20
"Tolomeo se mudo al Polo Norte"

JoseFco
07-06-2008, 01:12:54
"Tolomeo se mudo al Polo Norte"

JoseFco
09-06-2008, 22:38:57
"Tolomeo se mudo al Polo Norte"

JoseFco
10-06-2008, 01:26:54
"Tolomeo se mudo al Polo Norte"

MaMu
12-06-2008, 06:19:06
A ver, HexBufOut es un array de byte, cuya dimensión de ancho de palabra está dada por ByteCnt cual número entero contenga (ojo al piojo que pasa el peine, y a no confundirse el entero decimal sin signo con un hexadecimal, a pesar de que puedan o no coincidir, en fin cada quien con su offset).
En fin, la funcion writeline es quien se encarga de la escritura del intelhex, pero donde esta el método de buffering??, no veo que se cargue en ningun lado, asi que asumo que al generar la variable con tope dimensional en 6 bytes, estos son nulos, o quizas flotantes (me recuerdan a salidas en alta impedancia). Entonces, el llenado del buffer deberia ser la inversa de writeline, pero de donde se leería?
Otra cosa, no le encuentro utilidad a la funcion write_eof, es redundante.

Saludos

JoseFco
12-06-2008, 13:06:16
"Tolomeo se mudo al Polo Norte"

MaMu
12-06-2008, 17:56:51
Hola MaMu, La funcion write_eof es la que termina el formato intelhex.
EOF ( End Of File) esta funcion cuando se terminan las lineas de ese file, este genera la ultima linea a cierra el file con esa funcion.El buffer se llenara con una funcion que estaria recibiendo del serial port.Tengo que crear esta.

Un Saludo.

Si, la función la entiendo, pero en el código no encuentro en donde la estas usando.
Ahora bien, vamos a pensar la funcion de lectura, el programador, que datos nos entrega, es decir, que estructura protocolar tiene?

Saludos

JoseFco
12-06-2008, 18:13:26
"Tolomeo se mudo al Polo Norte"