didi59650
Messages postés77Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 9 mai 2006
-
10 avril 2006 à 12:35
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012
-
10 avril 2006 à 22:13
l'appareil en voie 11fois 1 octet, je ve lire un part un les octet jusqu'au dernier qui est ("CR" donc $13) puis mettre ces donnes dans un tableau
pour l'instant j'ai tapé (ma ca ne marche) :
var
tableau : array[1..100] of integer;
index,carac : integer;
begin
Timer1.Enabled :=false;
index:=0;
while ( carac<> $13) do
begin
carac := readbyte;
tableau[index]:= carac;
inc(index);
end;
stringGrid2.cells[1,1] := inttostr(tableau[index-2]);
stringGrid2.cells[1,1] := chr(tableau[index-2]);
que dois je afire?
didi59650
Messages postés77Date d'inscriptionmercredi 5 avril 2006StatutMembreDernière intervention 9 mai 2006 10 avril 2006 à 14:19
voici mon programme :
var
Form1: TForm1;
tableau : array[1..10000] of char;
implementation
function Inp32(wAddr: word): byte; stdcall; external 'inpout32.dll';
function Out32(wAddr: word; bOut: byte): byte; stdcall; external 'inpout32.dll';
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Opencom('COM1 :baud=4800 parity=e data=7 stop=2');
TXD(0);
BUFFERSIZE(0);
Label2.caption := 'Vous pouvez maintenant prendre une mesure';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
index,i : integer;
carac : char;
begin
Label2.caption := 'la mesure apparaitra dans 2 secondes...';
index:=0;
TXD(1);
while ( carac <> #13) do
begin
carac := char(readbyte);
inc(index);
tableau[index]:= carac;
end;
TXD(0);
CLEARBUFFER;
Label2.caption := 'Vous pouvez maintenant prendre une autre mesure';
Edit1.Text := '';
for i:=1 to index-1 do
Edit1.Text := Edit1.Text + tableau[i];
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
CloseCOM;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseCOM ;
end;
end.
le probleme c'est la premiere mesure donne :
yyyyyyyyyyyyyyyyy28.5y6
puis je rappuie sur mon bouton mesure et donne :
28.56
Pui je fais une nouvellle mesure:
yyyyyyyyyy100.y3
pui je rappuie :
100.3
la premiere mesure est toujours fausse. Quelqu'un saurait d'ou vient le probleme??
cs_shining
Messages postés304Date d'inscriptionlundi 30 décembre 2002StatutMembreDernière intervention10 mars 2012 10 avril 2006 à 22:13
"tableau : array[1..10000] of char;" wow ça fait beaucoup tu ne trouve pas ? je doute qu'il puisse y avoir une interface electronique avec une telle capacité mets 512 c'est largement suffisant !!!
"Opencom('COM1 :baud=4800 parity=e data=7 stop=2');" 4800 bauds je ne sais pas d'où tu nous sors ça mais bon si tu es vraiment sûr que ton interface communique en 4800 bauds, lecteur de cartes magnetiques ?? lol !!
oui je sais dans les écoles trouve parfois des équipement digne de l'âge de pierre et je sais que quoi je parle car on avait à l'époque de simple TO7 qui est un cousin de l'ancêtre MO5 lol mais bon tant que c'est pas une console Atary2006 ^_^
dans TComport ya un évènement OnRxChar tu pourrais l'utilisé pour syncroniser ta lecture !!! et tu attends d'avoir "x" Octet(s) de ton choix
for i:=1 <=== t'es sur que c'est pas Zero ????????? to index-1 do
Edit1.Text := Edit1.Text + tableau[i];
par ce que ton Index -1 me fait dire que oui !!! et d'un
yyyyyyyyyyyyyyyyy28.5y6 <=== les yyyyy se sonts des caratères nulls normal en fait car tu ne vide pas ton tableau avant la lecture
Donc avant ton "while ( carac <> #13) do" tu mets
FillChar (tableau , SizeOf(Tableau) , 0); là on a un tableau clean
pour le reste "les données aléatoires" bah ma foi t'es vraiment sûr de la config du port ?, j'arrive pas à croire qu'on ce temps les profs demande un tel excercice sans de cachier des charges !!! et au minimum une documentation minimaliste de l'appareil !!! c'est fou ça !!, rien qu'en ma 1er Année electronique on avait 50 pages à digérés pour une boîte noir à base d'ampli opérationel avec comme outil un oscilloscope, et vas-y que je te mette du théorème de thévenin et vas-y que chte mettre du Norton(non pas l'anti-virus lol) et de la loi des noeuds mais au moins on avait des documentations à croire que les bon profs ça ne court plus les rues !!!
au fait ton prof il s'appelerait pas michel ? par le plus grand des hasard ?
dit lui qu'il est cool sont site "http://michelnet.free.fr/" ^_^