<?php

  $sqlite = 'teleinfo.sqlite';

  //
  //  renvoie une trame teleinfo complete sous forme d'array
  //
  function lireTrameConso () {

    $handle = fopen ('/dev/ttyAMA0', "r"); // ouverture du flux

    while (fread($handle, 1) != chr(2)); // on attend la fin d'une trame pour commencer avec la trame suivante

    $char  = '';
    $trame = '';
    $datas = '';

    while ($char != chr(2)) { // on lit tous les caracteres jusqu'a la fin de la trame
      $char = fread($handle, 1);
      if ($char != chr(2)){
        $trame .= $char;
      }
    }

    fclose ($handle); // on ferme le flux

    $trame .= 'TIMESTAMP ' . time() . ' ';

/*
    $trame = chop(substr($trame,1,-1)); // on supprime les caracteres de debut et fin de trame

    $messages = explode(chr(10), $trame); // on separe les messages de la trame

    foreach ($messages as $key => $message) {
      $message = explode (' ', $message, 3); // on separe l'etiquette, la valeur et la somme de controle de chaque message
      if(!empty($message[0]) && !empty($message[1])) {
        $etiquette = $message[0];
        $valeur    = $message[1];
        $datas[$etiquette] = $valeur; // on stock les etiquettes et les valeurs de l'array datas
      }
    }

    $datas["timestamp"] = time();

    return $datas;
 */
    return $trame;
  }


  while(true) {
	$dateJour = date('Ymd');

	$trame  = lireTrameConso(); // recupere une trame teleinfo

	print $trame;

//	if (count($trame) == 11 ) {
//		$fp = fopen('teleinfo_'.$dateJour.'.csv', 'a');
//		fputcsv($fp, $trame);
//		fclose($fp);
//	}
  }

?>