// Attention : Le fonctionnement du programme requiert la DLL nommée : mcHID.dll. // N'oubliez pas d'inclure dans le même répertoire de votre programme cette fameuse DLL !!! unit FormMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; const // input et out buffer size constants... BufferInSize = 4; BufferOutSize = 4; type // input and output buffers... TBufferIn = array[0..BufferInSize] of byte; TBufferOut = array[0..BufferOutSize] of byte; // main form TForm1 = class(TForm) GroupBox1: TGroupBox; SpeedButton1: TSpeedButton; GroupBox2: TGroupBox; Label1: TLabel; Label2: TLabel; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; SpeedButton8: TSpeedButton; SpeedButton9: TSpeedButton; SpeedButton10: TSpeedButton; SpeedButton11: TSpeedButton; SpeedButton12: TSpeedButton; SpeedButton13: TSpeedButton; SpeedButton14: TSpeedButton; SpeedButton15: TSpeedButton; SpeedButton16: TSpeedButton; SpeedButton17: TSpeedButton; Panel1: TPanel; SpeedButton2: TSpeedButton; SpeedButton18: TSpeedButton; SpeedButton19: TSpeedButton; SpeedButton20: TSpeedButton; SpeedButton21: TSpeedButton; SpeedButton22: TSpeedButton; SpeedButton23: TSpeedButton; SpeedButton24: TSpeedButton; SpeedButton25: TSpeedButton; SpeedButton26: TSpeedButton; SpeedButton27: TSpeedButton; SpeedButton28: TSpeedButton; SpeedButton29: TSpeedButton; SpeedButton30: TSpeedButton; SpeedButton31: TSpeedButton; SpeedButton32: TSpeedButton; SpeedButton33: TSpeedButton; SpeedButton34: TSpeedButton; SpeedButton35: TSpeedButton; SpeedButton36: TSpeedButton; SpeedButton37: TSpeedButton; SpeedButton38: TSpeedButton; SpeedButton39: TSpeedButton; SpeedButton40: TSpeedButton; SpeedButton41: TSpeedButton; SpeedButton42: TSpeedButton; SpeedButton43: TSpeedButton; SpeedButton44: TSpeedButton; SpeedButton45: TSpeedButton; SpeedButton46: TSpeedButton; SpeedButton47: TSpeedButton; SpeedButton48: TSpeedButton; GroupBox3: TGroupBox; SpeedButton49: TSpeedButton; SpeedButton50: TSpeedButton; procedure FormCreate(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); procedure SpeedButton5Click(Sender: TObject); procedure SpeedButton6Click(Sender: TObject); procedure SpeedButton7Click(Sender: TObject); procedure SpeedButton8Click(Sender: TObject); procedure SpeedButton9Click(Sender: TObject); procedure SpeedButton10Click(Sender: TObject); procedure SpeedButton11Click(Sender: TObject); procedure SpeedButton12Click(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure SpeedButton14Click(Sender: TObject); procedure SpeedButton15Click(Sender: TObject); procedure SpeedButton16Click(Sender: TObject); procedure SpeedButton17Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton18Click(Sender: TObject); procedure SpeedButton19Click(Sender: TObject); procedure SpeedButton20Click(Sender: TObject); procedure SpeedButton21Click(Sender: TObject); procedure SpeedButton22Click(Sender: TObject); procedure SpeedButton23Click(Sender: TObject); procedure SpeedButton24Click(Sender: TObject); procedure SpeedButton25Click(Sender: TObject); procedure SpeedButton26Click(Sender: TObject); procedure SpeedButton27Click(Sender: TObject); procedure SpeedButton28Click(Sender: TObject); procedure SpeedButton29Click(Sender: TObject); procedure SpeedButton30Click(Sender: TObject); procedure SpeedButton31Click(Sender: TObject); procedure SpeedButton32Click(Sender: TObject); procedure SpeedButton33Click(Sender: TObject); procedure SpeedButton34Click(Sender: TObject); procedure SpeedButton35Click(Sender: TObject); procedure SpeedButton36Click(Sender: TObject); procedure SpeedButton37Click(Sender: TObject); procedure SpeedButton38Click(Sender: TObject); procedure SpeedButton39Click(Sender: TObject); procedure SpeedButton40Click(Sender: TObject); procedure SpeedButton41Click(Sender: TObject); procedure SpeedButton42Click(Sender: TObject); procedure SpeedButton43Click(Sender: TObject); procedure SpeedButton44Click(Sender: TObject); procedure SpeedButton45Click(Sender: TObject); procedure SpeedButton46Click(Sender: TObject); procedure SpeedButton47Click(Sender: TObject); procedure SpeedButton48Click(Sender: TObject); procedure SpeedButton49Click(Sender: TObject); procedure SpeedButton50Click(Sender: TObject); private FBufferOut:TBufferOut; public end; var Form1: TForm1; implementation uses cUSBInterface, cUSBInterfaceTypes; const // VENDOR et PRODUCT ID. // Attention, ne pas changer ces 2 constantes sinon l'interface ne sera plus reconnue. VENDOR_ID = 1240; PRODUCT_ID = 0003; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Connect(Application.Handle); // Indispensable !!! end; //*************************** //* Gestion USB des boutons * //*************************** //** GROUPE ON ** procedure TForm1.SpeedButton1Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 1; // Sortie S1 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton3Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 2; // Sortie S2 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton4Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 3; // Sortie S3 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton5Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 4; // Sortie S4 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton6Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 5; // Sortie S5 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton7Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 6; // Sortie S6 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton8Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 7; // Sortie S7 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton9Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 8; // Sortie S8 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton10Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 9; // Sortie S9 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton11Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 10; // Sortie S10 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton12Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 11; // Sortie S11 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton13Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 12; // Sortie S12 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton14Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 13; // Sortie S13 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton15Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 14; // Sortie S14 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton16Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 15; // Sortie S15 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton17Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 1; // Groupe de commande ON FBufferOut[2] := 16; // Sortie S16 activée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; //** GROUPE OFF ** procedure TForm1.SpeedButton2Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 1; // Sortie S1 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton18Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 2; // Sortie S2 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton19Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 3; // Sortie S3 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton20Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 4; // Sortie S4 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton21Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 5; // Sortie S5 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton22Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 6; // Sortie S6 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton23Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 7; // Sortie S7 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton24Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 8; // Sortie S8 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton25Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 9; // Sortie S9 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton26Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 10; // Sortie S10 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton27Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 11; // Sortie S11 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton28Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 12; // Sortie S12 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton29Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 13; // Sortie S13 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton30Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 14; // Sortie S14 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton31Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 15; // Sortie S15 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton32Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 2; // Groupe de commande OFF FBufferOut[2] := 16; // Sortie S16 désactivée. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; //** GROUPE TOGGLE ** procedure TForm1.SpeedButton33Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 1; // Sortie S1. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton34Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 2; // Sortie S2. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton35Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 3; // Sortie S3. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton36Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 4; // Sortie S4. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton37Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 5; // Sortie S5. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton38Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 6; // Sortie S6. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton39Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 7; // Sortie S7. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton40Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 8; // Sortie S8. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton41Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 9; // Sortie S9. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton42Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 10; // Sortie S10. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton43Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 11; // Sortie S11. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton44Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 12; // Sortie S12. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton45Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 13; // Sortie S13. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton46Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 14; // Sortie S14. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton47Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 15; // Sortie S15. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; procedure TForm1.SpeedButton48Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 3; // Groupe de commande Toggle FBufferOut[2] := 16; // Sortie S16. DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; //** GROUPE Commandes avancées ON ** procedure TForm1.SpeedButton49Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 4; // Groupe de commandes avancées : Toutes sorties ON DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; //** GROUPE Commandes avancées OFF ** procedure TForm1.SpeedButton50Click(Sender: TObject); var DevHandle:cardinal; begin FBufferOut[1] := 5; // Groupe de commandes avancées : Toutes sorties OFF DevHandle := GetHandle(VENDOR_ID, Product_ID); // Transfert USB PC vers PIC. Write(DevHandle,@FBufferOut); end; end.