#include <Arduino_FreeRTOS.h>
//#include "task.h"
TaskHandle_t TaskHandle_2 ; // handler de Task2
const int tau = 50; //délai de retard
int intru = 0;
void setup ()
{
 Serial .begin (9600 ); // Enable serial communication library.
 pinMode (4, INPUT ); // entrée du capteur de présence
 pinMode(9, INPUT); //capteur de présence TOR
 pinMode (7, OUTPUT ); //témoin système demarré sur le pin 7
 pinMode (13, OUTPUT ); //témoin visuel de l'alarme sur le pin num. 13 
 pinMode (11, OUTPUT );//tonalité de l'alarme pin 11
 xTaskCreate (Task1 , "Surveillance" , 100 , NULL , 1, NULL ); /* ……………………………………………
………………………………………………………………………………………………………………...*/
 vTaskStartScheduler (); // ………………………………………………………………………………….
}
void loop ()
{
// ne rien faire
}
void Task1 (void * pvParameters ) // ……………………………………………………………………….
{
 while (1){
  if(digitalRead (4)){ // …………………………………………...
  Serial .println ("Survéillance active.." ); 
  digitalWrite(7, HIGH);
  //vTaskDelay(tau/portTICK_PERIOD_MS);//delay(tau); // mise en attente d’une durée de tau (ms)
    if (digitalRead(9))
    {
      xTaskCreate (Task_alarme , "Alarme" , 100 , NULL , 2, &TaskHandle_2); /*…………………………………........*/
    }
  }
 }
}
void Task_alarme(void * pvParameters){
 while(1){
   digitalWrite(7, LOW);
   digitalWrite(13, HIGH);
   Serial .println ("Intrusion!");
   tone(11, 600, 50);
   
   if(!digitalRead (4)){
     Serial .println ("----------Alarme désactivée!-------------");
     digitalWrite(13, LOW);//delay(500);
     vTaskDelete (NULL); // Désactiver l'alarme
   }  
   //else noTone(11);//vTaskDelay(tau/portTICK_PERIOD_MS);//delay(100);
   //taskYIELD();
 }
}
/*
void blink_LED(void * pvParameters){
  digitalWrite(13, HIGH);
  delay(10);//vTaskDelay(tau/portTICK_PERIOD_MS);
  digitalWrite(13, LOW);
  delay(10);//vTaskDelay(tau/portTICK_PERIOD_MS);//delay(tp_ms);
  vTaskDelete(NULL);
}
*/