Forum KNX francophone / English KNX forum

Version complète : Falcon SDK et Delphi
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour,

Quelqu'un a t'il déjà utilisé le SDK de Falcon avec Delphi ?

Merci d'avance
Thierry
Bonjour Thierry,

J'ai présenté sur le forum un wrapper C# pour WinDev 28. Grâce à cette méthode, j'ai également réussi à écrire un code en Delphi qui se connecte au bus et effectue diverses opérations de commutation.

Je vais bientôt fournir plus de détails.
Bonjour Thierry,

J'ai créé un petit projet exemple en Delphi qui montre comment cela fonctionne globalement. Cela devrait déjà beaucoup t'aider. Si tu as des questions, n'hésite pas à me contacter.

Avant d'utiliser, il est nécessaire d'enregistrer la DLL signée du Falcon SDK :
1. Copiez le dossier "Falcon SDK 6 Signé" dans vos documents.
2. Ouvrez l'invite de commande (CMD) en tant qu'administrateur.
3. Allez dans le dossier C:\Windows\Microsoft.NET\Framework\v4.0.30319.
4. Enregistrez la DLL avec la commande suivante : regasm "C:\Users\Utilisateur\Documents\Falcon SDK 6 Signé\KNXlib.dll" /tlb:KNXlib.tlb /codebase
5. Ensuite, allez dans le dossier C:\Windows\Microsoft.NET\Framework64\v4.0.30319.
6. Enregistrez à nouveau la DLL avec la même commande : regasm "C:\Users\Utilisateur\Documents\Falcon SDK 6 Signé\KNXlib.dll" /tlb:KNXlib.tlb /codebase
7. Si un message d'erreur indique que l'enregistrement a été bloqué, il peut être nécessaire de désactiver la fonction "Accès protégé aux dossiers".
8. Vous pouvez vérifier l'enregistrement réussi dans le Registre :
   Appuyez sur [Windows]+R et tapez regedit pour ouvrir l'éditeur de registre.
   Vérifiez les chemins suivants :
   Ordinateur\HKEY_CLASSES_ROOT\CLSID{E45D1244-ABCD-4E1D-8D9F-9992B7F017A2} 
   Ordinateur\HKEY_CLASSES_ROOT\WOW6432Node\CLSID{E45D1244-ABCD-4E1D-8D9F-9992B7F017A2}


Les commandes sont identiques à celles de WinDev, mais la gestion des Assemblies .NET dans Delphi est un peu différente. Je vais maintenant reprendre quelques exemples de mon code source pour illustrer les commandes disponibles :

Connectez-vous à la passerelle IP :
MyKNXDotNet := CreateOleObject('KNXlib.KnxController');
MyKNXDotNet.Connect('192.168.178.42', 3671, False)


Connectez-vous à la passerelle IP sécurisée :
MyKNXDotNet := CreateOleObject('KNXlib.KnxController');
MyKNXDotNet.ConnectSecure('192.168.178.150', 3671, False, '1.1.243', 'file.knxkeys', 'password')

Envoyer DPT1 :
MyKNXDotNet.WriteBool('1/0/0' , True)

Envoyer DPT9.1 :
MyKNXDotNet.WriteValueToDPT(Groupaddress, value as string, DPTupper value, DPTlower value)
MyKNXDotNet.WriteValueToDPT('11/7/4', '20.5', 9, 1)

A lire :
MyKNXDotNet.ReadValueAsync('11/7/4')

Envoi DPT5.1 :
MyKNXDotNet.WriteValueToDPT('6/0/9', '90', 5, 1)

Envoi DPT5.4 :
MyKNXDotNet.WriteValueToDPT('6/0/9', '240', 5, 4)

Lire DPT9.1 :
MyKNXDotNet.ReadValue('11/7/4', 9, 1)

Envoyer la date actuelle :
MyKNXDotNet.WriteDate('11/5/0')

Envoyer l'heure actuelle :
MyKNXDotNet.WriteTime('11/5/1')

Envoyer la date actuelle en tant que DPT16 :
MyKNXDotNet.WriteTimeAsText('11/6/1')


Voici le lien de téléchargement :
https://www.knx-board.org/download.php?f...rapper.zip

Cordialement,
Guido
Bonjour,
j'ai légèrement modifié le wrapper afin qu'il dispose de plus de fonctionnalités.

Mise à jour vers la version 2.6
- Les informations sur l'adresse de groupe ainsi que l'unité DPT sont désormais transmises via le port TCP, à condition que le fichier XML soit disponible.
- Le codage pour l'envoi et la réception des données via TCP a été modifié de ASCII à UTF-8.
- L'appel de la méthode Version() renvoie désormais la version du pilote.

Des exemples simples pour Android Studio et Android MAUI sont également inclus, démontrant un contrôle via le port TCP/IP.

Lien de téléchargement :
https://www.knx-board.org/download.php?f...rapper.zip
Bonjour,

J'ai ajouté quelques nouvelles fonctionnalités, notamment des méthodes pour l'email, FTP et SFTP. Celles-ci simplifient grandement le transport des données, car elles rendent les processus correspondants plus simples.


Méthodes Email :

SendTextEmail(senderName: System.String, emailAddress: System.String, password: System.String, toAddress: System.String, subject: System.String, body: System.String)
Description :
Cette méthode envoie un email simple en texte brut à l'adresse du destinataire spécifiée, avec le sujet et le corps du message donnés.

SendHtmlEmail(senderName: System.String, emailAddress: System.String, password: System.String, toAddress: System.String, subject: System.String, htmlBody: System.String)
Description :
Cette méthode envoie un email formaté en HTML à l'adresse du destinataire spécifiée, avec le sujet et le contenu HTML donnés.

ReadEmailByIndex(emailAddress: System.String, password: System.String, emailIndex: System.Int32)
Description :
Cette méthode lit l'email à la position d'index spécifiée dans la boîte de réception du compte email donné.

GetEmailCount(emailAddress: System.String, password: System.String)
Description :
Cette méthode renvoie le nombre total d'emails dans la boîte de réception du compte email spécifié.

DeleteEmailByIndex(emailAddress: System.String, password: System.String, emailIndex: System.Int32)
Description :
Cette méthode supprime un email de la boîte de réception en fonction de l'index spécifié.


Méthodes FTP :

FtpClientUserData(newhost: System.String, newusername: System.String, newpassword: System.String)
Description :
Cette méthode définit les informations de connexion FTP (hôte, nom d'utilisateur et mot de passe) pour le client FTP.

UploadFtpFile(localFilePath: System.String, remoteFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis un chemin local vers le serveur FTP distant spécifié.

DownloadFtpFile(remoteFilePath: System.String, localFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis le serveur FTP distant vers le chemin local spécifié.

DeleteFtpFile(remoteFilePath: System.String)
Description :
Cette méthode supprime un fichier du serveur FTP distant.

ListFtpDirectory(remoteDirectory: System.String)
Description :
Cette méthode liste tous les fichiers du répertoire distant spécifié sur le serveur FTP.


Méthodes SFTP :

SFtpClientUserData(newhost: System.String, newport: System.Int32, newusername: System.String, newpassword: System.String)
Description :
Cette méthode définit les informations de connexion SFTP (hôte, port, nom d'utilisateur et mot de passe) pour le client SFTP.

UploadSftpFile(localFilePath: System.String, remoteFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis un chemin local vers le serveur SFTP distant spécifié.

DownloadSftpFile(remoteFilePath: System.String, localFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis le serveur SFTP distant vers le chemin local spécifié.

DeleteSftpFile(remoteFilePath: System.String)
Description :
Cette méthode supprime un fichier du serveur SFTP distant.

ListSftpDirectory(remoteDirectory: System.String)
Description :
Cette méthode liste tous les fichiers du répertoire distant spécifié sur le serveur SFTP.


Quelques exemples de code :
Code :
 string senderName = "KNXlib Send you a message";
 string email = "karl.mustermann@web.de";
 string password = "123456";
 string toAddress = "max.mustermann@web.de";
 string subject = "Visu Status";
 string body = "Dies ist eine Test E-Mail.";
          
 string sendResult = knxController.SendTextEmail(senderName, email, password, toAddress, subject, body + downloadResult);

Code :
 string senderName = "KNXlib Send you a message";
 string email = "karl.mustermann@web.de";
 string password = "123456";
 string toAddress = "max.mustermann@web.de";
 string subject = "Visu Status";
 string htmlBody = @"
                     <html>
                        <body>
                           <h1>Dies ist eine Test HTML E-Mail</h1>
                           <p>Dies ist der <b>HTML Inhalt</b> der E-Mail.</p>
                           <p>Weitere Informationen finden Sie <a href='https://mustermann.de'>hier</a>.</p>
                        </body>
                     </html>";

 string sendResult2 = knxController.SendHtmlEmail(senderName, email, password, toAddress, subject, htmlBody);

Code :
 knxController.FtpClientUserData("ftp://asfasrt4tfdyf.myfritz.net", "FTP Mustermann", "123456");
 var directoryList = knxController.ListFtpDirectory("/Daten");
 foreach (var file in directoryList)
 {
     Console.WriteLine(file);
 }
 var downloadResult = knxController.DownloadFtpFile("/Daten/readme.txt", "C:\\Users\\Guido\\Desktop\\downloaded.txt");

Code :
 knxController.SFtpClientUserData("hosting.vodafone.de", 22,"admin@dsafdasfc6stf.vodafone.de", "123456");
 var directoryList = knxController.ListSftpDirectory("public_html/");
 foreach (var file in directoryList)
 {
     Console.WriteLine(file);
 }
 var downloadResult2 = knxController.DownloadSftpFile("log.txt", "C:\\Users\\Guido\\Desktop\\downloaded.txt");


Lien de téléchargement v3.0 :
KNXlib.dll