Problème envoi asynchrone en liaison série avec le composant Comport

saknight Messages postés 9 Date d'inscription samedi 11 juillet 2009 Statut Membre Dernière intervention 11 avril 2010 - 11 avril 2010 à 16:37
saknight Messages postés 9 Date d'inscription samedi 11 juillet 2009 Statut Membre Dernière intervention 11 avril 2010 - 11 avril 2010 à 23:49
Bonjour à tous. Je vous expose directement mon problème, je veux envoyer un caractère à un PIC 16F877 mais lorsque sous delphi j'utilise la fonction ComPort1.WriteStrAsync avec les paramètres, il me dit : "Les types des paramètres VAR originaux et formels doivent etre identiques"
et "Identificateur non-déclaré : InitAsync" (pareil pour DoneAsync)
Voici le code


unit Connection;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CPortCtl, StdCtrls, ExtCtrls, CPort, Robot;

type
Tfmconnecter = class(TForm)
ComPortRobot: TComPort;
ComComboBox1: TComComboBox;
ComComboBox2: TComComboBox;
ComComboBox3: TComComboBox;
ComComboBox4: TComComboBox;
ComComboBox5: TComComboBox;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
ComComboBox6: TComComboBox;
btconnecter: TButton;
ComLed1: TComLed;
Panel7: TPanel;
btdeconnecter: TButton;
ComDataPacket1: TComDataPacket;
Edtrame: TEdit;
procedure btconnecterClick(Sender: TObject);
procedure btdeconnecterClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EdtrameChange(Sender: TObject);
procedure ComPortRobotTxEmpty(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques}
end;

Type
PAsync = ^string;

var
fmconnecter: Tfmconnecter;
AsyncPtr: PAsync;

implementation

{$R *.dfm}

procedure Tfmconnecter.btconnecterClick(Sender: TObject);
begin
ComportRobot.Connected := not ComportRobot.Connected;
btconnecter.Enabled := false;
btdeconnecter.Enabled := true;
robot.fmRobot.Connecter.Caption := 'Déconnecter';
end;

procedure Tfmconnecter.btdeconnecterClick(Sender: TObject);
begin
ComportRobot.Connected := not ComportRobot.Connected;
btconnecter.Enabled := true;
btdeconnecter.Enabled := false;
robot.fmRobot.Connecter.Caption := 'Connecter';
end;

procedure Tfmconnecter.FormCreate(Sender: TObject);
begin
if comportrobot.Connected = true then
begin
btconnecter.Enabled := false;
btdeconnecter.Enabled := true;
end
else if comportrobot.Connected = false then
begin
btconnecter.Enabled := true;
btdeconnecter.Enabled := false;
end;
end;

procedure Tfmconnecter.EdtrameChange(Sender: TObject);
begin
InitAsync(AsyncPtr);
ComPortRobot.WriteStrAsync(Edtrame.Text,AsyncPtr);
end;

procedure Tfmconnecter.ComPortRobotTxEmpty(Sender: TObject);
begin
If Assigned(AsyncPtr) Then
DoneAsync(AsyncPtr);
end;

end.


Voila je me suis aidé du tuto de nono40 mais sans succès.
Si vous pouvez m'aider pour ce problème ça serait hyper sympa parce que ça bloque mon PPE qui compte pour le bac.
Merci

1 réponse

saknight Messages postés 9 Date d'inscription samedi 11 juillet 2009 Statut Membre Dernière intervention 11 avril 2010
11 avril 2010 à 23:49
j'ai trouvé le code de Init et Done donc ce problème ne se pose plus par contre il reste le problème des paramètres originaux et formels...
0
Rejoignez-nous