Forum des utilisateurs de Blockly(s)

Blockly@rduino => Problèmes résolus => Discussion démarrée par: athea22 le octobre 05, 2017, 11:51:50 am

Titre: float la virgule qui veut pas
Posté par: athea22 le octobre 05, 2017, 11:51:50 am
bonjours j'essaie d'écrire dans une float un 500.0 mais quand je valide sa revient a 500, je suis obliger de faire soit 500.1 soit 500.1 - 0.1  :-X
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 05, 2017, 03:06:44 pm
R inclue Z inclue N

en bref, un entier est aussi un flottant qui s'ignore 500 = 500.0
Titre: Re : float la virgule qui veut pas
Posté par: athea22 le octobre 05, 2017, 03:50:24 pm
s'est ce que je pensais ,mais non , sinon je n'est pas les chiffres après la virgule ,,, :o
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 05, 2017, 09:29:40 pm
on peut faire çà:

temp = Vin*500.0/1023;

Titre: Re : float la virgule qui veut pas
Posté par: athea22 le octobre 06, 2017, 08:58:52 am
oui mais sa serais bien de pouvoir le faire directe dans les blocks vert ,s'est pas que j'aime pas écrire !! :P
Titre: Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 06, 2017, 05:56:59 pm
Dans le setup, pq ne pas initialiser (en plus c'est toujours mieux) ta variable avec un float vin = 0.5 ?
Titre: Re : float la virgule qui veut pas
Posté par: athea22 le octobre 10, 2017, 06:51:41 pm
bonjours ,comment obtenir 3 chiffre après la virgule  ,merci a vous
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 11, 2017, 03:29:17 pm
Salut,

la doc précise que

Serial.println(1.23456, 4) gives "1.2346"

donc avec juste le bloc , tu ne peux pas ,tu as alors 2 choix :

1. Refaire le bloc
2. Modifier dans le code C/C++
Titre: Re : float la virgule qui veut pas
Posté par: athea22 le octobre 11, 2017, 04:36:33 pm
merci ,j'avais trouver la soluce de la virgule pour demander plus de zero ,merci a vous ,j'ai tendance a croire que les block sont fini ,mais il ya trop de possibilité !! j'aimerais tant faire mes block avec mes lib .... ::).....peut etre un jours jy parviendrais .... :)
Titre: Re : Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 11, 2017, 09:33:44 pm
Citation de: Bzhtitude le octobre 11, 2017, 03:29:17 pm
Salut,

la doc précise que

Serial.println(1.23456, 4) gives "1.2346"

donc avec juste le bloc , tu ne peux pas ,tu as alors 2 choix :

1. Refaire le bloc

en rajouter un. Merci d'avance !  ;D
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 12, 2017, 10:52:49 pm
Je vais surement en refaire un de toute façon ::) mais je bloque pour le moment sur le concept de variable non typée (trop habitué à des langages avec typage...)
Titre: Re : Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 13, 2017, 09:47:43 pm
Citation de: Bzhtitude le octobre 12, 2017, 10:52:49 pm
Je vais surement en refaire un de toute façon ::) mais je bloque pour le moment sur le concept de variable non typée (trop habitué à des langages avec typage...)
Pour écrire du javascript tu veux dire ?
Tu bloques sur quoi ?
Titre: Re : Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 13, 2017, 09:48:02 pm
Citation de: Bzhtitude le octobre 12, 2017, 10:52:49 pm
Je vais surement en refaire un de toute façon ::) mais je bloque pour le moment sur le concept de variable non typée (trop habitué à des langages avec typage...)
Pour écrire du javascript tu veux dire ?
Tu bloques sur quoi ?
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 13, 2017, 10:24:49 pm
j'aimerai faire un bloc "Serial.print" un peu plus polyvalent que ceux disponible, peut importe ce que l'on donne comme paramètre (texte, nombre, variables...) et avec le retour à la ligne ou pas.
Dans le même genre j'aimerai faire un bloc "procédure" avec des types de variables autre que ceux de base (int, char, String...)  en particulier pouvoir insérer du code HTML et donc passer une variable de type EthernetClient... (voir le post sur le serveur Ethernet)

Pour ces cas là , je pense qu'il faut passer par des types non définis (ça donne undefined sur l'éditeur arduino), mais je coince car je n'arrive à rien de concluant pour le moment.
Titre: Re : float la virgule qui veut pas
Posté par: fontaine.jp le octobre 13, 2017, 10:46:54 pm
Salut Bzhtitude,
est-ce que c'est ça que tu veux ?
bloc :
Blockly.Blocks["serial_write"] = {
    init: function() {
        this.setColour("#00929F");
        this.setHelpUrl(Blockly.Msg.HELPURL);
        this.appendValueInput("CONTENT", String).appendField(Blockly.Msg.Serial_Write);
        this.setPreviousStatement(true, null);
        this.setNextStatement(true, null);
        this.setTooltip(Blockly.Msg.Serial_write_tooltip)
    }
};

générateur :
Blockly.Arduino["serial_write"] = function(block) {
    var content = Blockly.Arduino.valueToCode(block, "CONTENT", Blockly.Arduino.ORDER_ATOMIC) || "0";
    return "Serial.print(" + content + ");\n"
};

Le bloc accepte les variables, les nombres, les textes..
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 13, 2017, 10:59:51 pm
Salut jp,

Oui, c'est presque ça , il faut juste enlever les "" dans la ligne suivante du générateur

return "Serial.print(" + content + ");\n"

et rajouter le ln si besoin.

Je cherche un mix des blocs suivants en All in One
Titre: Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 13, 2017, 11:06:02 pm
C'est cool tout ça !!! Un grand merci.
Pour le typage ça se passe dans \core_Ardublockly\type.js & types.js
Titre: Re : float la virgule qui veut pas
Posté par: Bzhtitude le octobre 13, 2017, 11:12:22 pm
Merci quand il sera fait ... c'est en cours, mais tu l'auras quand j'aurais fini.

Je vais regarder les type.js en croissant les doigts que ce ne soit pas trop en serbo-croate.(edit: c'en est !)

le nouveau bloc qui fait presque ce que je veux, je rajouterai peut être le codage hexa avec 0x.



Titre: Re : float la virgule qui veut pas
Posté par: SebCanet le octobre 14, 2017, 11:09:15 am
Extra, merci de tes améliorations. Je fais le point sur Github  ;D