<?php
// ini_set('display_errors', 1); 
header("Content-Type: text/plain");
date_default_timezone_set('Africa/Douala');

//6E756E6B776F001809
//Initialisation

	$random_file = fopen("./default.txt", "a+");
	$str = json_encode($_GET);
	fwrite($random_file, $str."\n");
	fclose($random_file);

$result = array();
$result["error"]="0";
$result["err_desc"]="";
$result["cmd1"]="";
$result["cmdcontent1"]="";
$result["cmd2"]="";
$result["cmdcontent2"]="";

include ("connexiondb.php");
include('./fct_curl.php');



if(isset($_GET["a"]) && trim($_GET["a"])=="getrtc" && isset($_GET["adjust_time_id"]) && trim($_GET["adjust_time_id"])!="" &&  isset($_GET["lt"]) && trim($_GET["lt"]) !="" ){
		
	$random_file = fopen("./upload_getrtc.txt", "a+");
	$str = json_encode($_GET);
	fwrite($random_file, $str."\n");
	fclose($random_file);
	
	
		//*********************************DEBUT HORLOGE **********************************
	
	$ladate=date('Y-m-d H:i:s');
	$seconds =floatval(date('s'));
	$minutes =floatval(date('i'));
	$hours =floatval(date('H'));
	$dw = floatval(date('w'))+1;
	$dm =floatval(date('d'));
	$month =floatval(date('m'));
	$year =floatval(date('Y'));



	// Debut Commande Config
	$config=array();
	$config["seconds"]=$seconds; 
	$config["minutes"]=$minutes; 
	$config["hours"]=$hours; 
	$config["dw"]=$dw; 
	$config["dm"]=$dm; 
	$config["month"]=$month; 
	$config["year"]=$year; 
	$result["cmd1"]="getrtc";
	$result["cmdcontent1"]=$config;
	// Fin Commande Config
	//*********************************FIN HORLOGE **********************************

	

	$DEVICE_SERIAL_NUMBER = mysqli_real_escape_string($link, $_GET["dev_sn"]);
	$ADJUST_TIME_ID = mysqli_real_escape_string($link, $_GET["adjust_time_id"]);   
	$DEVICE_DATE_TIME = mysqli_real_escape_string($link, $_GET["lt"]);   
	
	$DEVICE_ID = "";
	
	$sqlB ="SELECT DEVICE_ID FROM `devices`
	WHERE ACTIVE = '1' AND DELETED = '0' AND DEVICE_SERIAL_NUMBER = '".$DEVICE_SERIAL_NUMBER."' LIMIT 1 ";  
									
								
	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);
	
	
	if(mysqli_num_rows($queryB) > 0){
		while($dataB = mysqli_fetch_array($queryB)){ 

			$DEVICE_ID = mysqli_real_escape_string($link, $dataB["DEVICE_ID"]);    			
		
		}
	}

				
	$ADJUST_TIME_EVENT_ID = "AT_".date('YmdHis')."_".rand(100, 999)."_".rand(100, 999);   
	$SERVER_DATE_TIME = mysqli_real_escape_string($link, $ladate);	
	

	
	
	$sql = "INSERT INTO  adjust_time_events (ADJUST_TIME_EVENT_ID,DEVICE_ID,DEVICE_SERIAL_NUMBER,
	ADJUST_TIME_ID,DEVICE_DATE_TIME,SERVER_DATE_TIME)     
			VALUES ('".$ADJUST_TIME_EVENT_ID."','".$DEVICE_ID."','".$DEVICE_SERIAL_NUMBER."',
			'".$ADJUST_TIME_ID."','".$DEVICE_DATE_TIME."','".$SERVER_DATE_TIME."')";  		   	
	
	$query = mysqli_query($link,$sql);		
	
	




	$response = json_encode($result,JSON_FORCE_OBJECT | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

	ob_clean();

	echo "##**##".$response."#*#*";
	// echo "#".$response."^";
	 
	exit;


}

if(isset($_GET["a"]) && trim($_GET["a"])=="getconfig"  && isset($_GET["dev_sn"]) && trim($_GET["dev_sn"])!="" ){

	//*********************************DEBUT CONFIGURATION GENERALE **********************************

	// Debut Commande Config
	$config=array();
	
	

	$DEVICE_SERIAL_NUMBER = mysqli_real_escape_string($link, $_GET["dev_sn"]);
	
	
	// $DEVICE_ID = "";

	 $sqlB ="SELECT
	devices.DEVICE_ID,
	devices.DEVICE_NAME,
	devices.DEVICE_SERIAL_NUMBER,
	devices.MODELE,
	devices.IP_ADDRESS,
	devices.MASK,
	devices.GATEWAY,
	devices.DNS,
	devices.SERVER_ADDRESS,
	devices.SERVER_PORT,
	devices.MOD_COM,
	devices.POOLING_TIME,
	devices.APN,
	devices.APN_USER,
	devices.APN_PASSWORD
	FROM `devices`
	WHERE DELETED = '0' AND ACTIVE 	= '1'
	AND DEVICE_SERIAL_NUMBER = '".$DEVICE_SERIAL_NUMBER."' LIMIT 1 ";  
					
								
	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);
	
	
	if(mysqli_num_rows($queryB) > 0){
		while($dataB = mysqli_fetch_array($queryB)){ 

			$config["IP_ADDRESS"] = $dataB["IP_ADDRESS"];    			
			$config["MASK"] = $dataB["MASK"];    			
			$config["GATEWAY"] = $dataB["GATEWAY"];    			
			$config["DNS"] = $dataB["DNS"];    			
			$config["SERVER_ADDRESS"] = $dataB["SERVER_ADDRESS"];    			
			$config["SERVER_PORT"] = $dataB["SERVER_PORT"];    			
			$config["MOD_COM"] = $dataB["MOD_COM"];    			
			$config["DEVICE_NAME"] = $dataB["DEVICE_NAME"];    			
			$config["POOLING_TIME"] = intval($dataB["POOLING_TIME"]);    			
			$config["APN"] = $dataB["APN"];    			
			$config["APNUSER"] = $dataB["APN_USER"];    			
			$config["APNPASSWORD"] = $dataB["APN_PASSWORD"];    			
			 			
		
		}
	}
	

	 $result["cmd1"]="config";
	 $result["cmdcontent1"]=$config;
	// Fin Commande Config
	//*********************************FIN CONFIGURATION GENERALE **********************************



	$response = json_encode($result,JSON_FORCE_OBJECT | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

	ob_clean();

	echo "##**##".$response."#*#*";
	// echo "#".$response."^";
	 
	exit;

}


if(isset($_GET["a"]) && trim($_GET["a"])=="getobjlist" && isset($_GET["dev_sn"]) && trim($_GET["dev_sn"])!="" ){ 
	
	
//*********************************DEBUT RECUPERATION LISTE DES OBJETS **********************************

if(isset($_GET["bloc"])){ 
	
	$numero_bloc = floatval($_GET["bloc"]);
	
	$debut_bloc = (($numero_bloc -1)*10)+1;
	
	$fin_bloc = $debut_bloc+9;
	
	
	
}else{

	$numero_bloc = 1;
	
	$debut_bloc = (($numero_bloc -1)*10)+1;
	
	$fin_bloc = $debut_bloc+9;
	
} 

	// Debut Commande Config
	$config=array();


	$DEVICE_SERIAL_NUMBER = mysqli_real_escape_string($link, $_GET["dev_sn"]);
	

	$sqlB ="SELECT OBJET_ID FROM `obj_pin` WHERE DELETED = '0'
	AND DEVICE_SERIAL_NUMBER = '".$DEVICE_SERIAL_NUMBER."' GROUP BY OBJET_ID ORDER BY OBJET_ID ASC";   
									
								
	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);
	
	$nbre = mysqli_num_rows($queryB);
	
	if($fin_bloc>=$nbre){
		
		$result["endlist"]="1";
		
	}else{
		
		$result["endlist"]="0";
		
	}

	$i=1;

	if($nbre > 0){
		while($dataB = mysqli_fetch_array($queryB)){  

			if($i>=$debut_bloc && $i<=$fin_bloc){
				
				$config[] = $dataB["OBJET_ID"]; /* LE NOMBRE MAXIMAL DE CARACTERE EST 8*/    
			}

			$i++;				
		
		}
	}

	$nb_obj = mysqli_num_rows($queryB);      

	
	$result["nb_obj"] =$nb_obj; 
	$result["cmd1"]="objlist";
	$result["cmdcontent1"]=$config;

	$response = json_encode($result,JSON_FORCE_OBJECT | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

	ob_clean();

	echo "##**##".$response."#*#*";
	// echo "#".$response."^";
	 
	exit;	
//*********************************FIN RECUPERATION LISTE DES OBJETS **********************************

}

if(isset($_GET["a"]) && trim($_GET["a"])=="update"  && isset($_GET["to_send"])  && trim($_GET["to_send"])!="" ){ 
	

//*********************************DEBUT RECUPERATION CONFIGURATION OBJET **********************************

$result["cmd1"]="update";

//*********************************FIN RECUPERATION CONFIGURATION OBJET **********************************

 $random_file = fopen("./upload_data.txt", "a+");
 $str = json_encode($_GET);
 fwrite($random_file, $str."\n");
 fclose($random_file);
/*
 $random_file = fopen("./upload_data.html", "w");
 $str = json_encode($_GET);
 $str ='<html>
 <head>
  <meta http-equiv="refresh" content="5">
</head>
<body>
<h3>'.$str.'</h3>
</body>
</html>';



 fwrite($random_file, $str."\n");
 fclose($random_file);
*/

//{"a":"update","dt":"2022-03-01 20:15:40","to_send":" NAN; NAN; NAN; NAN; NAN","objid":"22418345.CFG","dev_sn":"6E756E6B776F001809"}


	$DEVICE_SERIAL_NUMBER = mysqli_real_escape_string($link, $_GET["dev_sn"]);
	$OBJET_ID = mysqli_real_escape_string($link, $_GET["objid"]);
	$EVENT_DATE = mysqli_real_escape_string($link, $_GET["dt"]);
	$ADJUST_TIME_ID = mysqli_real_escape_string($link, $_GET["adjust_time_id"]); 
	
	$INSERTION_DATE = date('Y-m-d H:i:s');
	
	
	// $DEVICE_ID = "";

	$sqlB ="SELECT
	devices.APP_ACCOUNT_ID,
	devices.DEVICE_ID,
	devices.DEVICE_NAME,
	devices.DEVICE_SERIAL_NUMBER,
	devices.MODELE,
	devices.IP_ADDRESS,
	devices.MASK,
	devices.GATEWAY,
	devices.DNS,
	devices.SERVER_ADDRESS,
	devices.SERVER_PORT,
	devices.MOD_COM,
	devices.ENTREPRISE_ID,
	devices.ENTREPRISE_NAME,
	sites_details.SITE_ID,
	sites_details.SITE_NAME,
	sites_details.SITE_DETAILS_ID,
	sites_details.SITE_DETAILS_NAME,
	devices.POOLING_TIME,
	obj_pin.OBJET_ID,
	obj_pin.PIN_MODE,
	obj_pin.OBJET_NAME,
	obj_pin.OBJ_MODEL_ID,
	obj_pin.OBJ_MODEL_NAME,
	obj_pin.MODELE_ANALOGIQUE_ID
	FROM `devices`
	INNER JOIN obj_pin ON devices.DEVICE_ID=obj_pin.DEVICE_ID AND obj_pin.OBJET_ID='".$OBJET_ID."'
	INNER JOIN sites_details ON sites_details.SITE_DETAILS_ID = devices.SITE_DETAILS_ID
	WHERE devices.DELETED = '0' AND devices.ACTIVE 	= '1'
	AND devices.DEVICE_SERIAL_NUMBER = '".$DEVICE_SERIAL_NUMBER."' LIMIT 1 ";

	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);
	
	
	if(mysqli_num_rows($queryB) > 0){
		while($dataB = mysqli_fetch_array($queryB)){ 

			$APP_ACCOUNT_ID = $dataB["APP_ACCOUNT_ID"];    			
			$DEVICE_ID = $dataB["DEVICE_ID"];    			
			$IP_ADDRESS = $dataB["IP_ADDRESS"];    			
			$MASK = $dataB["MASK"];    			
			$GATEWAY = $dataB["GATEWAY"];    			
			$DNS = $dataB["DNS"];    			
			$SERVER_ADDRESS = $dataB["SERVER_ADDRESS"];    			
			$SERVER_PORT = $dataB["SERVER_PORT"];    			
			$MOD_COM = $dataB["MOD_COM"];    			
			$DEVICE_NAME = $dataB["DEVICE_NAME"];    			
			$POOLING_TIME = intval($dataB["POOLING_TIME"]);    			
			$MODELE = $dataB["MODELE"];    			
			$DEVICE_SERIAL_NUMBER = $dataB["DEVICE_SERIAL_NUMBER"];    			
			$OBJET_NAME = $dataB["OBJET_NAME"];    			
			$OBJ_MODEL_ID = $dataB["OBJ_MODEL_ID"];    			
			$OBJ_MODEL_NAME = $dataB["OBJ_MODEL_NAME"]; 		
			$ENTREPRISE_ID = $dataB["ENTREPRISE_ID"]; 		
			$ENTREPRISE_NAME = $dataB["ENTREPRISE_NAME"]; 		
			$SITE_ID = $dataB["SITE_ID"]; 		
			$SITE_NAME = $dataB["SITE_NAME"]; 		
			$SITE_DETAILS_ID = $dataB["SITE_DETAILS_ID"]; 		
			$SITE_DETAILS_NAME = $dataB["SITE_DETAILS_NAME"]; 
			$PIN_MODE = $dataB["PIN_MODE"]; 
			$MODELE_ANALOGIQUE_ID = $dataB["MODELE_ANALOGIQUE_ID"]; 
		 			
			 			
		
		}
	}else{
		
		goto FIN_UPDATE;
	}
	
	if($OBJ_MODEL_ID =="PWM"){
			
			
			$ACTIVITES_PWM_ID = "PWM_".date('YmdHis')."_".rand(100, 999)."_".rand(100, 999);   
			$to_send = explode(";", $_GET["to_send"]);
			$VOLTAGE = floatval($to_send[0]);
			$CURRENT = floatval($to_send[1]);
			$POWER = floatval($to_send[2]);
			$ENERGY = floatval($to_send[3]);
			$FREQUENCY = floatval($to_send[4]);
			$PF = floatval($to_send[5]);
			$TYPE_MEASUREMENT = "PWM";
			
			
			$sqlB ="INSERT INTO activites_pwm (
			ACTIVITES_PWM_ID, APP_ACCOUNT_ID, DEVICE_ID, DEVICE_NAME, OBJET_ID, OBJET_NAME, OBJ_MODEL_ID, 
			OBJ_MODEL_NAME, VOLTAGE, CURRENT, POWER, ENERGY, FREQUENCY, PF, TYPE_MEASUREMENT, DEVICE_SERIAL_NUMBER, 
			MODELE, MOD_COM, ENTREPRISE_ID, ENTREPRISE_NAME, SITE_ID, SITE_NAME, SITE_DETAILS_ID, SITE_DETAILS_NAME, 
			ADJUST_TIME_ID, INSERTION_DATE, EVENT_DATE)
			VALUES ('".$ACTIVITES_PWM_ID."','".$APP_ACCOUNT_ID."','".$DEVICE_ID."','".$DEVICE_NAME."','".$OBJET_ID."','".$OBJET_NAME."','".$OBJ_MODEL_ID."',
			'".$OBJ_MODEL_NAME."','".$VOLTAGE."','".$CURRENT."','".$POWER."','".$ENERGY."','".$FREQUENCY."','".$PF."','".$TYPE_MEASUREMENT."','".$DEVICE_SERIAL_NUMBER."',
			'".$MODELE."','".$MOD_COM."','".$ENTREPRISE_ID."','".$ENTREPRISE_NAME."','".$SITE_ID."','".$SITE_NAME."','".$SITE_DETAILS_ID."','".$SITE_DETAILS_NAME."',
			'".$ADJUST_TIME_ID."','".$INSERTION_DATE."','".$EVENT_DATE."')";


			 $random_file = fopen("./sql_upload_data.txt", "a+");
			 fwrite($random_file, $sqlB."\n");
			 fclose($random_file);

			// on envoie la requête
			$queryB = mysqli_query($link,$sqlB);
			

		
	}elseif($OBJ_MODEL_ID =="AO" || $OBJ_MODEL_ID =="AI"){
		
		
						
			$ACTIVITES_ANALOG_ID = "AIO_".date('YmdHis')."_".rand(100, 999)."_".rand(100, 999);   
			$to_send = trim($_GET["to_send"]);
			$ADC_PIN_VALUE = floatval($to_send);
			
			$ANALOG_VALUE = (floatval($to_send)/1024)*100;  //Valeur en pourcentage au ca ou on est dans AO
			$ANALOG_UNITE = "%";  //Valeur en pourcentage au ca ou on est dans AO
			
			if($OBJ_MODEL_ID =="AI"){
				
									 $random_file = fopen("./analog_value_from_obj_mode.txt", "a+");
 
 fwrite($random_file, $OBJ_MODEL_ID."\n");
 fclose($random_file);	
				
				$param_model_ai =array();
				
				$param_model_ai["MODELE_ANALOGIQUE_ID"]=$MODELE_ANALOGIQUE_ID;
				$param_model_ai["OBJET_ID"]=$OBJET_ID;
				$param_model_ai["ADC_PIN_VALUE"]=$ADC_PIN_VALUE;
				
				$resultat_ai = analog_value_from_obj_mode($param_model_ai);

				$ANALOG_VALUE = floatval($resultat_ai["ANALOG_VALUE"]);
				$ANALOG_UNITE = $resultat_ai["ANALOG_UNITE"];
				
				
			}
			

			
			if($PIN_MODE=="0"){
				
				$PIN_MODE="INPUT";
			}
			if($PIN_MODE=="1"){
				
				$PIN_MODE="OUTPUT";
			}
			

			$sqlB ="INSERT INTO  activites_analog_io 
			(ACTIVITES_ANALOG_ID,APP_ACCOUNT_ID,DEVICE_ID,DEVICE_NAME,OBJET_ID,OBJET_NAME,OBJ_MODEL_ID,OBJ_MODEL_NAME,
			PIN_MODE,ADC_PIN_VALUE,ANALOG_VALUE,ANALOG_UNITE,
			DEVICE_SERIAL_NUMBER,MODELE,MOD_COM,ENTREPRISE_ID,ENTREPRISE_NAME,SITE_ID,
			SITE_NAME,SITE_DETAILS_ID,SITE_DETAILS_NAME,ADJUST_TIME_ID,INSERTION_DATE,EVENT_DATE)
			VALUES
			('".$ACTIVITES_ANALOG_ID."','".$APP_ACCOUNT_ID."','".$DEVICE_ID."','".$DEVICE_NAME."','".$OBJET_ID."','".$OBJET_NAME."',
			'".$OBJ_MODEL_ID."','".$OBJ_MODEL_NAME."','".$PIN_MODE."','".$ADC_PIN_VALUE."','".$ANALOG_VALUE."','".$ANALOG_UNITE."',
			'".$DEVICE_SERIAL_NUMBER."','".$MODELE."','".$MOD_COM."','".$ENTREPRISE_ID."','".$ENTREPRISE_NAME."','".$SITE_ID."',
			'".$SITE_NAME."','".$SITE_DETAILS_ID."','".$SITE_DETAILS_NAME."','".$ADJUST_TIME_ID."','".$INSERTION_DATE."','".$EVENT_DATE."')";


			 $random_file = fopen("./sql_upload_data.txt", "a+");
			 fwrite($random_file, $sqlB."\n");
			 fclose($random_file);

			// on envoie la requête
			$queryB = mysqli_query($link,$sqlB);
			

		
	}elseif($OBJ_MODEL_ID =="DO" || $OBJ_MODEL_ID =="DI"){
		
					
			$ACTIVITES_DIGITAL_ID = "DIO_".date('YmdHis')."_".rand(100, 999)."_".rand(100, 999);   
			$to_send = trim($_GET["to_send"]);
			$PIN_VALUE = floatval($to_send);
			
			if($PIN_MODE=="0"){
				
				$PIN_MODE="INPUT";
			}
			if($PIN_MODE=="1"){
				
				$PIN_MODE="OUTPUT";
			}
			
			$sqlB ="INSERT INTO activites_digital_io
			(ACTIVITES_DIGITAL_ID,APP_ACCOUNT_ID,DEVICE_ID,DEVICE_NAME,OBJET_ID,OBJET_NAME,OBJ_MODEL_ID,
			OBJ_MODEL_NAME,PIN_MODE,PIN_VALUE,DEVICE_SERIAL_NUMBER,MODELE,MOD_COM,
			ENTREPRISE_ID,ENTREPRISE_NAME,SITE_ID,SITE_NAME,SITE_DETAILS_ID,
			SITE_DETAILS_NAME,ADJUST_TIME_ID,INSERTION_DATE,EVENT_DATE)
			VALUES
			('".$ACTIVITES_DIGITAL_ID."','".$APP_ACCOUNT_ID."','".$DEVICE_ID."','".$DEVICE_NAME."','".$OBJET_ID."','".$OBJET_NAME."','".$OBJ_MODEL_ID."',
			'".$OBJ_MODEL_NAME."','".$PIN_MODE."','".$PIN_VALUE."','".$DEVICE_SERIAL_NUMBER."','".$MODELE."','".$MOD_COM."',
			'".$ENTREPRISE_ID."','".$ENTREPRISE_NAME."','".$SITE_ID."','".$SITE_NAME."','".$SITE_DETAILS_ID."',
			'".$SITE_DETAILS_NAME."','".$ADJUST_TIME_ID."','".$INSERTION_DATE."','".$EVENT_DATE."')";


			 $random_file = fopen("./sql_upload_data.txt", "a+");
			 fwrite($random_file, $sqlB."\n");
			 fclose($random_file);

			// on envoie la requête
			$queryB = mysqli_query($link,$sqlB);
			
			
			

			
		
	}
	
	
/*============================================================================================================================================*/
/*====================================================== DEBUT TRAITEMENT DES ALARMES ========================================================*/
/*============================================================================================================================================*/


		
		$sqlB ="SELECT
			objets_alarmes.OBJET_ALARME_ID,
			objets_alarmes.OBJET_ID,
			objets_alarmes.DEVICE_ID,
			objets_alarmes.ALARM_MODEL_ID,
			objets_alarmes.ALARM_MODEL_NAME,
			alarm_model_by_obj_model.ALARM_EXPRESSION,
			alarm_model_by_obj_model.ALARM_DESCRIPTION,
			alarm_model_by_obj_model.SEVERITY_ID,
			severity.SEVERITY_LEVEL
			FROM `objets_alarmes`
			INNER JOIN alarm_model_by_obj_model ON alarm_model_by_obj_model.ALARM_MODEL_ID = objets_alarmes.ALARM_MODEL_ID
			AND alarm_model_by_obj_model.DELETED = '0'
			LEFT OUTER JOIN severity ON severity.SEVERITY_ID = alarm_model_by_obj_model.SEVERITY_ID
			WHERE objets_alarmes.DELETED = '0' AND objets_alarmes.ACTIVE= '1'
			AND objets_alarmes.OBJET_ID = '".$OBJET_ID."' AND objets_alarmes.DEVICE_ID = '".$DEVICE_ID."'
			GROUP BY objets_alarmes.OBJET_ID,objets_alarmes.ALARM_MODEL_ID";  



			 $random_file = fopen("./sql_alarm_data.txt", "a+");
			 fwrite($random_file, $sqlB."\n");
			 fclose($random_file);
			 
		// on envoie la requête
		$queryB = mysqli_query($link,$sqlB);
		
		
		if(mysqli_num_rows($queryB) > 0){
			
			while($dataB = mysqli_fetch_array($queryB)){ 
			
				$OBJET_ALARME_ID = mysqli_real_escape_string($link,$dataB["OBJET_ALARME_ID"]);
				$ALARM_MODEL_ID = mysqli_real_escape_string($link,$dataB["ALARM_MODEL_ID"]);
				$ALARM_MODEL_NAME = mysqli_real_escape_string($link,$dataB["ALARM_MODEL_NAME"]);
				$ALARM_EXPRESSION = $dataB["ALARM_EXPRESSION"];
				$ALARM_DESCRIPTION = $dataB["ALARM_DESCRIPTION"]; 
				$SEVERITY_ID = mysqli_real_escape_string($link,$dataB["SEVERITY_ID"]); 
				$DELETED = '0';
				$START_EVENT_DATE = $EVENT_DATE;  
				
				$ALARME_DEVICE_ID = date('YmdHis')."_".rand(100, 999)."_".rand(100, 999); 
				
				// DECIMAL|||ANALOG_VALUE|||<|||211
				
				/*
				12	AI	ADC_PIN_VALUE	INT
				13	AI	ANALOG_VALUE	DECIMAL
				14	AO	ADC_PIN_VALUE	INT
				15	AO	ANALOG_VALUE	DECIMAL
				19	DI	PIN_VALUE	INT
				20	DO	PIN_VALUE	INT
				21	PWM	VOLTAGE	DECIMAL
				22	PWM	CURRENT	DECIMAL
				23	PWM	POWER	DECIMAL
				24	PWM	ENERGY	DECIMAL
				25	PWM	FREQUENCY	DECIMAL
				26	PWM	PF	DECIMAL
				27	PWM	TYPE_MEASUREMENT	STRING
				*/
				
				$ALARM_EXPRESSION_ARRAY = explode('|||',$ALARM_EXPRESSION);
				
				$FIELD_TYPE = $ALARM_EXPRESSION_ARRAY[0];
				$OUTPUT_FIELD = $ALARM_EXPRESSION_ARRAY[1];
				$OPERATOR = $ALARM_EXPRESSION_ARRAY[2];
				
				if($FIELD_TYPE == "DECIMAL" || $FIELD_TYPE == "INT"){
					$VALUE = floatval($ALARM_EXPRESSION_ARRAY[3]);
				}else{
					
					$VALUE = $ALARM_EXPRESSION_ARRAY[3];  
					
				}
				$variable = ${$OUTPUT_FIELD};
				
				$resultat_condition = false;
				
				
				if($OPERATOR == "="){
					
					if($variable == $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
				}elseif($OPERATOR == ">="){
					
					if($variable >= $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
					
				}elseif($OPERATOR == ">"){
					
					if($variable > $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
					
				}elseif($OPERATOR == "<="){
					
					if($variable <= $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
					
				}elseif($OPERATOR == "<"){
					
					if($variable < $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
					
				}elseif($OPERATOR == "<>"){
					
					if($variable <> $VALUE){
						$resultat_condition = true;
					}else{
						
						$resultat_condition = false;
					}
					
					
				}else{
						
					$resultat_condition = false;
				}
					
				/*
				
					DEVICE_NAME
					OBJET_NAME
					PIN_MODE
					ADC_PIN_VALUE
					ANALOG_VALUE
					ANALOG_UNITE
					DEVICE_SERIAL_NUMBER
					ENTREPRISE_NAME
					SITE_NAME
					EVENT_DATE
					PIN_VALUE
					VOLTAGE
					CURRENT
					POWER
					ENERGY
					FREQUENCY
					PF
					TYPE_MEASUREMENT
				*/
				if($resultat_condition == true){
					if(isset($DEVICE_NAME)){
						$ALARM_DESCRIPTION = str_replace("{DEVICE_NAME}",$DEVICE_NAME,$ALARM_DESCRIPTION);
					}
					
					if(isset($OBJET_NAME)){
						$ALARM_DESCRIPTION = str_replace("{OBJET_NAME}",$OBJET_NAME,$ALARM_DESCRIPTION);
					}
					
					if(isset($PIN_MODE)){
						$ALARM_DESCRIPTION = str_replace("{PIN_MODE}",$PIN_MODE,$ALARM_DESCRIPTION);
					}
					
					if(isset($ADC_PIN_VALUE)){
						$ALARM_DESCRIPTION = str_replace("{ADC_PIN_VALUE}",$ADC_PIN_VALUE,$ALARM_DESCRIPTION);
					}
					
					if(isset($ANALOG_VALUE)){
						$ALARM_DESCRIPTION = str_replace("{ANALOG_VALUE}",$ANALOG_VALUE,$ALARM_DESCRIPTION);
					}
					
					if(isset($ANALOG_UNITE)){
						$ALARM_DESCRIPTION = str_replace("{ANALOG_UNITE}",$ANALOG_UNITE,$ALARM_DESCRIPTION);
					}
					
					if(isset($DEVICE_SERIAL_NUMBER)){
						$ALARM_DESCRIPTION = str_replace("{DEVICE_SERIAL_NUMBER}",$DEVICE_SERIAL_NUMBER,$ALARM_DESCRIPTION);
					}
					
					if(isset($ENTREPRISE_NAME)){
						$ALARM_DESCRIPTION = str_replace("{ENTREPRISE_NAME}",$ENTREPRISE_NAME,$ALARM_DESCRIPTION);
					}
					
					if(isset($SITE_NAME)){
						$ALARM_DESCRIPTION = str_replace("{SITE_NAME}",$SITE_NAME,$ALARM_DESCRIPTION);
					}
					
					if(isset($EVENT_DATE)){
						$ALARM_DESCRIPTION = str_replace("{EVENT_DATE}",$EVENT_DATE,$ALARM_DESCRIPTION);
					}
					
					if(isset($PIN_VALUE)){
						$ALARM_DESCRIPTION = str_replace("{PIN_VALUE}",$PIN_VALUE,$ALARM_DESCRIPTION);
					}
					
					if(isset($VOLTAGE)){
						$ALARM_DESCRIPTION = str_replace("{VOLTAGE}",$VOLTAGE,$ALARM_DESCRIPTION);
					}
					
					if(isset($CURRENT)){
						$ALARM_DESCRIPTION = str_replace("{CURRENT}",$CURRENT,$ALARM_DESCRIPTION);
					}
					
					if(isset($POWER)){
						$ALARM_DESCRIPTION = str_replace("{POWER}",$POWER,$ALARM_DESCRIPTION);
					}
					
					if(isset($ENERGY)){
						$ALARM_DESCRIPTION = str_replace("{ENERGY}",$ENERGY,$ALARM_DESCRIPTION);
					}
					
					if(isset($FREQUENCY)){
						$ALARM_DESCRIPTION = str_replace("{FREQUENCY}",$FREQUENCY,$ALARM_DESCRIPTION);
					}
					
					if(isset($PF)){
						$ALARM_DESCRIPTION = str_replace("{PF}",$PF,$ALARM_DESCRIPTION);
					}
					
					if(isset($TYPE_MEASUREMENT)){
						$ALARM_DESCRIPTION = str_replace("{TYPE_MEASUREMENT}",$TYPE_MEASUREMENT,$ALARM_DESCRIPTION);
					}
					
					$ALARM_DESCRIPTION = mysqli_real_escape_string($link, $ALARM_DESCRIPTION);  
					
					$sqlM ="INSERT INTO alarms_devices
					(APP_ACCOUNT_ID,ALARME_DEVICE_ID,DEVICE_ID,DEVICE_NAME,OBJET_ID,OBJET_NAME,
					OBJET_ALARME_ID,ALARM_MODEL_ID,ALARM_MODEL_NAME,ALARM_EXPRESSION,ALARM_DESCRIPTION,SEVERITY_ID,
					DEVICE_SERIAL_NUMBER,MODELE,MOD_COM,DELETED,ENTREPRISE_ID,ENTREPRISE_NAME,SITE_ID,SITE_NAME,
					SITE_DETAILS_ID,SITE_DETAILS_NAME,INSERTION_DATE,START_EVENT_DATE,END_EVENT_DATE)
					SELECT 
					'".$APP_ACCOUNT_ID."','".$ALARME_DEVICE_ID."','".$DEVICE_ID."','".$DEVICE_NAME."','".$OBJET_ID."','".$OBJET_NAME."',
					'".$OBJET_ALARME_ID."','".$ALARM_MODEL_ID."','".$ALARM_MODEL_NAME."','".$ALARM_EXPRESSION."','".$ALARM_DESCRIPTION."',
					'".$SEVERITY_ID."','".$DEVICE_SERIAL_NUMBER."','".$MODELE."','".$MOD_COM."','".$DELETED."','".$ENTREPRISE_ID."',
					'".$ENTREPRISE_NAME."','".$SITE_ID."','".$SITE_NAME."','".$SITE_DETAILS_ID."','".$SITE_DETAILS_NAME."',
					'".$INSERTION_DATE."','".$START_EVENT_DATE."','".$END_EVENT_DATE."' FROM DUAL
					WHERE NOT EXISTS  (SELECT ALARME_DEVICE_ID FROM alarms_devices 
					WHERE DEVICE_ID = '".$DEVICE_ID."' AND ALARM_MODEL_ID = '".$ALARM_MODEL_ID."' AND   OBJET_ID = '".$OBJET_ID."'
					AND END_EVENT_DATE = '0000-00-00 00:00:00' LIMIT 1)
					";
					
					
			 $random_file = fopen("./sql_alarm_data.txt", "a+");
			 fwrite($random_file, $sqlM."\n");
			 fclose($random_file);
	   
					// on envoie la requête
					$queryM = mysqli_query($link,$sqlM); 
					
				}else{
					
					
					$sqlM ="UPDATE alarms_devices SET
					END_EVENT_DATE = '".$EVENT_DATE."'
					WHERE DEVICE_ID = '".$DEVICE_ID."' AND ALARM_MODEL_ID = '".$ALARM_MODEL_ID."' AND OBJET_ID = '".$OBJET_ID."' AND END_EVENT_DATE = '0000-00-00 00:00:00'";
	   				
			 $random_file = fopen("./sql_alarm_data.txt", "a+");
			 fwrite($random_file, $sqlM."\n");
			 fclose($random_file);
	   
					// on envoie la requête
					$queryM = mysqli_query($link,$sqlM); 
					
					
					
				}
				
				       
				

			}    
			
			
		}


/*============================================================================================================================================*/
/*====================================================== FIN TRAITEMENT DES ALARMES ========================================================*/
/*============================================================================================================================================*/





/*============================================================================================================================================*/
/*================================================= DEBUT RECUPERATION DES COMMANDES EN COURS ==================================================*/
/*============================================================================================================================================*/

	//Recupération des commandes en cours  

								
		$sqlB ="SELECT
		COMMAND_CONTENT,
		COMMAND_TO_EXECUTE_ID
		FROM `command_to_execute`

		WHERE DEVICE_ID='".$DEVICE_ID."' AND IS_EXECUTED='0' AND DELETED='0'
		ORDER BY CREATION_DATE ASC LIMIT 1";  

			 $random_file = fopen("./sql_cmd.txt", "a+");
			 fwrite($random_file, $sqlB."\n");
			 fclose($random_file);
								
	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);
	
	
	if(mysqli_num_rows($queryB) > 0){
		while($dataB = mysqli_fetch_array($queryB)){ 

			$COMMAND_CONTENT = $dataB["COMMAND_CONTENT"]; 

			$cmd_content_json = json_decode($COMMAND_CONTENT,true);
			
			if(isset($cmd_content_json["cmd"])){ 
					if($cmd_content_json["cmd"] == "resync_clock"){ 
						
								//*********************************DEBUT HORLOGE **********************************
			
								$ladate=date('Y-m-d H:i:s');
								$seconds =floatval(date('s'));
								$minutes =floatval(date('i'));
								$hours =floatval(date('H'));
								$dw = floatval(date('w'))+1;
								$dm =floatval(date('d'));
								$month =floatval(date('m'));
								$year =floatval(date('Y'));



								// Debut Commande Config
								$config=array();
								$config["cmd"]="resync_clock"; 
								$config["seconds"]=$seconds; 
								$config["minutes"]=$minutes; 
								$config["hours"]=$hours; 
								$config["dw"]=$dw; 
								$config["dm"]=$dm; 
								$config["month"]=$month; 
								$config["year"]=$year; 
								$result["cmdcontent1"]=$config;
								// Fin Commande Config
								//*********************************FIN HORLOGE **********************************

					}					
			}else{
				
				$result["cmdcontent1"]= json_decode($COMMAND_CONTENT,true);
			}
	

				
			$COMMAND_TO_EXECUTE_ID = $dataB["COMMAND_TO_EXECUTE_ID"];
			
			$result["cmd1"]="exec";
			
									
			$SqlD ="UPDATE command_to_execute
			SET
			IS_EXECUTED ='1',
			EXECUTION_DATE ='".date('Y-m-d H:i:s')."'
			WHERE COMMAND_TO_EXECUTE_ID ='".$COMMAND_TO_EXECUTE_ID."'";  	

			 $random_file = fopen("./sql_cmd22.txt", "a+");
			 fwrite($random_file, $SqlD."\n");
			 fclose($random_file);
			 
			// on envoie la requête
			$queryD = mysqli_query($link,$SqlD);
			
		
		}  
	}
	
/*============================================================================================================================================*/
/*================================================= FIN RECUPERATION DES COMMANDES EN COURS ==================================================*/
/*============================================================================================================================================*/

	
	/* ======================================= DEBUT NODEJS REALTIME MONITORING ======================================= */
	/*$random_file = fopen("./realtime_nodejs.txt", "a+");
	fwrite($random_file, $SITE_DETAILS_ID."\n");
	fclose($random_file);*/
	$params = array();
	$params["SITE_DETAILS_ID"] = $SITE_DETAILS_ID;
	realtime_monitoring($params);
	/* ======================================== FIN NODEJS REALTIME MONITORING ======================================== */
	



	FIN_UPDATE:
	
	$response = json_encode($result,JSON_FORCE_OBJECT | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

	ob_clean();

	echo "##**##".$response."#*#*";

}



if(isset($_GET["a"]) && trim($_GET["a"])=="getobjcfg"  && isset($_GET["objid"])  && trim($_GET["objid"])!=""   && isset($_GET["dev_sn"])  && trim($_GET["dev_sn"])!="" ){
	
/*getobjlist&dev_sn=6E756E6B776F001809


									<option value="AI|||ANALOG INPUT">ANALOG INPUT</option><option value="AO|||ANALOG OUTPUT">ANALOG OUTPUT</option><option value="DI|||DIGITAL INPUT">DIGITAL INPUT</option><option value="DO|||DIGITAL OUTPUT">DIGITAL OUTPUT</option><option value="M1|||MODBUS">MODBUS</option><option value="S1|||SERIAL">SERIAL</option>								
									

*/

	$random_file = fopen("./upload_getobjcfg.txt", "a+");
	$str = json_encode($_GET);
	fwrite($random_file, $str."\n");
	fclose($random_file);
		$DEVICE_SERIAL_NUMBER = mysqli_real_escape_string($link, $_GET["dev_sn"]);	
		$OBJET_ID = mysqli_real_escape_string($link, $_GET["objid"]);	
	
//*********************************DEBUT RECUPERATION CONFIGURATION OBJET **********************************


	$sqlB ="SELECT OBJET_ID, OBJ_MODEL_ID, PIN_MODE, PIN_VALUE, PIN_DIGITAL_NUMBER FROM `obj_pin`
	WHERE OBJET_ID = '".$OBJET_ID."' AND DEVICE_SERIAL_NUMBER = '".$DEVICE_SERIAL_NUMBER."' AND DELETED = '0'";   
									
								
	// on envoie la requête
	$queryB = mysqli_query($link,$sqlB);

	$config=array();

	if(mysqli_num_rows($queryB) > 0){
		while($dataB = mysqli_fetch_array($queryB)){   

				$port_courant =array();
				$port_courant["t_obj"] = $dataB["OBJ_MODEL_ID"]; //M1, S1, DI, DO, AI, AO, PWM
				$port_courant["pn"] = intval($dataB["PIN_DIGITAL_NUMBER"]); //Numéro du port
				$port_courant["mode"] = $dataB["PIN_MODE"]; //RX, TX, 0, 1			
				$port_courant["val"] =intval($dataB["PIN_VALUE"]); // -1 veut dire pas ne pas mettre de valeur; Pour les ports digitaux 1 signifie HIGH  et 0 signifie LOW. Pour les ports analogiques les valeurs sont entre 0 et 255
				$config[] = $port_courant;
		
		}
	}
	
	$result["idobj"] =trim($_GET["objid"]);
	$result["cmd1"]="objcfg";
	$result["cmdcontent1"]=$config;

	
	$response = json_encode($result,JSON_FORCE_OBJECT | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

	ob_clean();

	echo "##**##".$response."#*#*";
	// echo "#".$response."^";


	exit;

//*********************************FIN RECUPERATION CONFIGURATION OBJET **********************************

}


function realtime_monitoring($params){	

	include('./connexiondb.php');
	
	$detect_transaction_error = false;
	$error_transaction=array();
	$transaction_id = date('YmdHis')."_".rand(100, 999)."_".rand(100, 999); 
	
	$SITE_DETAILS_ID = mysqli_real_escape_string($link, $params["SITE_DETAILS_ID"]);
	
	/* ******************************************************************************************************************* */
	/* ***************************************DEBUT TRAITEMENT FOLLOW LIVEDATA******************************************** */
	/* ******************************************************************************************************************* */
	
	
	$OBJ_DATA_ARRAY = array();			
	$DEVICE_ARRAY = array();		
	
	$sql = "SELECT DISTINCT objet.ID, objet.OBJET_ID, objet.OBJET_NAME, objet.DEVICE_ID, objet.OBJ_MODEL_ID, objet.OBJ_MODEL_NAME, 
	objet.PIN_TYPE, objet.TARGET_TABLE, sites_details.APP_ACCOUNT_ID, app_account.APP_ACCOUNT_NAME,
	devices.DEVICE_ID, devices.DEVICE_NAME, devices.DEVICE_SERIAL_NUMBER, devices.MODELE, devices.IP_ADDRESS, devices.MASK,
	devices.GATEWAY, devices.DNS, devices.SERVER_ADDRESS, devices.SERVER_PORT, devices.MOD_COM, devices.POOLING_TIME,
	devices.APN, devices.APN_USER, devices.APN_PASSWORD, devices.IS_MODBUS_ACTIVE, devices.IS_GSM_ACTIVE,
	sites_details.SITE_DETAILS_ID, sites_details.SITE_DETAILS_NAME, 
	sites.SITE_ID, sites.SITE_NAME, sites.ENTREPRISE_ID, sites.ENTREPRISE_NAME, sites.PAYS_ID,
	sites.PAYS_NAME, sites.REGION_ID, sites.REGION_NAME, sites.DEPARTEMENT_ID, sites.DEPARTEMENT_NAME,
	sites.VILLE_ID, sites.VILLE_NAME, sites.ARRONDISSEMENT_ID, sites.ARRONDISSEMENT_NAME, sites.QUARTIER_ID,
	sites.QUARTIER_NAME, sites.GPS_LONG, sites.GPS_LAT
	FROM (

		SELECT
		obj_pin.APP_ACCOUNT_ID, obj_pin.ID, obj_pin.OBJET_ID, obj_pin.OBJET_NAME, obj_pin.DEVICE_ID, obj_pin.OBJ_MODEL_ID, 
		obj_pin.OBJ_MODEL_NAME, obj_pin.PIN_TYPE, obj_pin.ENTREPRISE_ID, obj_pin.ENTREPRISE_NAME, obj_pin.SITE_ID, 
		obj_pin.SITE_NAME, obj_pin.SITE_DETAILS_ID, obj_pin.SITE_DETAILS_NAME, obj_model.TARGET_TABLE
		FROM `obj_pin`
		INNER JOIN obj_model ON obj_model.OBJ_MODEL_ID = obj_pin.OBJ_MODEL_ID
		WHERE obj_pin.DELETED = '0' GROUP BY OBJET_ID 

	) AS objet
	INNER JOIN devices ON devices.DEVICE_ID = objet.DEVICE_ID AND devices.DELETED = '0'
	INNER JOIN sites_details ON sites_details.SITE_DETAILS_ID = devices.SITE_DETAILS_ID AND sites_details.APP_ACCOUNT_ID = devices.APP_ACCOUNT_ID AND sites_details.DELETED = '0'
	INNER JOIN sites ON sites.SITE_ID = sites_details.SITE_ID AND sites.APP_ACCOUNT_ID = sites_details.APP_ACCOUNT_ID AND sites.DELETED = '0'
	INNER JOIN entreprises ON entreprises.ENTREPRISE_ID = sites.ENTREPRISE_ID AND entreprises.DELETED = '0'		
	INNER JOIN app_account ON app_account.APP_ACCOUNT_ID = entreprises.APP_ACCOUNT_ID AND app_account.DELETED = '0'

	WHERE sites_details.SITE_DETAILS_ID = '".$SITE_DETAILS_ID."'
	GROUP BY objet.OBJET_ID 
	ORDER BY app_account.APP_ACCOUNT_NAME, sites.ENTREPRISE_NAME, sites_details.SITE_DETAILS_NAME, devices.DEVICE_NAME, objet.OBJET_NAME ASC
	";
	
	
	$query = mysqli_query($link,$sql);  
	if (!$query) {			
		$detect_transaction_error = true;   
		$current_error=array();
		$error_code=mysqli_errno($link);
		$sql_state=mysqli_sqlstate($link);
		$error_description=mysqli_error($link);
		$current_error["error_code"]=$error_code;
		$current_error["sql_state"]=$sql_state;
		$current_error["error_description"]=$error_description;  
		$current_error["page_courante"]=$page_courante;
		$current_error["sql"]=$sql;
		$current_error["transaction_id"]=$transaction_id;
		$current_error["sous_rubrique"]="INSERT_OBJET"; 
		$error_transaction[]=$current_error;			
		$reponse["error"]["code"] = "100";   
		$reponse["error"]["description"] = "Une erreur est survenue lors du traitement de votre requête, veuillez s'il vous plait contacter votre administrateur si le problème persiste. MERCI.";			
		goto FIN_TRAITEMENT_REALTIME_NODEJS; 
	}
	
	$ligne = mysqli_num_rows($query);
	$OLD_SITE_DETAILS_ID = "";
	$OLD_DEVICE_ID = "";
	
	if($ligne>0){			
		while($data = mysqli_fetch_array($query)){
			
			if($OLD_SITE_DETAILS_ID != $data["SITE_DETAILS_ID"]){ 
				
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["APP_ACCOUNT_NAME"] = $data["APP_ACCOUNT_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["ENTREPRISE_ID"] = $data["ENTREPRISE_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["ENTREPRISE_NAME"] = $data["ENTREPRISE_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["SITE_ID"] = $data["SITE_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["SITE_NAME"] = $data["SITE_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["SITE_DETAILS_ID"] = $data["SITE_DETAILS_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["SITE_DETAILS_NAME"] = $data["SITE_DETAILS_NAME"]; 
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["PAYS_ID"] = $data["PAYS_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["PAYS_NAME"] = $data["PAYS_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["REGION_ID"] = $data["REGION_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["REGION_NAME"] = $data["REGION_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEPARTEMENT_ID"] = $data["DEPARTEMENT_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEPARTEMENT_NAME"] = $data["DEPARTEMENT_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["VILLE_ID"] = $data["VILLE_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["VILLE_NAME"] = $data["VILLE_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["ARRONDISSEMENT_ID"] = $data["ARRONDISSEMENT_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["ARRONDISSEMENT_NAME"] = $data["ARRONDISSEMENT_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["QUARTIER_ID"] = $data["QUARTIER_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["QUARTIER_NAME"] = $data["QUARTIER_NAME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["GPS_LONG"] = $data["GPS_LONG"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["GPS_LAT"] = $data["GPS_LAT"];
				
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"] = array();
				
				$OLD_SITE_DETAILS_ID = $data["SITE_DETAILS_ID"];						
				
			}
			
			if($OLD_DEVICE_ID != $data["DEVICE_ID"]){
				
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["DEVICE_ID"] = $data["DEVICE_ID"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["DEVICE_NAME"] = $data["DEVICE_NAME"]; 
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["DEVICE_SERIAL_NUMBER"] = $data["DEVICE_SERIAL_NUMBER"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["MODELE"] = $data["MODELE"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["IP_ADDRESS"] = $data["IP_ADDRESS"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["MASK"] = $data["MASK"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["GATEWAY"] = $data["GATEWAY"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["DNS"] = $data["DNS"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["SERVER_ADDRESS"] = $data["SERVER_ADDRESS"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["SERVER_PORT"] = $data["SERVER_PORT"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["MOD_COM"] = $data["MOD_COM"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["POOLING_TIME"] = $data["POOLING_TIME"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["APN"] = $data["APN"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["APN_USER"] = $data["APN_USER"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["APN_PASSWORD"] = $data["APN_PASSWORD"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["IS_MODBUS_ACTIVE"] = $data["IS_MODBUS_ACTIVE"];
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["IS_GSM_ACTIVE"] = $data["IS_GSM_ACTIVE"];
				
				$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"] = array();
				
				$OLD_DEVICE_ID = $data["DEVICE_ID"];						
				
			}
			
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["OBJET_ID"] = $data["OBJET_ID"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["OBJET_NAME"] = $data["OBJET_NAME"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["DEVICE_ID"] = $data["DEVICE_ID"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["OBJ_MODEL_ID"] = $data["OBJ_MODEL_ID"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["OBJ_MODEL_NAME"] = $data["OBJ_MODEL_NAME"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["PIN_TYPE"] = $data["PIN_TYPE"];
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["TARGET_TABLE"] = $data["TARGET_TABLE"];					
	
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["VALUE"] = array();
			
			$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["ALARME"] = array();
			
			
			if(trim($data["TARGET_TABLE"]) == "activites_analog_io"){
				
				$OBJET_ID = mysqli_real_escape_string($link, $data["OBJET_ID"]);
				$SITE_DETAILS_ID = mysqli_real_escape_string($link, $data["SITE_DETAILS_ID"]);
				
				$sql_2a = "SELECT activites_analog_io.APP_ACCOUNT_ID, activites_analog_io.DEVICE_ID, activites_analog_io.DEVICE_NAME, 
				activites_analog_io.OBJET_ID, activites_analog_io.OBJET_NAME, activites_analog_io.OBJ_MODEL_ID, 
				activites_analog_io.OBJ_MODEL_NAME, activites_analog_io.PIN_MODE, activites_analog_io.ADC_PIN_VALUE, 
				activites_analog_io.ANALOG_VALUE, activites_analog_io.ANALOG_UNITE, activites_analog_io.DEVICE_SERIAL_NUMBER, 
				activites_analog_io.MODELE, activites_analog_io.MOD_COM, activites_analog_io.ENTREPRISE_ID, 
				activites_analog_io.ENTREPRISE_NAME, activites_analog_io.SITE_ID, activites_analog_io.SITE_NAME, 
				activites_analog_io.SITE_DETAILS_ID, activites_analog_io.SITE_DETAILS_NAME, activites_analog_io.ADJUST_TIME_ID, 
				activites_analog_io.INSERTION_DATE, activites_analog_io.EVENT_DATE 
				FROM `activites_analog_io`
				WHERE activites_analog_io.OBJET_ID = '".$OBJET_ID."' AND activites_analog_io.SITE_DETAILS_ID = '".$SITE_DETAILS_ID."' 
				ORDER BY INSERTION_DATE DESC LIMIT 1";
				
				$query_2a = mysqli_query($link,$sql_2a);
				if (!$query_2a) {			
					$detect_transaction_error = true;   
					$current_error=array();
					$error_code=mysqli_errno($link);
					$sql_state=mysqli_sqlstate($link);
					$error_description=mysqli_error($link);
					$current_error["error_code"]=$error_code;
					$current_error["sql_state"]=$sql_state;
					$current_error["error_description"]=$error_description; 
					$current_error["page_courante"]=$page_courante;
					$current_error["sql"]=$sql_2a;
					$current_error["transaction_id"]=$transaction_id;
					$current_error["sous_rubrique"]="INSERT_DEVICE_PORT"; 
					$error_transaction[]=$current_error;			
					$reponse["error"]["code"] = "100";   
					$reponse["error"]["description"] = "Une erreur est survenue lors du traitement de votre requête, veuillez s'il vous plait contacter votre administrateur si le problème persiste. MERCI.";			
					goto FIN_TRAITEMENT_REALTIME_NODEJS; 
				}
				
				// on fait une boucle qui va faire un tour pour chaque enregistrement
				$nblignes=mysqli_num_rows($query_2a);	
				
				if($nblignes>0){			
					
					while($data_2a = mysqli_fetch_array($query_2a)){
						
						$item = array();
						$item["INSERTION_DATE"] = $data_2a['INSERTION_DATE'];
						$item["EVENT_DATE"] = $data_2a['EVENT_DATE'];
						$item["ANALOG_VALUE"] = $data_2a['ANALOG_VALUE'];
						
						$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["VALUE"] = $item;
						
					}
				
				}
				
				
			}
			
			
			if(trim($data["TARGET_TABLE"]) == "activites_digital_io"){
				
				$OBJET_ID = mysqli_real_escape_string($link, $data["OBJET_ID"]);
				$SITE_DETAILS_ID = mysqli_real_escape_string($link, $data["SITE_DETAILS_ID"]);
				
				$sql_2a = "SELECT activites_digital_io.APP_ACCOUNT_ID, activites_digital_io.DEVICE_ID, activites_digital_io.DEVICE_NAME, 
				activites_digital_io.OBJET_ID, activites_digital_io.OBJET_NAME, activites_digital_io.OBJ_MODEL_ID, 
				activites_digital_io.OBJ_MODEL_NAME, activites_digital_io.PIN_MODE, activites_digital_io.PIN_VALUE, 
				activites_digital_io.DEVICE_SERIAL_NUMBER, activites_digital_io.MODELE, activites_digital_io.MOD_COM, 
				activites_digital_io.ENTREPRISE_ID, activites_digital_io.ENTREPRISE_NAME, activites_digital_io.SITE_ID, 
				activites_digital_io.SITE_NAME, activites_digital_io.SITE_DETAILS_ID, activites_digital_io.SITE_DETAILS_NAME, 
				activites_digital_io.ADJUST_TIME_ID, activites_digital_io.INSERTION_DATE, activites_digital_io.EVENT_DATE 
				FROM `activites_digital_io`
				WHERE activites_digital_io.OBJET_ID = '".$OBJET_ID."' AND activites_digital_io.SITE_DETAILS_ID = '".$SITE_DETAILS_ID."' 
				ORDER BY INSERTION_DATE DESC LIMIT 1";
				
				$query_2a = mysqli_query($link,$sql_2a);
				if (!$query_2a) {			
					$detect_transaction_error = true;   
					$current_error=array();
					$error_code=mysqli_errno($link);
					$sql_state=mysqli_sqlstate($link);
					$error_description=mysqli_error($link);
					$current_error["error_code"]=$error_code;
					$current_error["sql_state"]=$sql_state;
					$current_error["error_description"]=$error_description; 
					$current_error["page_courante"]=$page_courante;
					$current_error["sql"]=$sql_2a;
					$current_error["transaction_id"]=$transaction_id;
					$current_error["sous_rubrique"]="INSERT_DEVICE_PORT"; 
					$error_transaction[]=$current_error;			
					$reponse["error"]["code"] = "100";   
					$reponse["error"]["description"] = "Une erreur est survenue lors du traitement de votre requête, veuillez s'il vous plait contacter votre administrateur si le problème persiste. MERCI.";			
					goto FIN_TRAITEMENT_REALTIME_NODEJS; 
				}
				
				// on fait une boucle qui va faire un tour pour chaque enregistrement
				$nblignes=mysqli_num_rows($query_2a);	
				
				if($nblignes>0){
					
					while($data_2a = mysqli_fetch_array($query_2a)){
						
						$item = array();
						$item["INSERTION_DATE"] = $data_2a['INSERTION_DATE'];
						$item["EVENT_DATE"] = $data_2a['EVENT_DATE'];
						$item["PIN_VALUE"] = $data_2a['PIN_VALUE'];
						
						$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["VALUE"] = $item;
						
					} 
				
				}
				
				
			}
			
			
			if(trim($data["TARGET_TABLE"]) == "activites_pwm"){
				
				$OBJET_ID = mysqli_real_escape_string($link, $data["OBJET_ID"]);
				$SITE_DETAILS_ID = mysqli_real_escape_string($link, $data["SITE_DETAILS_ID"]);
				
				$sql_2a = "SELECT activites_pwm.APP_ACCOUNT_ID, activites_pwm.DEVICE_ID, activites_pwm.DEVICE_NAME, activites_pwm.OBJET_ID, 
				activites_pwm.OBJET_NAME, activites_pwm.OBJ_MODEL_ID, activites_pwm.OBJ_MODEL_NAME, activites_pwm.VOLTAGE, 
				activites_pwm.CURRENT, activites_pwm.POWER, activites_pwm.ENERGY, activites_pwm.FREQUENCY, activites_pwm.PF, 
				activites_pwm.TYPE_MEASUREMENT, activites_pwm.DEVICE_SERIAL_NUMBER, activites_pwm.MODELE, activites_pwm.MOD_COM, 
				activites_pwm.ENTREPRISE_ID, activites_pwm.ENTREPRISE_NAME, activites_pwm.SITE_ID, activites_pwm.SITE_NAME, 
				activites_pwm.SITE_DETAILS_ID, activites_pwm.SITE_DETAILS_NAME, activites_pwm.ADJUST_TIME_ID, 
				activites_pwm.INSERTION_DATE, activites_pwm.EVENT_DATE 
				FROM `activites_pwm`
				WHERE activites_pwm.OBJET_ID = '".$OBJET_ID."' AND activites_pwm.SITE_DETAILS_ID = '".$SITE_DETAILS_ID."' 
				ORDER BY INSERTION_DATE DESC  LIMIT 1";
				
				$query_2a = mysqli_query($link,$sql_2a);
				if (!$query_2a) {			
					$detect_transaction_error = true;   
					$current_error=array();
					$error_code=mysqli_errno($link);
					$sql_state=mysqli_sqlstate($link);
					$error_description=mysqli_error($link);
					$current_error["error_code"]=$error_code;
					$current_error["sql_state"]=$sql_state;
					$current_error["error_description"]=$error_description; 
					$current_error["page_courante"]=$page_courante;
					$current_error["sql"]=$sql_2a;
					$current_error["transaction_id"]=$transaction_id;
					$current_error["sous_rubrique"]="INSERT_DEVICE_PORT"; 
					$error_transaction[]=$current_error;			
					$reponse["error"]["code"] = "100";   
					$reponse["error"]["description"] = "Une erreur est survenue lors du traitement de votre requête, veuillez s'il vous plait contacter votre administrateur si le problème persiste. MERCI.";			
					goto FIN_TRAITEMENT_REALTIME_NODEJS; 
				}
				
				// on fait une boucle qui va faire un tour pour chaque enregistrement
				$nblignes=mysqli_num_rows($query_2a);	
				
				if($nblignes>0){	
				
					while($data_2a = mysqli_fetch_array($query_2a)){
						
						$item = array();
						$item["INSERTION_DATE"] = $data_2a['INSERTION_DATE'];
						$item["EVENT_DATE"] = $data_2a['EVENT_DATE'];
						$item["VOLTAGE"] = $data_2a['VOLTAGE'];
						$item["CURRENT"] = $data_2a['CURRENT'];
						$item["POWER"] = $data_2a['POWER'];
						$item["ENERGY"] = $data_2a['ENERGY'];
						$item["FREQUENCY"] = $data_2a['FREQUENCY'];
						$item["PF"] = $data_2a['PF'];
						
						$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["VALUE"] = $item;
						
						
					}
				
				}
				
				
			}
			
			
			/* DEBUT TRAITEMENT ALARME */
			

			$OBJET_ID = mysqli_real_escape_string($link, $data["OBJET_ID"]);
			$SITE_DETAILS_ID = mysqli_real_escape_string($link, $data["SITE_DETAILS_ID"]);
			
			$sql_2a = "SELECT alarms_devices.APP_ACCOUNT_ID, alarms_devices.ALARME_DEVICE_ID, alarms_devices.DEVICE_ID, 
			alarms_devices.DEVICE_NAME, alarms_devices.OBJET_ID, alarms_devices.OBJET_NAME, alarms_devices.OBJET_ALARME_ID, 
			alarms_devices.ALARM_MODEL_ID, alarms_devices.ALARM_MODEL_NAME, alarms_devices.ALARM_EXPRESSION, 
			alarms_devices.ALARM_DESCRIPTION, alarms_devices.SEVERITY_ID, alarms_devices.DEVICE_SERIAL_NUMBER, alarms_devices.MODELE, 
			alarms_devices.MOD_COM, alarms_devices.ENTREPRISE_ID, alarms_devices.ENTREPRISE_NAME, 
			alarms_devices.SITE_ID, alarms_devices.SITE_NAME, alarms_devices.SITE_DETAILS_ID, alarms_devices.SITE_DETAILS_NAME, 
			alarms_devices.INSERTION_DATE, alarms_devices.START_EVENT_DATE, alarms_devices.END_EVENT_DATE, severity.COLOR,
			severity.MEANING, severity.SEVERITY_LEVEL
			FROM `alarms_devices`
			INNER JOIN severity ON severity.SEVERITY_ID = alarms_devices.SEVERITY_ID
			WHERE alarms_devices.OBJET_ID = '".$OBJET_ID."' AND alarms_devices.SITE_DETAILS_ID = '".$SITE_DETAILS_ID."' AND 
			alarms_devices.END_EVENT_DATE = '' AND alarms_devices.DELETED = '0' ";
			
			$query_2a = mysqli_query($link,$sql_2a);
			if (!$query_2a) {			
				$detect_transaction_error = true;   
				$current_error=array();
				$error_code=mysqli_errno($link);
				$sql_state=mysqli_sqlstate($link);
				$error_description=mysqli_error($link);
				$current_error["error_code"]=$error_code;
				$current_error["sql_state"]=$sql_state;
				$current_error["error_description"]=$error_description; 
				$current_error["page_courante"]=$page_courante;
				$current_error["sql"]=$sql_2a;
				$current_error["transaction_id"]=$transaction_id;
				$current_error["sous_rubrique"]="INSERT_DEVICE_PORT"; 
				$error_transaction[]=$current_error;			
				$reponse["error"]["code"] = "100";   
				$reponse["error"]["description"] = "Une erreur est survenue lors du traitement de votre requête, veuillez s'il vous plait contacter votre administrateur si le problème persiste. MERCI.";			
				goto FIN_TRAITEMENT_REALTIME_NODEJS; 
			}
			
			// on fait une boucle qui va faire un tour pour chaque enregistrement
			$nblignes=mysqli_num_rows($query_2a);	
			
			if($nblignes>0){			
				
				while($data_2a = mysqli_fetch_array($query_2a)){
					
					$item = array();
					$item["ALARME_DEVICE_ID"] = $data_2a['ALARME_DEVICE_ID'];
					$item["DEVICE_ID"] = $data_2a['DEVICE_ID'];
					$item["DEVICE_NAME"] = $data_2a['DEVICE_NAME'];
					$item["OBJET_ALARME_ID"] = $data_2a['OBJET_ALARME_ID'];
					$item["ALARM_MODEL_ID"] = $data_2a['ALARM_MODEL_ID'];
					$item["ALARM_MODEL_NAME"] = $data_2a['ALARM_MODEL_NAME'];
					$item["ALARM_EXPRESSION"] = $data_2a['ALARM_EXPRESSION'];
					$item["ALARM_DESCRIPTION"] = $data_2a['ALARM_DESCRIPTION'];
					$item["SEVERITY_ID"] = $data_2a['SEVERITY_ID'];
					$item["INSERTION_DATE"] = $data_2a['INSERTION_DATE'];
					$item["START_EVENT_DATE"] = $data_2a['START_EVENT_DATE'];
					$item["COLOR"] = $data_2a['COLOR'];
					$item["MEANING"] = $data_2a['MEANING'];
					$item["SEVERITY_LEVEL"] = $data_2a['SEVERITY_LEVEL'];
					
					$OBJ_DATA_ARRAY[$data["SITE_DETAILS_ID"]]["DEVICES"][$data["DEVICE_ID"]]["OBJET"][$data["OBJET_ID"]]["ALARME"][] = $item;
					
				}
			
			}
			
			
			/* FIN TRAITEMENT ALARME */
			
		}
	}			
	
	
	FIN_TRAITEMENT_REALTIME_NODEJS:

	$nbre_erreur = count($error_transaction);
	if($nbre_erreur > 0 ){
		insert_error($error_transaction);    
	}
	
	ob_clean();
	$data = json_encode($OBJ_DATA_ARRAY, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT);
	
	/*$random_file = fopen("./realtime_nodejs.txt", "a+");
	fwrite($random_file, $data."\n");
	fclose($random_file);*/
	/* ************************ DEBUT NOTIFICATION NODEJS ************************ */
	$url = "https://ioseen.mylesolutions.com:12601/";
	
	$other_fields = array();
	$other_fields["NOTIFICATION"] = "REALTIME_NODEJS";
	$other_fields["SITE_DETAILS_ID"] = $SITE_DETAILS_ID;
	$other_fields["myle_data"] = $data;
	$fields = array();
	$files = array();
	
	$param["CURLOPT_HTTPHEADER"] = array( 'content-type: application/json');
	$param["IS_JSON"] = true;
	$param["CURLOPT_RETURNTRANSFER"] = false;
	$res = curl_request_post($url, $param, $fields, $files, $other_fields);
	/* ************************ FIN NOTIFICATION NODEJS ************************ */
	
	/*$random_file = fopen("./realtime_nodejs.txt", "a+");
	fwrite($random_file, $res."\n"); 
	fclose($random_file);
	mysqli_close($link);*/
	
}

function insert_error($error_transaction){
	
	if(strcasecmp(substr(PHP_OS, 0, 3), 'WIN') == 0){
		$isWindows = true;
		include('./connexiondb.php');
	}else{
		include('./connexiondb.php');
	}	
	
	mysqli_autocommit($link, true);
	
	$nbre_erreur = count($error_transaction);
	if($nbre_erreur > 0 ){
		
		for($i = 0; $i < $nbre_erreur; $i++ ){  
			
			$ERROR_CODE = mysqli_real_escape_string($link, $error_transaction[$i]["error_code"]);
			$SQL_STATE = mysqli_real_escape_string($link, $error_transaction[$i]["sql_state"]);
			$ERROR_DESCRIPTION = mysqli_real_escape_string($link, $error_transaction[$i]["error_description"]);
			$PAGE_COURANTE = mysqli_real_escape_string($link, $error_transaction[$i]["page_courante"]);
			$TRANSACTION_ERROR_ID = mysqli_real_escape_string($link, $error_transaction[$i]["transaction_id"]);
			$SOUS_RUBRIQUE = mysqli_real_escape_string($link, $error_transaction[$i]["sous_rubrique"]); 
			$REQUEST_SQL = mysqli_real_escape_string($link, $error_transaction[$i]["sql"]);  
			$DATA_JSON	= mysqli_real_escape_string($link, json_encode($error_transaction[$i], JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT));		
			$RUBRIQUE = "DATACFG";
			
			$query1 = "INSERT INTO `error_logs` (TRANSACTION_ERROR_ID, ERROR_CODE, SQL_STATE, ERROR_DESCRIPTION, PAGE_COURANTE, 
			INSERT_DATE, RUBRIQUE, USER_MYSQL, SOUS_RUBRIQUE, REQUEST_SQL, DATA_JSON) 
			VALUES ('".$TRANSACTION_ERROR_ID."','".$ERROR_CODE."','".$SQL_STATE."','".$ERROR_DESCRIPTION."','".$PAGE_COURANTE."',
			CURRENT_TIMESTAMP(6),'".$RUBRIQUE."',USER(),'".$SOUS_RUBRIQUE."','".$REQUEST_SQL."','".$DATA_JSON."')";
			
			$result = mysqli_query($link, $query1);    
		
		}
		
	}  
	mysqli_close($link);
}

function analog_value_from_obj_mode($param_model_ai){
		
	if(strcasecmp(substr(PHP_OS, 0, 3), 'WIN') == 0){
		$isWindows = true;
		include('./connexiondb.php');
	}else{
		include('./connexiondb.php');
	}	
	
	
	$resultat =array();
	
	$MODELE_ANALOGIQUE_ID = $param_model_ai["MODELE_ANALOGIQUE_ID"];
	$OBJET_ID = $param_model_ai["OBJET_ID"];
	$ADC_PIN_VALUE = $param_model_ai["ADC_PIN_VALUE"];
	
	$ANALOG_VALUE = (floatval($ADC_PIN_VALUE)/1024)*100;  //Valeur en pourcentage au ca ou on est dans AO
	$ANALOG_UNITE = "%";  //Valeur en pourcentage au ca ou on est dans AO
	
	$resultat["ANALOG_VALUE"]=$ANALOG_VALUE;
	$resultat["ANALOG_UNITE"]=$ANALOG_UNITE;

	if($MODELE_ANALOGIQUE_ID =="20220304162200_001"){ //Modele analogique linéaire
		
		
		
								
		$sqlB ="SELECT ITEM_NAME, ITEM_VALUE, UNITE
		FROM `obj_pin_modele_analogique_items`
		WHERE OBJET_ID ='".$OBJET_ID."' AND MODELE_ANALOGIQUE_ID ='".$MODELE_ANALOGIQUE_ID."' LIMIT 1";  
					 $random_file = fopen("./analog_value_from_obj_mode.txt", "a+");
 
 fwrite($random_file, $sqlB."\n");
 fclose($random_file);			
									
		// on envoie la requête
		$queryB = mysqli_query($link,$sqlB);
		
		
		if(mysqli_num_rows($queryB) > 0){
			while($dataB = mysqli_fetch_array($queryB)){ 

				$ITEM_NAME = $dataB["ITEM_NAME"];    			
				$ITEM_VALUE = floatval($dataB["ITEM_VALUE"]);    			
				$UNITE = $dataB["UNITE"];  
				
				if($ITEM_NAME=="MAX_VAL"){
					
					
						$resultat["ANALOG_VALUE"]=(floatval($ADC_PIN_VALUE)/1024)*floatval($ITEM_VALUE);
						
						$resultat["ANALOG_UNITE"]=$UNITE;
					
					
				}

				
			
			}
		}
		


		
		
		
	}
	 
	return $resultat;

			
	
}

?>
