Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques








télécharger 495.76 Kb.
titreRésumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques
page8/8
date de publication12.07.2017
taille495.76 Kb.
typeRésumé
ar.21-bal.com > documents > Résumé
1   2   3   4   5   6   7   8

9ANNEXES




9.1Sources des développements réalisés

9.1.1Applets JAVA

9.1.1.1Appplet1.java



Afin de pouvoir récupérer l’identifiant unique de chaque badge RFID, détectée par le lecteur, j’ai du concevoir une application Java permettant de dialoguer sur le port série. Pour cela je me suis servit d’une API nommé Javax.comm.

//*******Applet Java réalisée en 2005 pour le centre ERASME par Guillaume BROBECKER********//
// Importation des librairies

//**********************************************************************
import java.awt.*;

import java.awt.event.*;

import java.applet.*;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.comm.*;

import com.sun.comm.Win32Driver;

import java.io.*;

import java.util.*;

import javax.swing.JLabel;

import javax.swing.*;

// D�claration de la classe publique Appplet1 qui h�rite de la classe Applet et qui implémente la class SerialportEventLitener
public class Applet1 extends Applet implements SerialPortEventListener {
// D�finition des variables
private CommPortIdentifier portId;

private SerialPort serialPort;

private BufferedReader fluxLecture;

private String valeurLue="";
// Initialisation du contexte graphique
BorderLayout borderLayout1 = new BorderLayout();

JTextField TextField1 = new JTextField();

JLabel jLabel1 = new JLabel();
// getValeurLue retourne la valeur de l'identifiant détecté par le lecteur
public String getValeurlue(){
return (valeurLue);
}
//*******************FIN DE LA FCT getValeurlue()************************

// Méthode de gestion des événements
public void serialEvent(SerialPortEvent event) {
// Géstion des événements sur le port :

// On ne fait rien sauf quand les données sont disponibles
switch (event.getEventType()) {

case SerialPortEvent.BI :

case SerialPortEvent.OE :

case SerialPortEvent.FE :

case SerialPortEvent.PE :

case SerialPortEvent.CD :

case SerialPortEvent.CTS :

case SerialPortEvent.DSR :

case SerialPortEvent.RI :

case SerialPortEvent.OUTPUT_BUFFER_EMPTY :

break;

case SerialPortEvent.DATA_AVAILABLE :

try {

// Lecture du buffer et affichage
fluxLecture.read();

valeurLue = new String(fluxLecture.readLine().toString());

fluxLecture.read();

TextField1.setText(""+valeurLue);

System.out.println(valeurLue);

} catch (IOException e) {

}

break;

}
}
//******************FIN DE LA FCT SerialEvent ()*********************
// Initialisation l'applet
public void init() {

try {
// On appel la fonction jbInit
jbInit();
// On bloc le composant textfield pour qu'il soit in�ditable
TextField1.setEditable(false);
} catch (Exception e) {

e.printStackTrace();

}

}
//***********************FIN DE LA FCT init()**************************

// Fonction d'initialisation
private void jbInit() throws Exception {
TextField1.setPreferredSize(new Dimension(110, 20));

TextField1.setSelectionStart(12);

jLabel1.setDisplayedMnemonic('0');

jLabel1.setHorizontalAlignment(SwingConstants.LEFT);

jLabel1.setHorizontalTextPosition(SwingConstants.LEFT);

jLabel1.setText("Identifiant :");

jLabel1.setVerticalAlignment(SwingConstants.BOTTOM);

jLabel1.setVerticalTextPosition(SwingConstants.BOTTOM);

this.add(jLabel1);

this.add(TextField1);
}

//*******************FIN DE LA FCT jbInit()****************************
// D�marrage de l'applet sur le port COM 4
public void start() {

try {

String port = "COM4";
// Initialisation du driver
Win32Driver w32Driver = new Win32Driver();

w32Driver.initialize();
// R�cup�ration de l'identifiant du port
try {

portId = CommPortIdentifier.getPortIdentifier(port);

} catch (NoSuchPortException e) {

}
// Ouverture du port
try {

serialPort = (SerialPort) portId.open("ModeEvenement", 2000);

} catch (PortInUseException e) {

}
// R�cup�ration du flux
try {

fluxLecture = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));

} catch (IOException e) {

}
// Ajout du listener
try {

serialPort.addEventListener(this);

} catch (TooManyListenersException e) {

}
// Param�trage du port
serialPort.notifyOnDataAvailable(true);

try {

serialPort.setSerialPortParams(

9600,

SerialPort.DATABITS_7,

SerialPort.STOPBITS_1,

SerialPort.PARITY_EVEN);

} catch (UnsupportedCommOperationException e) {

}
//On recupere les exception de la fct start()
} catch (Exception e) {

e.printStackTrace();

}
}

//************************Fin de la fonction START**********************

// Arréter l'applet

public void stop() {
try {

fluxLecture.close();

}

catch (IOException e) {

}

serialPort.close();

super.stop();
}
//*************************FIN DE LA FCT STOP()**********************
}

//**************************FIN DU PROGRAMME***************************

9.1.1.2URLComplet.java



Cette applet est une déclinaison de la précédente mais qui a pour tâche d’appeler une URL, lorsqu’ un identifiant RFID est détecté. L’URL chargée par cette applet contient l’identifiant de la personne détectée et charge un contenu multimédia en rapport avec son profil personnel.
//*******Applet Java réalisée en 2005 pour le centre ERASME par Guillaume BROBECKER********//
// Importation des librairies

//**********************************************************************
import java.applet.*;

import java.net.*;

import java.awt.*;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.comm.*;

import com.sun.comm.Win32Driver;

import java.io.*;

import java.util.*;

import javax.swing.JLabel;

import javax.swing.*;
// Déclaration de la classe publique URLComplet qui h�rite de la classe Applet et qui implémente la class SerialportEventLitener
public class URLComplet extends Applet implements SerialPortEventListener

{

// D�finition des variables
private CommPortIdentifier portId;

private SerialPort serialPort;

private BufferedReader fluxLecture;

private String valeurLue="";

String s;

String f;
// Initialisation du contexte graphique
BorderLayout borderLayout1 = new BorderLayout();

JTextField TextField1 = new JTextField();

JLabel jLabel1 = new JLabel();
// Initialisation de l'applet

public void init()

{
// Adresse de la page web � charger
s = "http://rfid.erasme.org/formulaire3.php?identifiant=";

//s = "http://www.google.fr";
// Nom de la frame o� doit appara�tre la page web

f = "droite";
try {

jbInit();

TextField1.setEditable(false);

} catch (Exception e) {

e.printStackTrace();

}
}
// Fonction permettant de charger une page web locale ou mondiale,
public void chargerPage(String s, String f)

{

URL u;
// Si s est ind�finie, ne pas aller plus loin

if (s == null) return;
// Si la frame est ind�finie, prendre _self par défaut

if (f == null) f = "_self";
// Construire l'URL et charger la page

try

{

// Construire une URL mondiale (si la chaîne démarre par http://)

// ou une URL locale (dans le cas contraire)

if (s.startsWith("http://"))

u = new URL(s);

else

u = new URL(getDocumentBase(), s);
// Charger la page

getAppletContext().showDocument(u, f);

} catch (MalformedURLException e) {

System.out.println("Erreur lors de l'ouverture de la page :"+s);

}
}
//******************FIN DE LA FCT chargerPage()***********************

// getValeurLue retourne la valeur de l'identifiant détecté par le lecteur
public String getValeurlue(){
return (valeurLue);
}

// M�thode de gestion des �v�nements.
public void serialEvent(SerialPortEvent event) {

//gestion des �v�nements sur le port :

//on ne fait rien sauf quand les donn�es sont disponibles

switch (event.getEventType()) {

case SerialPortEvent.BI :

case SerialPortEvent.OE :

case SerialPortEvent.FE :

case SerialPortEvent.PE :

case SerialPortEvent.CD :

case SerialPortEvent.CTS :

case SerialPortEvent.DSR :

case SerialPortEvent.RI :

case SerialPortEvent.OUTPUT_BUFFER_EMPTY :

break;

case SerialPortEvent.DATA_AVAILABLE :

try {
//lecture du buffer et affichage

fluxLecture.read();

valeurLue = new String(fluxLecture.readLine().toString());

fluxLecture.read();

TextField1.setText(""+valeurLue);

System.out.println(valeurLue);

// Appeler la fonction qui permet le chargement de la page HTML

chargerPage(s+valeurLue, f);
} catch (IOException e) {

}

break;

}
}
// Initialiser le composant

private void jbInit() throws Exception {
TextField1.setPreferredSize(new Dimension(110, 20));

TextField1.setSelectionStart(12);

jLabel1.setDisplayedMnemonic('0');

jLabel1.setHorizontalAlignment(SwingConstants.LEFT);

jLabel1.setHorizontalTextPosition(SwingConstants.LEFT);

jLabel1.setText("Identifiant :");

jLabel1.setVerticalAlignment(SwingConstants.BOTTOM);

jLabel1.setVerticalTextPosition(SwingConstants.BOTTOM);

this.add(jLabel1);

this.add(TextField1);
}
// Démarrer l'applet

public void start() {

try {

String port = "COM4";

//initialisation du driver

Win32Driver w32Driver = new Win32Driver();

w32Driver.initialize();
//récupération de l'identifiant du port

try {

portId = CommPortIdentifier.getPortIdentifier(port);

} catch (NoSuchPortException e) {

}
//ouverture du port

try {

serialPort = (SerialPort) portId.open("ModeEvenement", 2000);

} catch (PortInUseException e) {

}
//récupération du flux

try {

fluxLecture = new BufferedReader(new InputStreamReader(serialPort.getInputStream()));

} catch (IOException e) {

}

//ajout du listener

try {

serialPort.addEventListener(this);

} catch (TooManyListenersException e) {

}

//paramêtrage du port

serialPort.notifyOnDataAvailable(true);

try {

serialPort.setSerialPortParams(

9600,

SerialPort.DATABITS_7,

SerialPort.STOPBITS_1,

SerialPort.PARITY_EVEN);

} catch (UnsupportedCommOperationException e) {

}

//System.out.println("port ouvert, attente de lecture");
} catch (Exception e) {

e.printStackTrace();

}
}
// Arrêter l'applet

public void stop() {
try {

fluxLecture.close();

}

catch (IOException e) {

}

serialPort.close();

super.stop();

}
}

9.1.2Formulaires PHP

9.1.2.1Insertion_user.php


Le principe de ce script, est de remettre un badge à une personne qui va s’inscrire sur une borne multimédia possédant un lecteur RFID. Les données du formulaire ainsi que l’identifiant RFID sont stockées dans une base de données MySql. On stocke le nom, le prénom, l’adresse mail, une photo, le sexe ainsi que le profil de visite de la personne. On peut imaginer par exemple que pour une exposition une personne mal voyante pourra sélectionner un profil handicapé, qui affichera l’article concerné en plus gros caractère ou bien encore que le contenu sera sonore plutôt que visuel.
function get_photo() {

if(isset($_FILES['photo']))

{

unset($erreur);

$extensions_ok = array('png', 'gif', 'jpg', 'jpeg', 'JPEG', 'JPG');

$taille_max = 100000;

$dest_dossier = 'images/';

// utilisez également des slashes sous windows : $dest_dossier = 'd:/damien/photos/';

// vérifications

if(!in_array(substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok) && (isset($PHOTO)))

{

$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';

echo "

$erreur

";

if (isset($erreur))

{exit ();}

}

elseif(file_exists($_FILES['photo']['tmp_name']) and filesize($_FILES['photo']['tmp_name']) > $taille_max)

{

$erreur = 'Votre fichier doit faire moins de 500Ko !';

echo "

$erreur

";

if (isset($erreur))

{exit ();}

}

// copie du fichier

if(!isset($erreur))

{

$dest_fichier = basename($_FILES['photo']['name']);

// formatage nom fichier

// enlever les accents

$dest_fichier = strtr($dest_fichier,

'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',

'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

// copie du fichier

$photo = $dest_dossier.$dest_fichier;

$res = move_uploaded_file($_FILES['photo']['tmp_name'], $_SERVER["DOCUMENT_ROOT"].$photo);

}

}

return $photo;

}
$photo = get_photo();

$nom=$_POST["nom"];

$sexe=$_POST["sexe"];

$prenom=$_POST["prenom"];

$profil=$_POST["profil"];

$email=$_POST["email"];

$identifiant=$_POST["identifiant"];

$date=date("Y-m-d");

$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');
if ((isset($_REQUEST["MM_insert"])) && ($_REQUEST["MM_insert"] == "inscription")) {

echo ("$cheminPhoto");

$sql="INSERT INTO formulaire (nom,prenom,profil,email,identifiant,date,sexe,image) VALUES ('$nom','$prenom','$profil','$email','$identifiant','$date','$sexe','$photo')";

$query = mysql_query($sql) or die( 'Erreur1' );

mysql_close($db);

}

$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

//$query = "SELECT id, mot_cle FROM mots_cles ";

$query = "SELECT spip_rubriques.id_rubrique, spip_rubriques.titre, spip_rubriques.id_parent FROM spip_rubriques WHERE spip_rubriques.id_parent=0";

$result = mysql_query($query);

mysql_close($db);
$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

$query = "SELECT id, genre FROM sexe";

$result2 = mysql_query($query);

mysql_close($db);
$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

$query = "SELECT nom, type FROM langue";

$result5 = mysql_query($query);

mysql_close($db);
?>


formulaire



Bienvenue au centre ERASME






Veuillez vous inscrire




Nom :


Prénom :


Adresse Mail :




Photo :



archive = "rfid.jar"

code = "Applet1.class"

name = "Applet"

width = "110"

height = "50"

hspace = "0"

vspace = "0"

align = "left">


Profil :




Sexe :












if ((isset($_REQUEST["MM_insert2"])) && ($_REQUEST["MM_insert2"] == "inscription")) {

/*

$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

$query = "SELECT titre FROM spip_rubriques WHERE id_rubrique='$mot_cle'";

$result3 = mysql_query($query);

mysql_close($db);
while($row = mysql_fetch_row($result3))

{

$interet=$row[0];

}

*/
$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

$query = "SELECT Genre FROM sexe WHERE id='$sexe'";

$result4 = mysql_query($query);

mysql_close($db);
while($row = mysql_fetch_row($result4))

{

$sexe=$row[0];

}
$db=mysql_connect('localhost', 'rfid', 'xxx') or die ('Erreur de connection');

mysql_select_db('rfid',$db) or die ('Base inexistante');

$query = "SELECT type FROM langue WHERE nom='$profil'";

$result6 = mysql_query($query);

mysql_close($db);
while($row = mysql_fetch_row($result6))

{

$profil=$row[0];


}
// Personalisation du résultat avec le nom et prenom de la personne
echo "

Résultat du formulaire pour $prenom $nom

";

echo "
";

echo"Nous sommes le $date

";
if ($sexe=="Femme") {
echo"Vous êtes une $sexe et votre profil est $profil

";}

else{

echo"Vous êtes un $sexe et votre profil est $profil

";}

echo"Votre adresse mail est $email

";

echo"Votre indentifiant est le $identifiant

";

//echo"Votre centre d'intérêt est le/la $interet

";

echo "Merci de votre inscription $prenom

";

?>


"


}
?>
1   2   3   4   5   6   7   8

similaire:

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconFlorilege des questions / reponses
«s’applique aux surélévations ou aux additions de bâtiments existants.» Par défaut, la rt 2012, s’applique donc à toute nouvelle...

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconRapport de stage 2ème année dut informatique
«Les travaux dont IL est question dans le présent document ont été exécutés durant un stage de formation effectué au Centre international...

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconRapport de fin de stage brevet de technicien superieur

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconRapport de stage du dea d’Informatique de Lyon

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconRapport de stage de dess: “Analyse de la vidéo basée sur la suivie du regard humain”
«Eye Tracking» qui permet de déterminer le point d’un écran que regarde un sujet

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconNous ferons une lecture dans le livre de l’Apocalypse 3/7 : Ecris...
«Que celui qui a des oreilles entende ce que l’Esprit dit aux Eglises: veillons !» Je ne continuerai pas sur ce sujet de l’enlèvement...

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconProposition de stage Master 1 ou 2

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconGénie Informatique -electrotechnique -electronique -reseaux informatique- telecommunications

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconA machloukh ahmed
«Technicien Spécialisé en Systèmes et Réseaux Informatiques» cfmoti (Complexe de Formation aux Métiers de l’Offshoring et des Technologies...

Résumé Ce rapport concerne mon stage de fin d’étude de Master 2 Informatique appliqué aux Réseaux. Le sujet de celui-ci comportait diverses problématiques iconLe courage n’est pas une maladie contagieuse…
«Toile», j’ai ajouté mon deuxième prénom qui est aussi celui de mon grand-père, artisan-tonnelier








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com