IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Commander un module Relais HID USB avec Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut Commander un module Relais HID USB avec Delphi
    Bonjour,
    Je souhaite commander un module 2 relais HW 343 avec une application Delphi en mode HID USB.
    Pour le moment j'arrive à lire dans le module.
    Nom : RelUsb1.jpg
Affichages : 891
Taille : 43,0 Ko
    Je n'ai pas trouvé le data sheet de ce module, la seule information que j'ai trouvé est que le PC doit envoyer les codes de commande suivants :
    00 FF 01 01 -> Relais1 ON
    00 FD 01 00 -> Relais1 OFF
    00 FE 02 02 -> Relais2 ON
    00 FD 02 00 -> Relais2 OFF
    Je cherche une personne qui à déjà réussi à actionner ces relais avec Delphi.

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Bonjour
    Rien vu passer sur ce sujet, mais peut-être que tu auras plus de chances en regardant les nombreuses ressources produites par Boian Mitov de mitov.com même s'il utilise essentiellement les composants qu'il a conçus pour les traitements et échanges d'informations. Il a forcément déjà dû se poser la question du HID.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut
    Bonjour,
    Merci pour le "tuyau".
    Bon WE.
    Pierre

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut
    Bonjour,
    Pour avancer, j'ai téléchargé Device Monitoring Studio pour espionner la liaison USB entre le programme (exe) fournis avec le relais et la carte Relais.
    Contrairement à ce que j'ai écrit au post1 la commande pour Relais1 ON est $FF $01 $00 $00 $00 $00 $00 $00.

    Voici le rapport Pour Relais1 ON
    Commande Relais1 ON.docx

    Avec la procedure TForm1.BtEnvoiClick j'arrive à visualiser ce qui se passe dans Packet 0, 1 et 3, mais après plus rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     unit U_RWUsb_2;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons,  ExtCtrls, ComCtrls,  AntHIDDeviceController;
    type
    TReport = packed record
      ReportID: byte; 
      Data: array [0..64] of byte;
    end;
     
       TCmdInfo = record
        ID: Integer;
        Flags: Byte;
        Changed: Byte;
      end;
     
      TForm1 = class(TForm)
        HidCtrl1: TAntHidDeviceController;
        M1: TMemo;
        BtInfo: TButton;
        BtEnvoi: TButton;
        procedure HidCtrl1DeviceChange(Sender: TObject);
        procedure BtInfoClick(Sender: TObject);
        procedure BtEnvoiClick(Sender: TObject);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      CurrentDevice: TAntHidDevice;
      Dev:TAntHidDevice;
       published
     
      end;
    var
      Form1: TForm1;
      MyDevice: TAntHidDevice;
      TabOut: array[0..64] of Byte;
    implementation
     
    uses U_Info_2;
     
    {$R *.dfm}
     
    Const
    //  MyVendorID = $16C0;   // Carte ES
    //  MyProductID = $05DF;
        MyVendorID = $16C0;   // Carte Relais
        MyProductID = $05DF;
     
    procedure TForm1.HidCtrl1DeviceChange(Sender: TObject);
    var
    Devtrouve:Boolean;
    begin
    try
      Dev.Free;
      DevTrouve:=false;
      While HidCtrl1.CheckOut(Dev) do begin
       M1.Lines.Add(Dev.ProductName);
       if Dev.ProductName = 'USBRelay2' then begin
       //if Dev.ProductName = 'Es_Carte_1' then begin
     
        CurrentDevice:= Dev;
        DevTrouve:=true;
       end;
      end;
       if DevTrouve then begin
       end
        else begin
       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;
    except
     Application.MessageBox('Erreur','ATTENTION !',MB_OK);
     end;
    end;
     
    procedure TForm1.BtInfoClick(Sender: TObject);
    begin
    F_Info.Show;
    end;
     
    procedure TForm1.BtEnvoiClick(Sender: TObject);
    var
     Buf: array [0..64] of Byte;
     Written: Cardinal;
     ToWrite: Cardinal;
    begin
     if Assigned(CurrentDevice) then begin
      Buf[0] := StrToIntDef( '0', 0);
      ToWrite := CurrentDevice.Caps.OutputReportByteLength;
      Buf[1]:= $FF;
      Buf[2]:= $01;
      Buf[3]:= $00;
      Buf[4]:= $00;
      Buf[5]:= $00;
      Buf[6]:= $00;
      Buf[7]:= $00;
      Buf[8]:= $00;
     //if not CurrentDevice.WriteFile(Buf, ToWrite, Written) then //Err := GetLastError;
      CurrentDevice.WriteFile(Buf, ToWrite, Written);
     end;
     end;
    end.
    Je bloque sur ce qu'il faut envoyer à partir de Packet 3.
    Qui peu m'aider à comprendre comment établir cette liaison HID USB ?

  5. #5
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    As tu pensé utiliser ce relais via le port série ?
    Normalement tu as cette possibilité, tu dois avoir un port de com virtuel dans le gestionnaire de périphérique, ce serait plus simple.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 32
    Par défaut
    Bonjour et merci pour la réponse.
    J'ai ces 2 relais dont un est commandé par un port USB HID l'autre en Port Com virtuel (bien plus facile à exploiter).
    Je ne vois pas comment commander le premier en Com ?

    Nom : Relais_Usb.jpg
Affichages : 703
Taille : 20,8 Ko

Discussions similaires

  1. Commande de relais par USB (sans driver – HID)
    Par gaby277 dans le forum Contribuez
    Réponses: 6
    Dernier message: 22/07/2022, 18h48
  2. Réponses: 1
    Dernier message: 09/07/2012, 11h56
  3. monter un clé USB avec la commande mount
    Par adilsoft dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/12/2009, 23h54
  4. hex et usb avec delphi
    Par Souhail_gsm dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 20/04/2009, 20h17
  5. application modulable avec Delphi .NET
    Par skywaukers dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 06/08/2007, 20h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo