//Test de désactivation de tâche

#include "ordonnanceur.h"

void loop1();
tache t1(loop1, 1000);
void loop1()
{
  Serial_print_millis();
  Serial.println("execution tache 1");
}

void loop2();
tache t2(loop2, 1000);
void loop2()
{
  static uint8_t compteur_exec = 0;
  compteur_exec++;
  
  Serial_print_millis();
  Serial.print("execution tache 2");
  if (compteur_exec == 5)
  {
    Serial.print(", desactivation tache 1");
    t1.changerFonction(NULL);
  }
  if (compteur_exec == 10)
  {
    Serial.print(", activation tache 1");
    t1.changerFonction(loop1);
    compteur_exec = 0;
  }
  Serial.println();
}

void setup()
{
  Serial.begin(115200);
  ordonnanceur.lancer();
}

void loop() {}

void Serial_print_millis()
{
  Serial.print("millis()=");
  Serial_print_int(millis(), 8);
  Serial.print(", ");
}

void Serial_print_int(uint32_t nombre, uint8_t nb_chiffres)
{
  uint32_t puissancedix = 1;
  for (uint8_t i=1; i<nb_chiffres; i++) puissancedix *= 10;
  while (puissancedix > nombre && puissancedix > 1)
  {
    Serial.print('0');
    puissancedix /= 10;
  }
  Serial.print(nombre);
}