Aller au contenu

Zerobrainstudio Pour Ecrire Et Tester Vos Scripts Lua Directement Sur Votre Pc


Messages recommandés

Posté(e)
il y a 2 minutes, BenjyNet a dit :

Qu'est-ce que tu me post du code ??? Y'a pas une fenêtre de debug toute conne ?

 

Je t'ai mis du code en debug ou il suffit de passer la souris sur une variable pour voir son contenu.

  • Like 1
  • Upvote 2
Posté(e)

suffit de passer la souris dessus  ;-)

comme quoi, j'avais jamais fait attention, pourtant je commence a bien l'utiliser, pour des petits tests, comme quoi

Posté(e) (modifié)

Bon alors il y a un truc que je pite pas ! Quand tu fais execute en debug, il se met sur la ligne require puis si tu veux continuer, il me termine le programme direct au lieu de me faire ça ligne par ligne. C'est un comportement normal ?

 

Edit : Sympa le coup de la souris dessus, j'avais pas fait attention :) Faudrait juste que mon prog s’exécute ligne par ligne now

Modifié par BenjyNet
Posté(e)

Il faut utiliser le F5.

 

Tu mets un Point d'arrêt ou tu veux dans ton code (le gros point rouge). Puis tu cliques sur F5. Il s'arrête sur la première ligne. Tu recliques sur F5 et il va s'arrêter sur la ligne de ton point d'arrêt. Clique droit sur une variable te permet de "Ajouter une expression espionne" que tu pourras tout le temps regarder dans la fenêtre (Ctrl+Shift+W).

 

Et voilà, il y a plus qu'à :-)

  • Like 1
  • Upvote 2
Posté(e) (modifié)

Bonjour,

 

il est aussi possible de débuguer ligne à ligne, et même de modifier dynamiquement la valeur d'une variable directement en cours d'exécution.

 

Allez, je me lance pour mon 1er tuto

 

Ouvrir Zerobranstudio et afficher les fenêtres suivantes si ce n'est pas encore déjà fait

 

01.png

 

insérer le code suivant dans une nouvelle fenêtre vide de Zerobranstudio (on va réviser les multiplications ;))

local boucle = true
local i = 1
local j = 1

while boucle == true do
   i = i + 1
   j = j + 2
   print(i.." x "..j.." = "..i * j)
end

Pour activer le suivi dynamique des variables, il suffit de sélectionner le nom de la variable que l'on veut suivre, puis de faire clic droit dessus pour faire apparaitre un menu contextuel.

Il faut ensuite sélectionner l'option Add watch expression comme dans l'image ci dessous. Dans notre cas, il faut le faire pour les 2 variables i & j.

 

07.png

 

Pour passer en mode debug, appuyer 1 fois sur la touche F5, la fenêtre doit ressembler à ça.

Le curseur vert est positionné sur la première instruction, et la fenêtre Watch affiche les valeurs de i et j (à nil pour le moment ce qui est logique)

 

02.png

 

Appuyer maintenant plusieurs fois sur la touche F10 pour exécuter le programme pas à pas, jusqu'à afficher le premier résultat de la multiplication, comme ci dessous.

Le résultat de la multiplication est en cohérence avec les valeurs de i et j.

 

03.png

 

Pour tester maintenant la modification à la volée d'une variable, on va continuer l'exécution du programme et réexécuter une seconde fois la boucle en appuyant plusieurs fois sur la touche F10 mais sans exécuter l'instruction print, comme dans l'image ci dessous. La valeur des 2 variables a bien été modifiée par programmation.

 

04.png

 

Pour modifier maintenant dynamiquement la valeur de j, il faut cliquer sur l'onglet Remote console, taper la ligne j = 20 puis appuyer sur la touche Entrée pour valider la commande, comme dans l'image ci dessous. On peut alors voir que la valeur de j a bien été modifiée dans la fenêtre de Watch.

 

05.png

 

Il suffit maintenant de recliquer sur l'onglet Output (suspended), et d'appuyer de nouveau sur la touche F10 pour reprendre l'exécution du programme.

On constate alors que la valeur de j mise à 20 à la main a bien été prise en compte dynamiquement par le programme.

 

06.png

 

En espérant que cela vous soit utile dans vos debug ;)

 

 

 

Modifié par Fred le ouf
  • Upvote 4
Posté(e)

ben de rien Bereale,

j'ai tellement appris sur ce forum que si je peux aider avec mes maigres connaissances, c'est je trouve un juste retour des choses.

Après tout l'entraide c'est pas fait pour les chiens :P

 

  • Upvote 2
  • 2 mois après...
Posté(e)

Bonsoir, 

 

Besoin d'un coup de pouce ;-). 

Comment échapper l'arobase pour le user admin avec zerobrain, j'ai testé toto\@mail.com mais rien ;-) pour hc2_user sans modifier tout le fichier FibaroSceneAPI ;-)

 

  • 1 mois après...
Posté(e) (modifié)

Bon, j'ai réussi à faire fonctionner sous Mac (contrairement au PC où tout était nickel du premier coup)

 

- comme @pepite je ne parviens pas à utiliser le login avec @, je me suis donc créer un user simple en lui donnant les droits aux modules et scènes.

Par contre c'est pas à jour, à chaque rajout, faut réattribuer les droits aux nouveaux élèments (mais en attendant ça semble ok)

 

- je me rends compte que zerobrane semble agir comme une 'scène' c'est bien cela ?

Je ne peux pas faire un Net.FHttp(ip,tonumber(port)) comme dans un VD ; ca me renvoi sans cesse une erreur.

 

- Un peu embêtant, mon code possède bien les couleurs de texte comme sur HC2 ; mais une fois que j'exécute mon script, tout passe en orange. Ca entraine la perte des couleurs et par la suite, plus rien à faire, copier/coller dans un nouveau ficher, redémarrer zerobrane... le code demeure FULL orange

 

Avant lancement du script

ZeroBrane_Studio_-.png.2bc63606bdeda040cbbd5f12e39a1269.png

 

Une fois le script executé

ZeroBrane_Studio_-__Applications_ZeroBraneStudio_app_Contents_ZeroBraneStudio_myprograms_HueAutoLight.png.bf2ffab5a0042beca89e30ff0bae5a9c.png

 

 

Modifié par nigao
  • 6 mois après...
Posté(e)

Bonjour,

 

J'ai réussi à récupérer la librairie json utilisée par Fibaro, que vous pouvez trouver dans /usr/share/lua/5.2, prendre le fichier json.lua et le répertoire json.

 

En revanche, je n'ai pas réussi à trouver ce qui correspond à net.HTTPClient... Il y a un fichier HTTPClient.php qui sert pour les api.get/put etc... Pareil pour setTimeout, qui a l'air de venir de LuaNode.

 

Je suis tombé sur le fichier responsable du bridage de Lua sur le HC2 :

 

Citation

require('net.HTTPClient')

dofile=nil
_G=nil
getfenv=nil
getmetatable=nil
load=nil
loadfile=nil
loadstring=nil
module=nil
rawequal=nil
rawget=nil
rawset=nil
require=nil
setfenv=nil
setmetatable=nil
coroutine=nil
debug=nil
file=nil
io=nil
os.execute=nil
os.getenv=nil
os.remove=nil
os.rename=nil
os.setlocale=nil
os.tmpname=nil
package=nil

 

:mellow: ça en fait du bridage...

 

  • Like 1
  • 2 mois après...
Posté(e)

Yop, merci pour ce post, petit question sur la partie scène et notamment déclenchement part argument vous savez comment déclencher celle-ci dans Zerobrane ?

Envoyé de mon Nexus 5X en utilisant Tapatalk

×
×
  • Créer...