Aller au contenu


Photo
- - - - -

Help structure


  • Veuillez vous connecter pour répondre
10 réponses à ce sujet

#1 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 octobre 2016 - 10:43

Hello les makers.

 

J'aurais besoin d'un peu d'aide sur une structure que voici :

 

class Sweeper
{
  Servo servo;              // the servo
  int pos;              // current servo position
  int increment;        // increment to move for each interval
  int  updateInterval;      // interval between updates
  unsigned long lastUpdate; // last update of position
 
public:
  Sweeper(int interval)
  {
    
    updateInterval = interval;
    increment = 1;
  }
 
  void Attach(int pin)
  {
    servo.attach(pin);
  }
 
  void Detach()
  {
    servo.detach();
  }
 
  void Update(unsigned long currentMillis)
  {
    if((currentMillis - lastUpdate) > updateInterval)  // time to update
    {
      lastUpdate = millis();
      pos += increment;
      servo.write(pos);
      if ((pos >= 180) || (pos <= 0)) // end of sweep
      {
        // reverse direction
        increment = -increment;
      }
    }
  }
};
 
 
Sweeper sweeper1(25);
Sweeper sweeper2(35);


 
void setup()
{


 
  sweeper1.Attach(9);
  sweeper2.Attach(10);
 
  // Timer0 is already used for millis() - we'll just interrupt somewhere
  // in the middle and call the "Compare A" function below
  OCR0A = 0xAF;
  TIMSK0 |= _BV(OCIE0A);
}
 
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect)
{
  unsigned long currentMillis = millis();
 sweeper1.Update(currentMillis);
 int
  if(digitalRead(2) == HIGH)
  {
     sweeper2.Update(currentMillis);

  }

}

void loop()
{
}

 

Vous remarquerez que lorsque nous avons plusieurs servomoteurs il faut leur donner la base de temps entre deux pas :

 

 

Sweeper sweeper1(25);
Sweeper sweeper2(35);

 

Et les attacher, c'est à dire leur attribuer une broche :

 

  sweeper1.Attach(9);
  sweeper2.Attach(10);

 

Mon problème c'est que lorsque nous avons 10/15 servomoteurs nous n'allons quand même pas écrire 10/15 ligne pour attribuer le temps de base pour chaque servomoteur et écrire 10/15 lignes pour attribuer à chaque servomoteur sa broche !!

 

Je pensais donc , pour 10 servomoteurs, faire une boucle du style :

 

for (a=0; a<=9;a++)

{

Sweeper "sweeper" + a.Attach(a+9);

{

 

 

Mais voilà !! ça marche pas !!

 

Une idée?

 

Merci par avance.

 

++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



#2 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 9 963 messages
  • Gender:Male
  • Location:Anglet

Posté 14 octobre 2016 - 11:02

Réponse très très rapide en coup de vent et non testé 

 

essaye de tester un truc comme ça pour voir ce que ça te dit : 


#define NSERVO 10

Sweeper sweeperArray[NSERVO];



void setup(){

// initialisation de l'interval array 



for( uint8_t i=0; i<NSERVO; i++) 
{
    sweeperArray[i]= sweeper(25+i*10 );
    sweeperArray[i].Attach(2+i ); 
} 

}

Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!

 

Les réalisations de Mike118  

 

 

 


#3 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 octobre 2016 - 08:57

Ha merci mais non.....snifff !!

 

J'ai donc essayé de bidouillé autre chose mais cela ne fonctionne toujours pas !!!

#include <Servo.h>
#include "IRremote.h"
#include <Wire.h>
#include <string.h>
#define NSERVO 10

String sweeperArray_nom[NSERVO]={"sweeper0", "sweeper1","sweeper2","sweeper3","sweeper4","sweeper5","sweeper6","sweeper7","sweeper8","sweeper9"};
String sweeperArray_temps[NSERVO]={"sweeper0(25)", "sweeper1(25)","sweeper2(25)","sweeper3(25)","sweeper4(25)","sweeper5(25)","sweeper6(25)","sweeper7(25)","sweeper8(25)","sweeper9(25)"};

class Sweeper
{
  Servo servo;              // the servo
  int pos;              // current servo position
  int increment;        // increment to move for each interval
  int  updateInterval;      // interval between updates
  unsigned long lastUpdate; // last update of position

public:
  Sweeper(int interval)
  {
    updateInterval = interval;
    increment = 1;
  }

  void Attach(int pin)
  {
    servo.attach(pin);
  }

  void Detach()
  {
    servo.detach();
  }

  void Update(unsigned long currentMillis)
  {
    if((currentMillis - lastUpdate) > updateInterval)  // time to update
    {
      lastUpdate = millis();
      pos += increment;
      servo.write(pos);

      if ((pos >= 180) || (pos <= 0)) // end of sweep
      {
        // reverse direction
        increment = -increment;
      }
    }
  }
};

Sweeper sweeperArray_temps[1];
//Sweeper sweeper1(25);
//Sweeper sweeper2(35);
//**************************
void setup()
{
//**************Config de la communication série **************
// pour com serie
Serial.begin(9600);
  Sweeper sweeperArray_nom[1].Attach(9);
  //sweeper1.Attach(9);
  //sweeper2.Attach(10);
  // Timer0 is already used for millis() - we'll just interrupt somewhere
  // in the middle and call the "Compare A" function below
  OCR0A = 0xAF;
  TIMSK0 |= _BV(OCIE0A);
}

// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect)
{
  unsigned long currentMillis = millis();
  //sweeper1.Update(currentMillis);
  sweeperArray_nom[1].Update(currentMillis);

  if(digitalRead(2) == HIGH)
  {
     //sweeper2.Update(currentMillis);
  }
}

void loop()
{
}

Et voici le message d'erreur

 

Fichier joint  Capture.JPG   29,83 Ko   0 téléchargement(s)

 

bon.......
 



#4 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 14 octobre 2016 - 09:23

À quoi sert cette ligne ?

Sweeper sweeperArray_temps[1];



#5 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 14 octobre 2016 - 10:02

A l'origine, quand tu souhaites initialiser la période d'incrémentation d'un servo, il est nécessaire de placer ces lignes :

Sweeper sweeper1(25);
Sweeper sweeper2(35);

 

Par avance il faut aussi déclarer les broches pour chaque servo donc :

  sweeper1.Attach(9);
  sweeper2.Attach(10);

 

Le problème c'est quand tu as 10/15 servo il faut alors mette 10/15 lignes Sweeper sweeperXXX(25) et 10/15 lignes sweeperXXX.Attach(YYY) .....C'est long....

 

Donc je pensais mettre une boucle pour construire automatiquement ces 2 * 10/15 lignes avec un for (a=0; a<10;a++) {Sweeper "sweeper" + a+ "(25)"}

 

ou utiliser un tableau  sweeperArray_temps[10] dans lequel j'aurais initialiser les valeurs ainsi sweeperArray_temps[10]= {"sweeper0(25)", "sweeper1(35), "sweeper2(25), ....

 

il me restait ensuite à placer le code : Sweeper sweeperArray_temps[1];

 

Mais non non c'est pas bon .....



#6 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 15 octobre 2016 - 02:04

Ce que Mike te propose c'est de faire un tableau de sweeper. Ca ne fonctionne pas ? Dans ton code, c'est des tableaux de strings.

#7 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 15 octobre 2016 - 02:17

L'exemple de Mike me retourne l'erreur :

 

exit status 1
'Sweeper' does not name a type

 

C'est la ligne : Sweeper sweeperArray[NSERVO]; qui pose problème....

#include <Servo.h>
#include "IRremote.h"
#include <Wire.h>
#include <string.h>

#define NSERVO 10
Sweeper sweeperArray[NSERVO];

class Sweeper
{
  Servo servo;              // the servo
  int pos;              // current servo position
  int increment;        // increment to move for each interval
  int  updateInterval;      // interval between updates
  unsigned long lastUpdate; // last update of position

public:
  Sweeper(int interval)
  {
    updateInterval = interval;
    increment = 1;
  }
 
  void Attach(int pin)
  {
    servo.attach(pin);
  }
 
  void Detach()
  {
    servo.detach();
  }
 
  void Update(unsigned long currentMillis)
  {
    if((currentMillis - lastUpdate) > updateInterval)  // time to update
    {
      lastUpdate = millis();
      pos += increment;
      servo.write(pos);
      if ((pos >= 180) || (pos <= 0)) // end of sweep
      {
        // reverse direction
        increment = -increment;
      }
    }
  }
};


//Sweeper sweeper1(25);
//Sweeper sweeper2(35);

//**************************
void setup()
{
//**************Config de la communication série **************
// pour com serie
Serial.begin(9600);

for( uint8_t i=0; i<NSERVO; i++)
{
    sweeperArray[i]= sweeper(25+i*10 );
    sweeperArray[i].Attach(2+i );
}

 
  //sweeper1.Attach(9);
  //sweeper2.Attach(10);
 
  // Timer0 is already used for millis() - we'll just interrupt somewhere
  // in the middle and call the "Compare A" function below
  OCR0A = 0xAF;
  TIMSK0 |= _BV(OCIE0A);
}
 
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect)
{
  unsigned long currentMillis = millis();
  //sweeper1.Update(currentMillis);
  sweeperArray_nom[1].Update(currentMillis);
 
  if(digitalRead(2) == HIGH)
  {
     //sweeper2.Update(currentMillis);
  }

}

void loop()
{
}

Merci pour vos conseils.



#8 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 15 octobre 2016 - 09:58

Et si tu déclare ton tableau après avoir déclaré ta classe ? Cela aide ?

 

Si tu peux aussi coller le log d'erreur complet, je pourrait mieux t'aider ;)



#9 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 15 octobre 2016 - 11:34

Dans la version où le tableau est déclaré avant la classe :
 
#include <Servo.h>
#include "IRremote.h"
#include <Wire.h>
#include <string.h>

#define NSERVO 10
Sweeper sweeperArray[NSERVO];

class Sweeper
{
  Servo servo;              // the servo
  int pos;              // current servo position
  int increment;        // increment to move for each interval
  int  updateInterval;      // interval between updates
  unsigned long lastUpdate; // last update of position

public:
  Sweeper(int interval)
  {
    updateInterval = interval;
    increment = 1;
  }
 
  void Attach(int pin)
  {
    servo.attach(pin);
  }
 
  void Detach()
  {
    servo.detach();
  }
 
  void Update(unsigned long currentMillis)
  {
    if((currentMillis - lastUpdate) > updateInterval)  // time to update
    {
      lastUpdate = millis();
      pos += increment;
      servo.write(pos);
      if ((pos >= 180) || (pos <= 0)) // end of sweep
      {
        // reverse direction
        increment = -increment;
      }
    }
  }
};


//Sweeper sweeper1(25);
//Sweeper sweeper2(35);

//**************************
void setup()
{
//**************Config de la communication série **************
// pour com serie
Serial.begin(9600);

for( uint8_t i=0; i<NSERVO; i++)
{
    sweeperArray[i]= sweeper(25);
    sweeperArray[i].Attach(2+i );
}

 
  //sweeper1.Attach(9);
  //sweeper2.Attach(10);
 
  // Timer0 is already used for millis() - we'll just interrupt somewhere
  // in the middle and call the "Compare A" function below
  OCR0A = 0xAF;
  TIMSK0 |= _BV(OCIE0A);
}
 
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect)
{
  unsigned long currentMillis = millis();
  //sweeper1.Update(currentMillis);
  sweeperArray[1].Update(currentMillis);
 
  if(digitalRead(2) == HIGH)
  {
     //sweeper2.Update(currentMillis);
  }

}

void loop()
{
}
 
Le message d'erreur est le suivant :
 
 Arduino : 1.6.8 (Windows 7), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files\Arduino\hardware" -tools "C:\Program Files\Arduino\tools-builder" -tools "C:\Program Files\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files\Arduino\libraries" -libraries "C:\Users\admpf\Documents\Arduino\libraries" -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10608 -build-path "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "H:\programmes\P-002-avant\P-002-avant.ino"
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files\Arduino\hardware" -tools "C:\Program Files\Arduino\tools-builder" -tools "C:\Program Files\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files\Arduino\libraries" -libraries "C:\Users\admpf\Documents\Arduino\libraries" -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10608 -build-path "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "H:\programmes\P-002-avant\P-002-avant.ino"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\sam\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\samd\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\libraries\IRremote\IRremote.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\tools-builder\ctags\5.8-arduino10/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp" -o "C:\Users\admpf\AppData\Local\Temp\build067849a3871239181bf3456a2633633c.tmp\sketch\P-002-avant.ino.cpp.o"
P-002-avant:7: error: 'Sweeper' does not name a type

 Sweeper sweeperArray[NSERVO];

 ^

H:\programmes\P-002-avant\P-002-avant.ino: In function 'void setup()':

P-002-avant:63: error: 'sweeperArray' was not declared in this scope

     sweeperArray[i]= sweeper(25);

     ^

P-002-avant:63: error: 'sweeper' was not declared in this scope

     sweeperArray[i]= sweeper(25);

                                ^

H:\programmes\P-002-avant\P-002-avant.ino: In function 'void __vector_21()':

P-002-avant:82: error: 'sweeperArray' was not declared in this scope

   sweeperArray[1].Update(currentMillis);

   ^

Plusieurs bibliothèque trouvées pour "Servo.h"
Utilisé : C:\Users\admpf\Documents\Arduino\libraries\Servo
Non utilisé : C:\Program Files\Arduino\libraries\Servo
Utilisation de la bibliothèque Servo version 1.1.2 dans le dossier: C:\Users\admpf\Documents\Arduino\libraries\Servo 
Utilisation de la bibliothèque IRremote prise dans le dossier : C:\Program Files\Arduino\libraries\IRremote (legacy)
Utilisation de la bibliothèque Wire version 1.0 dans le dossier: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire 
exit status 1
'Sweeper' does not name a type
 
Dans la version où le tableau est après la classe :
 
#include <Servo.h>
#include "IRremote.h"
#include <Wire.h>
#include <string.h>

#define NSERVO 10


class Sweeper
{
  Servo servo;              // the servo
  int pos;              // current servo position
  int increment;        // increment to move for each interval
  int  updateInterval;      // interval between updates
  unsigned long lastUpdate; // last update of position

public:
  Sweeper(int interval)
  {
    updateInterval = interval;
    increment = 1;
  }
 
  void Attach(int pin)
  {
    servo.attach(pin);
  }
 
  void Detach()
  {
    servo.detach();
  }
 
  void Update(unsigned long currentMillis)
  {
    if((currentMillis - lastUpdate) > updateInterval)  // time to update
    {
      lastUpdate = millis();
      pos += increment;
      servo.write(pos);
      if ((pos >= 180) || (pos <= 0)) // end of sweep
      {
        // reverse direction
        increment = -increment;
      }
    }
  }
};

Sweeper sweeperArray[NSERVO];
//Sweeper sweeper1(25);
//Sweeper sweeper2(35);

//**************************
void setup()
{
//**************Config de la communication série **************
// pour com serie
Serial.begin(9600);

for( uint8_t i=0; i<NSERVO; i++)
{
    sweeperArray[i]= sweeper(25);
    sweeperArray[i].Attach(2+i );
}

 
  //sweeper1.Attach(9);
  //sweeper2.Attach(10);
 
  // Timer0 is already used for millis() - we'll just interrupt somewhere
  // in the middle and call the "Compare A" function below
  OCR0A = 0xAF;
  TIMSK0 |= _BV(OCIE0A);
}
 
// Interrupt is called once a millisecond, looks for any new GPS data, and stores it
SIGNAL(TIMER0_COMPA_vect)
{
  unsigned long currentMillis = millis();
  //sweeper1.Update(currentMillis);
  sweeperArray[1].Update(currentMillis);
 
  if(digitalRead(2) == HIGH)
  {
     //sweeper2.Update(currentMillis);
  }

}

void loop()
{
}
 
Le message d'erreur est le suivant :
 
Arduino : 1.6.8 (Windows 7), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Program Files\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files\Arduino\hardware" -tools "C:\Program Files\Arduino\tools-builder" -tools "C:\Program Files\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files\Arduino\libraries" -libraries "C:\Users\admpf\Documents\Arduino\libraries" -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10608 -build-path "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "H:\programmes\P-002-apres\P-002-apres.ino"
C:\Program Files\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files\Arduino\hardware" -tools "C:\Program Files\Arduino\tools-builder" -tools "C:\Program Files\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files\Arduino\libraries" -libraries "C:\Users\admpf\Documents\Arduino\libraries" -fqbn=arduino:avr:mega:cpu=atmega2560 -ide-version=10608 -build-path "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "H:\programmes\P-002-apres\P-002-apres.ino"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\avr\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\sam\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\Documents\Arduino\libraries\Servo\src\samd\Servo.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\libraries\IRremote\IRremote.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\Wire.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src\utility\twi.c" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "nul"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\tools-builder\ctags\5.8-arduino10/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10608 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR   "-IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Users\admpf\Documents\Arduino\libraries\Servo\src" "-IC:\Program Files\Arduino\libraries\IRremote" "-IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire\src" "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp" -o "C:\Users\admpf\AppData\Local\Temp\build0adf277c80df66968c5527c10e285a6e.tmp\sketch\P-002-apres.ino.cpp.o"
P-002-apres:50: error: no matching function for call to 'Sweeper::Sweeper()'

 Sweeper sweeperArray[NSERVO];

                            ^

H:\programmes\P-002-apres\P-002-apres.ino:50:28: note: candidates are:

H:\programmes\P-002-apres\P-002-apres.ino:18:3: note: Sweeper::Sweeper(int)

   Sweeper(int interval)

   ^

H:\programmes\P-002-apres\P-002-apres.ino:18:3: note:   candidate expects 1 argument, 0 provided

H:\programmes\P-002-apres\P-002-apres.ino:9:7: note: constexpr Sweeper::Sweeper(const Sweeper&)

 class Sweeper

       ^

H:\programmes\P-002-apres\P-002-apres.ino:9:7: note:   candidate expects 1 argument, 0 provided

H:\programmes\P-002-apres\P-002-apres.ino:9:7: note: constexpr Sweeper::Sweeper(Sweeper&&)

H:\programmes\P-002-apres\P-002-apres.ino:9:7: note:   candidate expects 1 argument, 0 provided

H:\programmes\P-002-apres\P-002-apres.ino: In function 'void setup()':

P-002-apres:63: error: 'sweeper' was not declared in this scope

     sweeperArray[i]= sweeper(25);

                                ^

Plusieurs bibliothèque trouvées pour "Servo.h"
Utilisé : C:\Users\admpf\Documents\Arduino\libraries\Servo
Non utilisé : C:\Program Files\Arduino\libraries\Servo
Utilisation de la bibliothèque Servo version 1.1.2 dans le dossier: C:\Users\admpf\Documents\Arduino\libraries\Servo 
Utilisation de la bibliothèque IRremote prise dans le dossier : C:\Program Files\Arduino\libraries\IRremote (legacy)
Utilisation de la bibliothèque Wire version 1.0 dans le dossier: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire 
exit status 1
no matching function for call to 'Sweeper::Sweeper()'
 
Effectivement leS messageS d'erreurs détaillés en disent long ......

#10 Path

Path

    Made By Humans

  • Modérateur
  • PipPipPipPipPip
  • 2 504 messages
  • Gender:Male
  • Location:Paris

Posté 15 octobre 2016 - 12:50

C'est vrai que le c++ arduino est un peu particulier. J'avoue que je casse encore les dents avec les classes si je veux le faire à la façon c++ classique.

En lisant cette ligne :

no matching function for call to 'Sweeper::Sweeper()' 

C'est au moment où tu crée ton tableau. le compilateur ne peut appeler que le constructeur vide (sans arguments).

En construisant le tableau de Sweepers, il va instancier ta classe autant de fois que tu as d'éléments dans le tableau. Et pour instancier, il lui faut un constructeur.

Sweeper sweeperArray[NSERVO];

Essais en ajoutant un constructeur sans arguments.

Et à la place du constructeur qui prend l'interval en argument, tu fait une méthode 'init'.

public:
  Sweeper() {}
  
  void init(int interval)
  {
    updateInterval = interval;
    increment = 1;
  }

 

Dans ton setup(), ça donne :

for( uint8_t i=0; i<NSERVO; i++)
{
    sweeperArray[i].init(25);
    sweeperArray[i].Attach(2+i );
}
 

Et pour ne faire qu'un appel, tu peus rassembler init() et Attach().

 

Après, tu vas avoir des warnings si tu compare des signed et des unsigned dans ta méthode Update, dans ton premier if.

 

PS. par convention, on ne mets pas de majuscules aux méthodes. Uniquement au nom de classe et (forcement) au constructeur ;)

 

 

 

EDIT :

 

Tu peux aussi faire un truc plus simple.

sweeperArray[i] = Sweeper();

ça marche aussi :D

 

 

EDIT 2 :

 

Tu peux aussi faire ça

Sweeper sweeper1(1); 
Sweeper sweeper2(2); 

Sweeper arrayOfSweepers[2] = { sweeper1, sweeper2 }

​

Bref, prends quand même le temps de comprendre les classes arduino. Et fais gaffe aux majuscules ;)


Modifié par Path, 15 octobre 2016 - 01:06 .
Rectification bis


#11 Telson

Telson

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 975 messages
  • Gender:Male
  • Location:Punaauai - Tahiti

Posté 15 octobre 2016 - 01:01

OH yé !!

 

Pas de message d'erreur à la compilation !!!!


MERCI   :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping: :clapping:






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users