Après avoir annoncé la preview de la version 2.0 de la librairie C++ il y a deux semaines, voici la version 2.0 de la librairie C#, Python et Visual Basic .NET. Elle aussi disponible en preview.
Tout comme pour la version C++ la nouveauté de la version 2.0 est l'ajout du support SSL/TLS. Grâce à cette fonctionnalité il est possible de complètement chiffrer la communication entre l'application qui utilise la librairie est le VirtuaHub ou le GatewayHub.
Pour utiliser une connexion sécurisée, il suffit d'ajouter le préfixe "WSS://" à l'adresse du hub lors de l'appel à YAPI::RegisterHub. Le préfixe WSS signifie "WebSocket Secure" et configure la librairie pour communiquer à l'aide du protocole WebSocket sur une connexion chiffrée par SSL/TLS.
Voici par exemple, le code pour initialiser une connexion chiffrée avec un VirtualHub v2.0 en C#:
if (YAPI.RegisterHub("wss://vhub.example.com", ref errmsg) != YAPI.SUCCESS) {
Console.WriteLine("RegisterHub error: " + errmsg);
Environment.Exit(0);
}
Le même code en Python:
if YAPI.RegisterHub("wss://vhub.example.com", errmsg) != YAPI.SUCCESS:
sys.exit("RegisterHub error: " + errmsg.value)
Et pour finir voici la version Visual Basic .NET:
If (YAPI.RegisterHub("wss://vhub.example.com", errmsg) <> YAPI_SUCCESS) Then
Console.WriteLine("RegisterHub error: " + errmsg)
Application.Exit()
End If
Notez qu'il est aussi possible de forcer l'utilisation de l'ancien protocole HTTP, mais en utilisant une connexion chiffrée, à l'aide du préfix "https://"
Backward compatible
Comme à notre habitude, nous avons veillé à maintenir la compatibilité ascendante, afin de faciliter la transition vers cette nouvelle version. En interne, beaucoup de choses ont changé afin de supporter le chiffrement de bout en bout, toutefois les classes, méthodes et fonctions déjà documentées de la version 1.0 sont toujours présentes et fonctionne.
Si vous avez déjà une application qui fonctionne avec la version 1.10 de la librairie Yoctopuce, la transition à la version 2.0 est extrêmement simple. Il faut simplement remplacer les fichiers sources de la librairie Yoctopuce avec ceux de la version 2.0 et recompiler l'application. L'application fonctionnera de la même manière.
Évidemment, si vous voulez utiliser le chiffrement des communications il faudra ajouter le préfixe "wss://" ou "https://" lors de l'appel à la méthode RegisterHub.
Download
Pour l'instant, ces trois libraires sont uniquement disponibles sous forme d'archive .zip sur notre page Librairies dans la nouvelle section Preview.
Quand ces librairies seront suffisamment stables nous les publierons sur GitHub, PiPY et NuGet.
YAPI 2.0
Si vous comparez les fichiers sources des versions 1.10 et 2.0 de ces librairies, vous ne verrez que très peu de changement. La raison est que l'essentiel des changements et de nouvelles fonctionnalités se situent dans la couche de bas niveau "YAPI".
Cette couche de bas niveau est écrite en C et seule une version compilée sous la forme d'une librairie dynamique ou d'une DLL est incluse dans l'archive. Le code source de cette librairie n'est pas inclus dans l'archive pour des raisons de clarté, mais il s’agit en fait du même code qui est utilisé dans la librairie C++ v2.0. Si vous avez besoin d'inspecter le code ou de le recompiler ces librairies, il vous suffit de télécharger la librairie C++ et de la recompiler.
Limitations
Actuellement, le support SSL de la librairie Python n'est pas disponible sur les plates-formes mips et mipsel.
Pour que la librairie puisse établir un lien chiffré, il faut que les deux parties supportent SSL/TLS. Actuellement, seul le VirtualHub v2.0 et le GatewayHub supportent cette fonctionnalité. Il n'est donc pas encore possible d'utiliser cette fonctionnalité pour communiquer avec un YoctoHub.
Enfin, si nous sortons cette nouvelle version de la librairie avec la mention "Preview", c'est que nous nous réservons le droit de faire des changements qui casse la compatibilité ascendante à l'intérieur de la version 2.0 mais uniquement sur les nouvelles fonctionnalités.
Feedback
N’hésitez pas à contacter le support si vous n'arrivez pas utiliser cette nouvelle version de la librairie ou si vous avez des suggestions.