Communication série, 2011/2012, TD1 : Différence entre versions
Ligne 19 : | Ligne 19 : | ||
On veut créer une site web où on entre des caractères, qui sont envoyé en parallèle vers une liaison série puis ils nous reviennent en parallèle. | On veut créer une site web où on entre des caractères, qui sont envoyé en parallèle vers une liaison série puis ils nous reviennent en parallèle. | ||
− | + | <!DOCTYPE html> | |
− | |||
− | <! | ||
<html> | <html> | ||
<head> | <head> | ||
<meta charset="utf-8" /> | <meta charset="utf-8" /> | ||
− | <title>Communication | + | <title>Communication série</title> |
</head> | </head> | ||
<body> | <body> | ||
+ | <script type="text/javascript" src="prototype.js"></script> | ||
+ | <p> <h1> Entrée des caractères</h1> <br/> | ||
+ | <FORM METHOD="POST" ACTION="pageWebProjet.html" enctype="multipart/form-data"> | ||
+ | <TABLE BORDER=0> | ||
+ | <TR> | ||
+ | <TD> entrer les caractères<TD> <TD><INPUT type=text name="char"> | ||
+ | </TD> <TD> <INPUT type="submit" value="Envoyer"> </TD> | ||
+ | |||
+ | </TR> | ||
+ | </TABLE> | ||
+ | </FORM> | ||
+ | <?php | ||
+ | /* Prepare the read array */ | ||
+ | $read = array($stream1, $stream2); | ||
+ | $write = NULL; | ||
+ | $except = NULL; | ||
+ | if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) { | ||
+ | /* Error handling */ | ||
+ | } elseif ($num_changed_streams > 0) { | ||
+ | /* At least on one of the streams something interesting happened */ | ||
+ | } | ||
+ | ?> | ||
+ | |||
+ | <?php | ||
+ | // Quelques constantes | ||
+ | |||
+ | define('SOCKET_ECRITURE','/tmp/serial.send'); | ||
+ | define('SOCKET_LECTURE','/tmp/serial.recv'); | ||
+ | |||
+ | // Test de lecture de 8 octets | ||
+ | |||
+ | $fe=fsockopen('unix://'.SOCKET_ECRITURE); | ||
+ | if(!$fe) die("fsockopen,write\n"); | ||
+ | $fl=fsockopen('unix://'.SOCKET_LECTURE); | ||
+ | if(!$fl) die("fsockopen,read\n"); | ||
+ | if(fwrite($fe,"\0")!=1) die("fwrite\n"); | ||
+ | for($i=0;$i<8;$i++){ | ||
+ | $byte=fread($fl,1); | ||
+ | if(strlen($byte)!=1) die("fread\n"); | ||
+ | printf("%02x\n",ord($byte[0])); | ||
+ | } | ||
+ | fclose($fe); | ||
+ | fclose($fl); | ||
+ | ?> | ||
+ | |||
+ | |||
+ | </p> | ||
+ | <br><br> | ||
+ | <p> <h2> Champ de reception <h2><br/> | ||
+ | <form method=get action="pageWebProjet.html"> | ||
+ | <table border=0> | ||
+ | <tr> <td> | ||
+ | <textarea name="sortie" rows="2" cols="15"> | ||
+ | </textarea> | ||
+ | </td></tr> | ||
+ | </table> | ||
+ | </form> | ||
+ | </p> | ||
+ | |||
</body> | </body> | ||
</html> | </html> |
Version du 28 mars 2012 à 10:23
Partie électronique:
Mercredi 21 Mars 2012:
On a en entrée un signal sur 8 bits en parallèle.
On a une liaison série qui est toujours à 1, tant qu'on ne transmet pas de données.
A l'appui sur un bouton, on met le signal en série et on l'envoit sur la liaison.
Le signal est réceptionné et remit en parallèle.
Mercredi 28 Mars 2012:
Sur la nanoboard, la LED est allumée tout le temps. Sauf quand on appui sur le bouton et on le relache, au bout de 8 temps d'horlogela LED clignote suivant les entrées qu'on lui à mise (mais au moins une fois pour le bit de start). Et après 9 temps la LED reste allumée.
Partie informatique:
On veut créer une site web où on entre des caractères, qui sont envoyé en parallèle vers une liaison série puis ils nous reviennent en parallèle. <!DOCTYPE html> <html>
<head> <meta charset="utf-8" /> <title>Communication série</title> </head>
<body>
<script type="text/javascript" src="prototype.js"></script>
Entrée des caractères
<FORM METHOD="POST" ACTION="pageWebProjet.html" enctype="multipart/form-data">
entrer les caractères | <INPUT type=text name="char"> | <INPUT type="submit" value="Envoyer"> |
</FORM> <?php /* Prepare the read array */ $read = array($stream1, $stream2); $write = NULL; $except = NULL; if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) { /* Error handling */ } elseif ($num_changed_streams > 0) { /* At least on one of the streams something interesting happened */ } ?>
<?php // Quelques constantes
define('SOCKET_ECRITURE','/tmp/serial.send'); define('SOCKET_LECTURE','/tmp/serial.recv');
// Test de lecture de 8 octets
$fe=fsockopen('unix://'.SOCKET_ECRITURE); if(!$fe) die("fsockopen,write\n"); $fl=fsockopen('unix://'.SOCKET_LECTURE); if(!$fl) die("fsockopen,read\n"); if(fwrite($fe,"\0")!=1) die("fwrite\n"); for($i=0;$i<8;$i++){
$byte=fread($fl,1); if(strlen($byte)!=1) die("fread\n"); printf("%02x\n",ord($byte[0])); }
fclose($fe); fclose($fl); ?>
Champ de reception <h2>
<form method=get action="pageWebProjet.html">
<textarea name="sortie" rows="2" cols="15">
</textarea>
</form>
</p>
</body>
</html>
<textarea name="sortie" rows="2" cols="15"> </textarea>