Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Rubrique "Lazarus" ?
Bonjour,
Je ne vois pas trop clair dans tes explications.
Si cela peut te servir, je joint ici le détail d'un projet qui fonctionne et qui utilise un PIC 18F4550 programmé en MikroBasic sur une carte Easy Pic5.
Ansi qu'une appli sous Delphi 7 Pro et Windows 10.
Je vais aussi préparer un code Hex très simple qui te permet de faire des tests.
Je ne vois pas trop clair dans tes explications.
Si cela peut te servir, je joint ici le détail d'un projet qui fonctionne et qui utilise un PIC 18F4550 programmé en MikroBasic sur une carte Easy Pic5.
Ansi qu'une appli sous Delphi 7 Pro et Windows 10.
Je vais aussi préparer un code Hex très simple qui te permet de faire des tests.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Rubrique "Lazarus" ?
-
folkeu08
Débutant- Messages : 45
- Âge : 57
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour Pspic,
Déjà merci de ton aide.
vite, je répond avant que tu ne te lance dans un travail qui fonctionne déjà de mon côté :
Le source et le hex compilé sous Mikropascal que je posséde pour le 18f4550 fonctionne.
L'application que j'ai commencé dans Lazarus détecte bien ma carte à 18f4550 contenant le hex ci-desssus.
J'ai repris la démo du source FPC-USB-HID que j'ai inséré et qui affiche le listing des cartes USB en HID dans un TMemo (CF ci-dessous la carte de Sonelec est bien détectée) :
Je cherche à indiquer dans le TLabel dont le fond est rouge que la carte est bien "connectée" lorsqu'elle est présente et "non connectée" lorsqu'elle n'y est pas.
Ensuite pour ce qui est du dialogue, l'auteur du JCVLHIDControlleur réécris pour lazarus m'a indiqué comment lire et écrive à travers le bus dans le post 16 :
Comment la carte est détectée et dialoguer avec
Je bute simplement sur cet affichage de carte connectée ou non.
François
Déjà merci de ton aide.
vite, je répond avant que tu ne te lance dans un travail qui fonctionne déjà de mon côté :
Le source et le hex compilé sous Mikropascal que je posséde pour le 18f4550 fonctionne.
L'application que j'ai commencé dans Lazarus détecte bien ma carte à 18f4550 contenant le hex ci-desssus.
J'ai repris la démo du source FPC-USB-HID que j'ai inséré et qui affiche le listing des cartes USB en HID dans un TMemo (CF ci-dessous la carte de Sonelec est bien détectée) :
Je cherche à indiquer dans le TLabel dont le fond est rouge que la carte est bien "connectée" lorsqu'elle est présente et "non connectée" lorsqu'elle n'y est pas.
Ensuite pour ce qui est du dialogue, l'auteur du JCVLHIDControlleur réécris pour lazarus m'a indiqué comment lire et écrive à travers le bus dans le post 16 :
Comment la carte est détectée et dialoguer avec
Je bute simplement sur cet affichage de carte connectée ou non.
François
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Rubrique "Lazarus" ?
-
folkeu08
Débutant- Messages : 45
- Âge : 57
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Re,
Je suis sur le bonne voie et c'est bien dans USB2 qu'il me faut venir ajouter des choses.
Au lancement de l'application, j'ai mon label qui est par défaut à "non détectée". Avant de lancer l'appli, je plug la carte et je lance l'appli, mon label passe à "détecté".
Pour obtenir cela, j'ai ajouté dans l'entête de USB2 un variable comme cela :
Puis plus loin dans le code dans la procedure TUSB.DeviceChange(Sender:TObject);, j'ai ajouté :
et dans ma main à l'affichage :
Detection_Label.Caption := moi;
Il me faut améliorer car si j'ôte la carte le label ne change pas d'état.
normal, mon hypothèse n'était pas fausse mais jusqu'à maintenant, je voyais pas trop comment faire.
@Pspic : Juste l'aide pour faire changer l'état du label lorsque la carte est insérée ou enlevée.
Mais je continue aussi de mon côté.
François
Edit quelques temps après
PS : comment faire pour remplacer Moi := 'Equipement Sonelec /PIC18Fx550 non détecté'; par directement detection_Label.Caption := 'Equipement Sonelec /PIC18Fx550 non détecté';
car si je déclare ma main_Unit dans le uses de USB2 , il veut pas compiler car il m'indique des références circulaires.
Je suis sur le bonne voie et c'est bien dans USB2 qu'il me faut venir ajouter des choses.
Au lancement de l'application, j'ai mon label qui est par défaut à "non détectée". Avant de lancer l'appli, je plug la carte et je lance l'appli, mon label passe à "détecté".
Pour obtenir cela, j'ai ajouté dans l'entête de USB2 un variable comme cela :
Code : Tout sélectionner
unit usb2;
interface
uses
SysUtils, Classes, SyncObjs
{$IFDEF usegenerics}
,fgl
{$ENDIF}
{$ifdef Unix}
,usbcontroller
{$else}
,JvHidControllerClass
{$endif}
;
const
INIFILENAME = 'settings.ini';
[b] var
moi : string; [/b]
Puis plus loin dans le code dans la procedure TUSB.DeviceChange(Sender:TObject);, j'ai ajouté :
Code : Tout sélectionner
if HidDev.IsPluggedIn AND NOT HidDev.IsCheckedOut then
begin
AddInfo('New device that has not been checked out.');
[b]Moi := 'Equipement Sonelec /PIC18Fx550 détecté';[/b]
DeviceArrival(HidDev);
end;
if NOT HidDev.IsPluggedIn AND HidDev.IsCheckedOut then
begin
AddInfo('Checkedout device that has been unplugged.');
[b]Moi := 'Equipement Sonelec /PIC18Fx550 non détecté';[/b]
DeviceRemoval(HidDev);
end;
et dans ma main à l'affichage :
Detection_Label.Caption := moi;
Il me faut améliorer car si j'ôte la carte le label ne change pas d'état.
normal, mon hypothèse n'était pas fausse mais jusqu'à maintenant, je voyais pas trop comment faire.
@Pspic : Juste l'aide pour faire changer l'état du label lorsque la carte est insérée ou enlevée.
Mais je continue aussi de mon côté.
François
Edit quelques temps après
PS : comment faire pour remplacer Moi := 'Equipement Sonelec /PIC18Fx550 non détecté'; par directement detection_Label.Caption := 'Equipement Sonelec /PIC18Fx550 non détecté';
car si je déclare ma main_Unit dans le uses de USB2 , il veut pas compiler car il m'indique des références circulaires.
Rubrique "Lazarus" ?
-
folkeu08
Débutant- Messages : 45
- Âge : 57
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Re suite,
Je pense avoir la solution pour afficher les changements de dėtection dans le label en passant par un timer. La problematique est la même que pour afficher l'heure. Sans timer, l'heure affichée sera toujours la même correspondant a l'heure d'affichage de la form sur un ėvenement "OnShow". Avec le timer, le rafraichissement sera perpetuel.
Je teste tout å l'heure. J'ai pas ma machine sous la main mais l'étincelle vient d'arriver.
A+
Je pense avoir la solution pour afficher les changements de dėtection dans le label en passant par un timer. La problematique est la même que pour afficher l'heure. Sans timer, l'heure affichée sera toujours la même correspondant a l'heure d'affichage de la form sur un ėvenement "OnShow". Avec le timer, le rafraichissement sera perpetuel.
Je teste tout å l'heure. J'ai pas ma machine sous la main mais l'étincelle vient d'arriver.
A+
Rubrique "Lazarus" ?
Bonjour,
Tu peux utiliser la propriété HidCtrlDeviceChange pour détecter et afficher l'état de la connexion, voir ci-dessous.
Tu peux utiliser la propriété HidCtrlDeviceChange pour détecter et afficher l'état de la connexion, voir ci-dessous.
Code : Tout sélectionner
procedure TForm1.HidCtrl1DeviceChange(Sender: TObject);
var
Devtrouve:Boolean;
begin
try
Dev.Free;
DevTrouve:=false;
While HidCtrl1.CheckOut(Dev) do begin
if (Dev.Attributes.ProductID = $0606) and (Dev.Attributes.VendorID = $1636) then begin
CurrentDevice:= Dev;
DevTrouve:=true;
end;
end;
if DevTrouve then begin
LabelEtaConnexion.Text:='Connecté'; Affiche l'état de la connexion
end
else begin
LabelEtaConnexion.Text:='Deconnecté'; Affiche l'état de la connexion
if MessageDlg('Carte non branchée ou hors tension'+chr(13)+
'Brancher la carte et choisir OUI'+ Chr(13)+
'Pour quitter choisir NON',
mtWarning , [mbYes, mbNo], 0) = mrYes then begin
Dev.Free;
Application.Restore;
HidCtrl1.DeviceChange;
end
else
Form1.Close;
end;
end;
Rubrique "Lazarus" ?
-
folkeu08
Débutant- Messages : 45
- Âge : 57
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour Pspic,
Merci de l'intêret pour mon soucis.
Au vu te ton retour, je n'ai peut être pas été assez clair dans l'exposé des choses disponibles alors je vais les préciser.
Le composant JvclHIDContoller ré-écris pour Lazarus n'est pas un composant tiers comme il est souvent utilisé par ajout dans la palette des composants.
Je n'ai donc pas un composant à ajouter dans ma form avec des propriétés et des événements.
Je n'ai juste qu'à déclarer l'utilisation d'une unité (usb2) dans ma MainForm et indiquer le chemin de la bibliothèque dans les options du projet. Cela me déroute
Pspic, Je ne peux utiliser ton exemple qui fait référence à un évènement du composant comme il est possible d'avoir avec un Tlabel par exemple.
Les procédures :
Lorsque j'utilise ce bout de code dans ma main :
if HidDev.IsPluggedIn AND NOT HidDev.IsCheckedOut then
il me dit ne pas connaître IsPluggedIn et IsCheckedOud
Pour ceux qui voudraient s'y essayer, je vous mets en pièce jointe un tuto pour installer Lazarus en 100% portable sur une clé USB pour ne pas polluer votre PC d'une installation non voulue. Rien ne viendra s'enregistrer sur votre disque dur. C'est ainsi que j'utilise Lazarus pour essayer dès qu'une idée me vient. Le clé USB est dans ma poche.
François
Merci de l'intêret pour mon soucis.
Au vu te ton retour, je n'ai peut être pas été assez clair dans l'exposé des choses disponibles alors je vais les préciser.
Le composant JvclHIDContoller ré-écris pour Lazarus n'est pas un composant tiers comme il est souvent utilisé par ajout dans la palette des composants.
Je n'ai donc pas un composant à ajouter dans ma form avec des propriétés et des événements.
Je n'ai juste qu'à déclarer l'utilisation d'une unité (usb2) dans ma MainForm et indiquer le chemin de la bibliothèque dans les options du projet. Cela me déroute
Pspic, Je ne peux utiliser ton exemple qui fait référence à un évènement du composant comme il est possible d'avoir avec un Tlabel par exemple.
Les procédures :
- procedure DeviceArrival(HidDev: TJvHidDevice);
procedure DeviceRemoval(HidDev: TJvHidDevice);
procedure DeviceChange(Sender:TObject);
Lorsque j'utilise ce bout de code dans ma main :
if HidDev.IsPluggedIn AND NOT HidDev.IsCheckedOut then
il me dit ne pas connaître IsPluggedIn et IsCheckedOud
Pour ceux qui voudraient s'y essayer, je vous mets en pièce jointe un tuto pour installer Lazarus en 100% portable sur une clé USB pour ne pas polluer votre PC d'une installation non voulue. Rien ne viendra s'enregistrer sur votre disque dur. C'est ainsi que j'utilise Lazarus pour essayer dès qu'une idée me vient. Le clé USB est dans ma poche.
François
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Rubrique "Lazarus" ?
Rubrique "Lazarus" ?
Rubrique "Lazarus" ?
-
folkeu08
Débutant- Messages : 45
- Âge : 57
- Enregistré en : novembre 2017
- Localisation : Ardennes (08)
- Contact :
Bonjour à tous,
Je suis en pleine rédaction du tuto de l'USB en mode HID que je pense terminer pour le 15 novembre prochain.
J'externalise l'article sur mon site pour pouvoir le modifier et le compléter à souhait.
Il sera ici : http://www.club.ac-news.fr/index.php/fr ... -hid-fr-fr
Cet article va me permettre de poursuivre le développement du pilote FM 88-108Mhz qui sera publié également en externe ici :
http://www.club.ac-news.fr/index.php/fr ... ote-tx-fm1
Fanch
Je suis en pleine rédaction du tuto de l'USB en mode HID que je pense terminer pour le 15 novembre prochain.
J'externalise l'article sur mon site pour pouvoir le modifier et le compléter à souhait.
Il sera ici : http://www.club.ac-news.fr/index.php/fr ... -hid-fr-fr
Cet article va me permettre de poursuivre le développement du pilote FM 88-108Mhz qui sera publié également en externe ici :
http://www.club.ac-news.fr/index.php/fr ... ote-tx-fm1
Fanch
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 89 invités