Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Falcon SDK et Delphi
#1
Bonjour,

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

Merci d'avance
Thierry
mon blog : Appartement EIB/KNX
Répondre
#2
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.
Répondre
#3
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
Répondre
#4
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
Répondre
#5
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
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)