dimanche 22 juillet 2012

Karotz Kmd - exemple en C#

Suite aux nombreuses demandes, voici donc la procédure simplifiée pour écrire des .exe pour piloter le Karotz en mode local.

Nul besoin d'installer l'environnement msVisual Studio ou C#, on utilisera le notepad++ et le compilateur .NET en ligne de commande...

Rappel : Envoyer en direct des ordres simples au Karotz sans passer par la procédure normale de développement et d'installation d'applications (appz) sur le store Violet. Un simple .exe qui s'exécute en mode console (ms-dos) et permet ainsi d'exécuter des tâches automatisées et/ou de lancer des batches (.bat)

Pré-requis : .NET v3.5 au minimum
voir http://wizz-cc.blogspot.fr/2012/06/karotz-kmd-kommand-line-interface.html

Source_full.zip

  • Récupérer les bibliothèques Google.ProtocolBuffers : (inclues dans le .zip). Pour info cf Google proto buf.
  • Récupérer les sources en C# du client Karotz : (inclus dans le .zip). Pour info se reporter au post de Richard Lavoie pour quelques notions complémentaires très intéressantes.
  • Coder son premier exemple : voir le fichier kz.cs dans le .zip. Ne pas oublier de changer l'ip de votre karotz dans le source... Toutes les fonctions utilisables sont définies dans le fichier KarotzClient.cs.
  • Compiler (pour .NET v3.5)
sous dos : penser à indiquer le chemin du compilateur dans la varaible %path%; en fonction de la version .NET choisie. Ici : set path=%path%;C:\WINDOWS\Microsoft.NET\Framework\v3.5
csc.exe /out:kz.exe /target:exe /reference:v3.5/google.protocolbuffers.dll /reference:v3.5/google.protocolbuffers.serialization.dll /warn:2 /debug- kz.cs KarotzClient.cs VoosMsgCallback.cs VoosMessage.cs
  • Exécuter : sous dos, taper kz.exe (ou double-cliquer sur l'exe) et... le karotz exécute !
  • Distribuer : le fichier Google.ProtocolBuffers.dll doit être fourni avec l'exe


Conclusion :

Voilà, il n'y a plus qu'à dérouler en C#... Une fois l'environnement mis en place, c'est relativement simple. On se demande vraiment pourquoi Violet a (encore) passé ça sous silence...

6 commentaires:

  1. Super!
    Merci beaucoup!
    Va falloir voir si on peut passer ça en lua pour une interaction directe vera vers karotz.
    Merci encore

    RépondreSupprimer
  2. Les Callback sont-ils focntionnels ? Car étant en asynchrone j'ai souvent des problèmes de synchro de mon coté :(

    RépondreSupprimer
  3. Même question, je me suis développé un petit CLI mais visiblement les callback ne sont pas appelés.

    Du coup je fais un Thread.sleep(5000) mais c'est cradoc :-(

    RépondreSupprimer
    Réponses
    1. Une petite mise en situation (cf. la vidéo):
      http://encausse.wordpress.com/s-a-r-a-h/

      Supprimer