L’étoile du sapin de Noël Spark base (SCXTS) est peu un projet reste depuis la nuit de build instructables, hébergé pendant dorkbot.de Aachen en novembre 2014. J’ai échoué là, car à cette époque je n’avais aucun moyen d’analyser une chaîne entrante avec plus d’un argument à l’intérieur de la fonction Sparkcore. Seulement après la résolution de ce problème j’ai vraiment ai commencé.
J’ai emprunté mon cœur déjà revendiquée de là et un « noyau de Spark Spark Internet bouton » (abrégé : le bouton). Je voulais trouver un moyen éclairer toutes les LEDs de couleurs spécifiés individuellement, ce qui signifie, je voulais utiliser mon iPod rose comme une télécommande pour le bouton.
Très vite, j’ai découvert le problème suivant. Le noyau de l’étincelle a 2 limites. Le nombre de fonctions, disponibles par son nom, est limité à 4. Vous pouvez déclarer autant que vous aimez, mais alors, certains d'entre eux sont juste avalés.
La deuxième limitation est la chaîne du paramètre limitée à une longueur de 64 caractères. Avec cette limitation, il est impossible de formuler 12 couleurs dans une liste triée comme chaîne, même si les valeurs se sont octets. Il est à tout le moins, comme hexadécimal codé avec 6 lettres par couleur, 72, sans séparateurs.
Le seul moyen est de diviser l’appel. Dans un premier temps, j’ai créé deux fonctions, une pour les 6 premiers couleurs, un pour les 6 derniers. Cette approche a fonctionné très bien jusqu'à ce que je suis tombé sur l’autre limitation de 4 fonctions au total. J’ai voulu activer le bouton et désactiver, modifier la luminosité globale et ainsi de suite, mais j’ai eu seulement 2 noms à gauche.
Ce que je suis venu avec est une fonction unique. Le premier argument « mode » est utilisé pour ramifier à un ensemble de fonctions puis internes. Une valeur float négatif indique comment les données suivantes doivent être transformées.
Des valeurs positives signifie simplement pleins gaz : 12 toutes les valeurs s’insérer dans une chaîne : utilisez-le !