1 package com.lasalle84.mobile_darts;
3 import android.bluetooth.BluetoothDevice;
4 import android.bluetooth.BluetoothSocket;
5 import android.os.Bundle;
6 import android.os.Handler;
7 import android.os.Message;
8 import android.util.Log;
10 import java.io.IOException;
11 import java.io.InputStream;
12 import java.io.OutputStream;
13 import java.util.UUID;
14 import java.util.concurrent.locks.ReentrantLock;
33 private final static String
TAG =
"_Peripherique_";
34 public final static String
NOM_CIBLE =
"cible-darts 2021";
35 public final static String
NOM_ECRAN =
"ecran-darts";
55 private final ReentrantLock
mutex =
new ReentrantLock();
64 Log.d(TAG,
"[Peripherique] " + device.getName() +
" : " + device.getAddress());
68 this.nom = device.getName();
69 this.adresse = device.getAddress();
82 assert device != null;
83 socket = device.createRfcommSocketToServiceRecord(UUID.fromString(
"00001101-0000-1000-8000-00805F9B34FB"));
84 receiveStream = socket.getInputStream();
85 sendStream = socket.getOutputStream();
94 reception =
new TReception(
this, handlerActivite, receiveStream);
124 if(device == null | socket == null)
126 return socket.isConnected();
134 Log.d(TAG,
"[setHandlerActivite] " + handler);
136 this.handlerActivite = handler;
137 if(reception != null)
148 Log.d(TAG,
"[connecter] " + device.getName() +
" : " + device.getAddress());
151 @Override
public void run()
161 Log.d(TAG,
"connexion reussie " +
getNom());
164 catch (IOException e)
167 Log.d(TAG,
"erreur connexion " +
getNom());
180 Log.d(TAG,
"[deconnecter] " + device.getName() +
" : " + device.getAddress());
183 @Override
public void run()
190 Log.d(TAG,
"déconnexion reussie " +
getNom());
192 catch (IOException e)
207 Log.d(TAG,
"[envoyer] " + device.getName() +
" : " + device.getAddress());
214 @Override
public void run()
218 if(socket.isConnected())
220 sendStream.write(data.getBytes());
222 Log.d(TAG,
"[envoyer] trame : " + data);
226 catch (IOException e)
229 Log.d(TAG,
"Erreur socket write : " +
getNom());
241 if(handlerActivite == null)
243 Message msg = Message.obtain();
245 Bundle b =
new Bundle();
246 b.putString(
"nom",
getNom());
250 handlerActivite.sendMessage(msg);
void setHandlerActivite(Handler handler)
String adresse
Adresse du peripherique bluetooth.
static final int CODE_DECONNEXION
Code de Deconnexion.
String nom
Nom du peripherique bluetooth.
La classe qui contient toute la gestion des periphériques.
boolean estConnecte()
Méthode qui retourne l'état de connexion'.
void arreter()
Arrêt du Thread permettant l'écoute de trame du périphérique Bluetooth.
OutputStream sendStream
Output du BLuetooth.
static final String NOM_ECRAN
Le nom du module Bluetooth de l'écran.
final ReentrantLock mutex
Mutex pour le changement d'handler.
TReception reception
Thread pour recevoir les trames.
BluetoothDevice device
Objet BluetoothDevice.
String getAdresse()
Méthode qui retourne l'adresse du périphérique.
static final int CODE_ERREUR_RECEVOIR
Code erreur lors de la réception.
void deconnecter()
Méthode pour se deconnecter sur le periphérique en Bluetooth.
static final int CODE_ERREUR_ENVOYER
Code erreur lors de l'envoi.
BluetoothSocket socket
Socket Bluetooth.
static final int CODE_CONNEXION
Code de Connection.
InputStream receiveStream
Input du Bluetooth.
void setHandlerActivite(Handler handler)
Méthode qui permet de changer d'handler.
La classe qui contient toute la gestion des thread de reception et envoi de trames.
Handler handlerActivite
Handler qui permet de communiquer avec l'activité
static final int CODE_RECEPTION
Code de TReception.
static final int CODE_ERREUR_DECONNECTER
Code erreur lors de la déconnexion.
void envoyerMessageActivite(int what)
Méthode qui permet d'envoyer un message à l'activité
String getNom()
Méthode qui retourne le nom du périphérique.
static final String NOM_CIBLE
Le nom du module Bluetooth de la cible-darts 2021.
static final String TAG
TAG pour log.
void envoyer(final String data)
Méthode pour envoyer une trame en Bluetooth.
void connecter()
Méthode pour se connecter sur le periphérique en Bluetooth.
Peripherique(BluetoothDevice device, Handler handler)
Constructeur de la classe Peripherique.
static final int CODE_ERREUR_CONNECTER
Code erreur lors de la connexion.