void process_data ()
{
  if (DEBUG) Serial << "Commande : " << command << " Valeur : " << receivedNumber << endl ;
  switch (command) {
    case 'N':
      minutes5 = 1;
      BTserial.write("*DMinutes ON \n*");
      break;
    case 'F':
      minutes5 = 0;
      BTserial.write("*DMinutes OFF\n*");
      break;
    case 'O':
      fond = 1;
      couleur_fond = CRGB(200, 200, 200);
      digitalWrite(LED_BUILTIN, HIGH);
      BTserial.write("*DFond ON \n*");
      break;
    case 'E':
      fond = 0;
      digitalWrite(LED_BUILTIN, LOW);
      BTserial.write("*DFond OFF\n*");
      break;
    case 'U':
      {
        numero_hue = receivedNumber;
        BTserial.print("*DCouleur : " + String(numero_hue) + "\n*");
        BTserial.print("*V" + String(numero_hue) + "*");
        CHSV coulHSV = CHSV(numero_hue, 255, 255);
        CRGB coulRGB;
        hsv2rgb_rainbow (coulHSV, coulRGB);
        byte r = coulRGB.red;
        byte g = coulRGB.green;
        byte b = coulRGB.blue;
        BTserial.print("*LR" + String(r) + "G" + String(g) + "B" + String(b) + "*");
      }
      break;
    case 'A':
      anim = receivedNumber;
      BTserial.print("*DAnimation : " + String(anim) + "\n*");
      BTserial.print("*B" + String(anim) + "*");
      break;
    case 'P':
      numero_pal = receivedNumber;
      BTserial.print("*DPalette : " + String(numero_pal) + "\n*");
      BTserial.print("*Q" + String(numero_pal) + "*");
      if (anim == BBR) {
        switch (numero_pal) {
          case 0:
            BTserial.write("*DDrapeau Francais\n*");
            break;
          case 1:
            BTserial.write("*DDrapeau Italien\n*");
            break;
          case 2:
            BTserial.write("*DDrapeau Bulgare\n*");
            break;
          case 3:
            BTserial.write("*DDrapeau Irlandais\n*");
            break;
          case 4:
            BTserial.write("*DDrapeau Roumain\n*");
            break;
        }
      }
      break;
    case 'H':
      heures = receivedNumber % 12;
      secondes = 0;
      BTserial.print("*DHeures : " + String(heures) + "\n*");
      break;
    case 'M':
      minutes = receivedNumber % 60;
      secondes = 0;
      BTserial.print("*DMinutes : " + String(minutes) + "\n*");
      break;
    case 'S':
      secondes = receivedNumber % 60;
      BTserial.print("*DSecondes : " + String(secondes) + "\n*");
      break;
    default:
      BTserial.print("*DCommande non reconnue : " + String(command) + "\n*");
      break;
  }
  delay(10);
}

void processIncomingByte (const byte inByte)
{
  switch (inByte)
  {
    case '*':   // endmarker
      process_data ();
      receivedNumber = 0;
      break;

    case '0' ... '9':
      receivedNumber *= 10;
      receivedNumber += inByte - '0';
      break;

    default:
      command = inByte;
      receivedNumber = 0;
      break;
  }
}
