• Welcome to Forum des utilisateurs de Blockly(s). Please login or sign up.
 

Adafruit_RGB_LCD_Shield

Démarré par Bzhtitude, juin 20, 2018, 10:14:31 pm

« précédent - suivant »

fontaine.jp

Tu peux me mettre les messages d'erreurs de la console, je vais regarder.

SebCanet

J'ai ça :
ReferenceError: block is not defined[En savoir plus] 17 procedures.js:32:9
   Blockly.Arduino.procedures_defreturn file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/generators/BlocklyArduino/procedures.js:32:9
   Blockly.Generator.prototype.blockToCode file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/core_Blockly/blockly_compressed.js:1352:266
   Blockly.Generator.prototype.workspaceToCode file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/core_Blockly/blockly_compressed.js:1350:241
   BlocklyDuino.renderArduinoCodePreview file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/core_BlocklyArduino/blockly@rduino.js:165:32
   Blockly.Workspace.prototype.fireChangeListener file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/core_Blockly/blockly_compressed.js:915:419
   Blockly.Events.fireNow_ file:///F:/Logiciels/Arduino_graphique/Blockly-at-rduino/core_Blockly/blockly_compressed.js:1274:201

fontaine.jp

Oui j'ai changé l'opérateur this par block.
Tu peux mettre en pièce jointe le fichier procedures.js

SebCanet

Ah oui mince, je n'avais pas fait gaffe.
Et quel intérêt il y a de passer à block ?

Regarde la version sur Github, c'est celle qui génère le pb pour le bloc procédure.
Merci de jeter un oeil.

fontaine.jp

tu as corrigé finalement ?
je ne trouve pas d'erreurs.
J'ai utilisé block à la place de this car le site de blockly --> https://developers.google.com/blockly/guides/create-custom-blocks/generating-code
ils l'utilisent aussi.

SebCanet

Ah mince oui c'est vrai que la nouvelle de Blockly me bloque, du coup j'ai laissé tomber pour l'instant toute idée de mise à jour du moteur Blockly...

Sinon c'est avec le bloc sans retour (la procédure) que ça ne fonctionne plus.

fontaine.jp

Ok je rajoute le code de la procédure sans retour.
;)

SebCanet

Inutile puisqu'il y a déjà : Blockly.Arduino.procedures_defnoreturn = Blockly.Arduino.procedures_defreturn;

Du coup je ne comprends pas...en plus là je suis en Angleterre pour 2 semaines, j'ai du mal à me poser, peux tu vérifier ma version s'il te plaît ?

fontaine.jp

Justement l'erreur vient de là :
Tu remplaces la ligne :
Blockly.Arduino.procedures_defnoreturn = Blockly.Arduino.procedures_defreturn;
par le code donné en pièce jointe précédemment, à la base le code devait servir aux deux blocs mais je n'ai pas réussi à le modifier pour qu'il fonctionne avec les deux donc j'ai en fait deux...
Tu m'avais demandé les modifications ou améliorations effectuées --> http://lesormeaux.net/blockly-arduino/start.html
J'ai changé pas mal de choses mais c'est mieux de voir le résultat et si tu veux des précisions, n'hésites pas.
La version desktop fonctionne bien (si tu trouves des bug fais moi signe).
Pour la version en ligne, il manque le coté serveur (qui remplacera codebender) car il faut trouver un hébergeur.
A vos claviers, toutes les remarques sont permises !
;)

SebCanet

C'est énorme ce que tu as fait !!!!
Super approche, bravo ! Bon ben je te laisse finir le logiciel  ;D, tu as réussi à tout faire. L'onglet compilation est hyper complet, bravo.
Félicitations pour l'utilisation d'Electron, je n'ai jamais pris le temps de regarder. Je pensais aussi me greffer sur Sublime Text + Stino.
As tu vérifié le côté multiplateforme de ta solution ?

Juste quelques corrections à apporter :
- le R dans Blockly@rduino,
- si je ne me suis pas trompé de licence, tu dois republier le tien à l'identique des conditions,
- librarie in english signifie plutôt 'bibliothèque' que 'librairie'

Remarques :
- que tout soit blanc ne me semble pas pratique pour différencier les zones de travail pour les enfants,
- je vais maintenir les niveaux par n° (en attendant une meilleure idée) car il est utilisé quel que soit l'âge des enfants et adultes, et aussi dans des associations,
- pour Codebender ou équivalent, c'est foutu, et je pense que ça n'est pas utile finalement.

Propositions :
- mettre tes exemples dans le dépôt Github ad-hoc pour mutualiser,
- mettre ton générateur de blocs dans le dépôt Github que beaucoup de fork de BlocklyDuino espèrent (chapeau !!!),
- repartir de ta base pour essayer de créer une version desktop portable de Blockly@rduino, mais de te créer aussi l'installateur qui va bien si les gens en ont besoin,
- maintenir la possibilité de piloter l'Arduino avec Firmata téléversé,  peux rajouter ça ? Je ne connais pas Electron et son système de scripting (enfin pas encore  ;D),
- je pensais plutôt créer un client compilé avec QT Designer (donc multi plate forme compilable) et voir s'il peut rajouter à ta base ce que j'ai fait pour le AIO : détection automatique de cartes, mise à jour, téléversement de Firmata, etc..

Veux tu qu'on créé une entrée pour ton fork dans le forum ? Histoire de ne pas faire de doublons.

Parce que là ça va générer plein de questions  :-D

SebCanet

Citation de: fontaine.jp le juillet 09, 2018, 10:23:36 am
Justement l'erreur vient de là :
Tu remplaces la ligne :
Blockly.Arduino.procedures_defnoreturn = Blockly.Arduino.procedures_defreturn;
par le code donné en pièce jointe précédemment, à la base le code devait servir aux deux blocs mais je n'ai pas réussi à le modifier pour qu'il fonctionne avec les deux donc j'ai en fait deux...

Pour revenir sur ce fil :
- je croyais que les codes procédure & fonction que tu avais postés étaient les mêmes...j'ai mal lu ou mal compris
- le problème de typage n'est pas fini car lorsque utilises la sortie d'une fonction pour alimenter une variable, le typage ne suit pas et celle-ci se déclare en void

Bref, à voir encore...

fontaine.jp

Pour la licence tu m'expliqueras quoi mettre et où
Electron est multiplateforme et peut gérer les mises à jour, c'est pour ça que je l'ai choisi (qt m'a semblé trop compliqué à installer et prendre en main)
La détection de carte ça doit être possible
La version à installer est déjà portable il suffit de décocher les cases raccourcis et associations et choisir où l'installer/dézipper (mais on peut faire un zip pour ceux qui ne comprennent pas)
J'avais retiré le firmata parce que personne ne l'utilisait (dans mon coin) mais on peut le remettre
ok pour le fork
Pour les procédure c'est compliqué...
J'ai bricolé les deux codes que j'ai posté car le typage automatique ne fonctionne pas bien, ex :
si la procédure retourne le nombre 29 , c'est quoi son type ? int, byte, char, unsigned int, long ?
à part les types boolean, float et string qui sont sans ambiguïté les autres ne sont pas forcément bon ou mauvais mais peuvent générer des erreurs selon les valeurs à la compilation. Tout ça pour dire que vu l'utilisation ça ne vaut pas forcément le coup de perdre trop de temps la dessus

SebCanet

Pour la licence, tu l'as là : https://github.com/technologiescollege/Blockly-at-rduino/blob/gh-pages/LICENSE.md
En gros, mais je ne suis pas expert, ton code source doit être disponible, comme dans un dépôt github ou gitlab, mais pas un zip car il impose le téléchargement, le dézippage, etc. Mais il fau aussi documenter ce qui est changé et où. En fait l'idéal serait de trouver comment mettre tes modifs dans d'autres fichiers, faudrait que je fasse un peu de ménage pour décomposer encore davantage les fonctions dans des fichiers différents pour que mettes les tiens avec un autre nom mais appelés depuis index.html qui serait finalement le seul modifié. Je ne sais pas si je suis clair...
Puis partager avec la même licence.

A ce propos, il faut que tu changes ton nom car là il est trop proche, il se prononce pareil, je pense aux collègues qui ne vont plus rien comprendre...

Dès que tu as un nom, je remets !es questions dans le fil ad-hoc du forum.

Bzhtitude

juillet 10, 2018, 03:18:24 pm #28 Dernière édition: juillet 10, 2018, 07:31:08 pm par Bzhtitude
Salut,
Citation de: fontaine.jp
La version à installer est déjà portable il suffit de décocher les cases raccourcis et associations et choisir où l'installer/dézipper (mais on peut faire un zip pour ceux qui ne comprennent pas)

Cette installation fonctionne parfaitement. J'ai donc testé cette version et particulièrement la déclaration des variables typées et les fonctions.
Je me suis permis de reprendre tes codes pour compléter Blockly@rduino. J'arrive à la comparaison suivante dans le PDF.
J'ai intégré ton bloc de variables typées et j'en ai profité pour modifier la nomenclature existante.
J'ai modifié le code des fonctions pour y intégrer le bloc des variables typées.
On voit que le résultat final est quasi concluant, il reste encore un undefined que je n'arrive pas à me débarrasser, portant les générateurs sont identiques.

Citation de: SebCanet
En fait l'idéal serait de trouver comment mettre tes modifs dans d'autres fichiers, faudrait que je fasse un peu de ménage pour décomposer encore davantage les fonctions dans des fichiers différents pour que mettes les tiens avec un autre nom mais appelés depuis index.html qui serait finalement le seul modifié. Je ne sais pas si je suis clair...

C'est pour ça que je ne sais pas ce que je dois faire de mes modifs... un pull surement car j'attend de savoir ce que vous comptez faire... et comme j'upgrade progressivement d'autres blocs, je met à jour très (trop) régulièrement mes fichiers, je ne veux pas tout perdre.


Citation de: SebCanet
A ce propos, il faut que tu changes ton nom car là il est trop proche, il se prononce pareil, je pense aux collègues qui ne vont plus rien comprendre...

Bah quand on suit , ça va ;)

Citation de: fontaine.jp le juillet 09, 2018, 07:51:47 pm
Pour les procédure c'est compliqué (...) mais peuvent générer des erreurs selon les valeurs à la compilation. Tout ça pour dire que vu l'utilisation ça ne vaut pas forcément le coup de perdre trop de temps la dessus
.

Tout a fait d'accord, le résultat de tes blocs est satisfaisant. une petite claque du compilateur ne fait pas trop mal en principe...


SebCanet

L'idéal est de partir d'un fork, comme ça on peut faire glisser des modifications d'une version à une autre, en ne choisissant que les fichiers qu'on veut fusionner.

Merci de tes modifs, mais effectivement il reste des coquilles...pas grave tout le monde est en vacances on peut bricoler dans le Github  ;D

Bzhtitude, peux tu m'envoyer ta version actuelle dans son ensemble que je puisse analyser tes modifs et réfléchir à ce que je vous proposer de pérenne comme modification ?