Bonjour,
Après avoir lu un paquet sur internet, il me semble que cette solution n'est pas super viable. Néanmoins je la pose quand même.
Je voudrais savoir s'il est possible de lire certaine données d'un fichier texte et de les appliquer sur des objets ?
Je m'explique,
Imaginons que j'ai un objet Temperature définit par
Temperature(byte pin,byte numberSensor);
Au début du programme je ne le connais absolument pas, je veux l’initialiser à l'aide de la carte SD que je lis dans le "setup" du code arduino.
Alors j'ai une petite fonction "myFile.lecture" qui me permet d'avoir ces valeurs ( eg la pin et le nombre de senseur).
Le soucis c'est que j'arrive à créer mon object Temperature dans le "setup" mais je ne peux y accéder ailleurs ( vu que l'objet n'est pas global).
J'ai pensé l'atteindre grâce au pointeur mais je n'y arrive pas non plus. D'ailleurs je ne pense pas que ce soit la meilleure idée...
Voici un exemple de code :
SdFat sd;
SdFile myFile;
// IDEE : création du pointeur de Temperature *temp, comment ce passe l'assignation dans le setup ?
void setup()
{
Serial.begin(9600);
while (!Serial) {} // wait for Leonardo
Serial.println("Starting device, please wait");
// Initialize SdFat or print a detailed error message and halt
// Use half speed like the native library.
// change to SPI_FULL_SPEED for more performance.
if (!sd.begin(chipSelect, SPI_HALF_SPEED)) sd.initErrorHalt();
// pen the file for reading:
if (!myFile.open("SETTINGS.txt", O_READ))
{
sd.errorHalt("opening test.txt for read failed");
}
String variables = myFile.lecture();
byte pin = getPin(variables);
byte numberOfSensor = getSensor(variables);
Temperature myTemp(pin,numberOfSensor);
}
loop()
{
// comment pourrais-je accéder à l'objet Temperature créé précédemment ?
}
Une autre idée, mais c'est vraiment dégueulasse, c'est de tout assigner dans le "loop". Mais c'est tellement honteux que je ne veux pas le faire :p.
Pour ceux qui désire savoir pourquoi je fais ça :
Je suis entrain (d'essayer) de créer un code qui peut s'adapter à plusieurs utilisateurs différents, le tout piloté par une application android. J'avais pour cela deux solutions.
- Envoyer le code directement via la plateforme android sur l'arduino via la liaison série (bluetooth dans mon cas). Malheureusement cela semble impossible.
- Envoyer la configuration de l'utilisateur sur la carte SD de l'arduino qui ensuite, appliquera les variables demandées.
- Créer des objets vide avec des fonctions init() qui vont ensuite le construire. C'est pas top non plus car ça me demande de changer tout mon code ... Et malheureusement j'ai déjà quelques lignes...
De plus, je ne sais pas si cette solution sera très fonctionnelle non plus :'(.
Merci à tous !