Table des matières

Le fichier *.s2e

L'entête

Il s'agit d'un fichier texte (format JSON) pour décrire l'extension et les blocs.

	"extensionName": "Demo", // Son nom
	"description": "A Demo Extension for Arduino", // Sa description
	"version": "1.1", // Sa version
	"author": "Wangyu(wangyu@makeblock.cc)", // Son auteur
	"homepage": "http://www.mblock.cc/posts/create-extensions-for-mblock", // Sa page d'information
	"sort":0, // Son indice de tri dans la liste des extensions
	"javascriptURL":"js/demo.js", // Le fichier javascript pour son utilisation online
  	"firmware":"1.0", // La version du firmware pour l'utilisation online [non utilisé]
  	"extensionPort":0, // Le port utilisé pour l'extension (0 = port série) [non utilisé]
	"tags" : "makeblock,demo", // Les mots clés pour l'indexation 

La définition des blocs

	"blockSpecs": [
	    [
		"w", // Type de bloc
		"digitalWrite( %n , %d.digital )", // Le texte qui apparait dans le bloc avec les paramètres
		"digitalWrite", // La fonction appelée en mode Scratch
		"13", // Le premier paramètre par défaut
		"HIGH", // Le deuxième paramètre par défaut
		{ // Le code à insérer 
		    "inc":"", // dans l'include
		    "def":"", // dans la définition des variables et constantes
		    "setup":"pinMode({0},OUTPUT); \n", // dans le setup
		    "loop":"", // dans la boucle principale 
		    "work":"digitalWrite({0},{1});\n" // à chaque utilisation du bloc
		}
	    ]
            ....
        ]

Les menus et valeurs

	"menus": {
		"digital":["HIGH","LOW"]
	},
	"values":{
		"HIGH":1,
		"LOW":0

Les traductions

Les blocs peuvent être traduits automatiquement en fonction du langage choisi :

	"translators":{
		"zh_CN":{
			"Demo Program":"演示程序",
			"HIGH":"高电平",
			"LOW":"低电平",
			"digitalWrite( %n , %d.digital )":"数字口输出( %n ,%d.digital )"
		}
	}