roroo07
Messages postés504Date d'inscriptionmercredi 30 juin 2010StatutMembreDernière intervention14 avril 2014
-
14 avril 2014 à 16:11
roroo07
Messages postés504Date d'inscriptionmercredi 30 juin 2010StatutMembreDernière intervention14 avril 2014
-
14 avril 2014 à 21:17
Bonjour a vous,
Je suis actuellement en STI2D option Système informatique et numérique, on travail sur un projet de LED DMX et je dois me charger de faire la partie android. Donc tout ce qui est IHM et bluetooth.
@Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }
Et mon BtIntervace.java
/** Du coup pour l'utiliser, il suffit juste de déclarer un objet BtInterface, // & bt.connect(); pour se connecter, & bt.sendData("texte.."); pour envoyer */
public BtInterface(Handler connexion, Handler manageData) { // On récupère la liste des péripheriques associés à notre appareil Android Set<BluetoothDevice> setpairedDevices = BluetoothAdapter .getDefaultAdapter().getBondedDevices(); BluetoothDevice[] pairedDevices = (BluetoothDevice[]) setpairedDevices .toArray(new BluetoothDevice[setpairedDevices.size()]);
for (int i = 0; i < pairedDevices.length; i++) { // Notre module bluetooth doit contenir son nom : ici 'FB155v2.2.1' if (pairedDevices[i].getName().contains("FB155v2.2.1")) { device = pairedDevices[i]; try { // On utilise cet UUID pour dialoguer en connexion série // On crée un socket bluetooth pour notre périphérique socket = device.createRfcommSocketToServiceRecord(UUID .fromString("00001101-0000-1000-8000-00805F9B34FB")); // flux de réception (fonctionnera dès que la connexion sera établie) receiveStream = socket.getInputStream(); // flux d'emission (fonctionnera dès que la connexion sera établie) sendStream = socket.getOutputStream(); } catch (IOException e) { e.printStackTrace(); } break; } } statutConnexion = connexion; // on prépare le thread de réception des données processusReception = new ReceiverThread(manageData); }
/** Methode pour envoyer des données de la tablette vers un BT externe ------------------------------*/ public void sendData(String data) { { sendData(data, false); } }
public void sendData(String data, boolean deleteScheduledData) { try { // On écrit les données dans le buffer d'envoi de la tablette sendStream.write(data.getBytes()); // On s'assure qu'elles soient bien envoyées sendStream.flush(); } catch (IOException e) { e.printStackTrace(); } } /** Fin de la Methode pour envoyer des données de la tablette vers un BT externe --------------------*/
/** Methode pour connecter la tablette avec un BT externe -------------------------------------------*/ public void connect() { new Thread() { @Override public void run() { try { // tentative de connexion externe socket.connect(); Message msg = statutConnexion.obtainMessage(); msg.arg1 = 1; // réussite de connexion: envoie un msg pour afficher "Connected" statutConnexion.sendMessage(msg); // on démarre le thread de réception des données processusReception.start(); } catch (IOException e) { // si échec de la connexion Log.v("N", "Connection Failed : " + e.getMessage()); e.printStackTrace(); } } }.start(); } /** Fin de la Methode pour connecter la tablette avec un BT externe ---------------------------------*/
/** Methode pour la fermeture de l'appli ------------------------------------------------------------*/ public void close() { new Thread() { @Override public void run() { try { // tentative de connexion socket.close(); Message msg = statutConnexion.obtainMessage(); msg.arg1 = 2; // réussite de la déconnexion: envoie un msg pour afficher "DisConnected" statutConnexion.sendMessage(msg); } catch (IOException e) { // si echec de la déconnexion Log.v("N", "Connection Failed : " + e.getMessage()); e.printStackTrace(); } } }.start(); } /** Fin de la Methode pour la fermeture de l'appli ------------------------------------------------*/
public BluetoothDevice getDevice() { return device; }
/** Réception data arrivant sur BT tablette pour affichage futur sur tablette ---------------------*/ private class ReceiverThread extends Thread { // Thread qui reçoit les données arrivant du module BT Handler handler;
ReceiverThread(Handler h) { handler = h; }
@Override public void run() { while (true) { try { // si il y a des données sur le canal de réception if (receiveStream.available() > 0) { // tableau d'octets de 100 cases byte buffer[] = new byte[100]; // on stocke les données dans le tableau, k prend la valeur du nb de cases remplies int k = receiveStream.read(buffer, 0, 100); // s'il y a des données if (k > 0) { // tableau d'octets qui a pour longueur le nombre de case de "buffer" byte rawdata[] = new byte[k]; // chaque donnée de "buffer" est stockée dans "rawdata" for (int i = 0; i < k; i++) rawdata[i] = buffer[i]; // on convertit "rawdata" en chaine de caractères String data = new String(rawdata); // on récupère le "Message" du handler Message msg = handler.obtainMessage(); // création d'une variable transmissible dans le "Message" Bundle b = new Bundle(); // on stocke les données que l'on appelle "receivedData" qui remplace les anciennes b.putString("receivedData", data); // on edite le "Message" avec le bundle créé et complète msg.setData(b); // envoie du message au SerieBTActivity pour qu'il affiche les // données de réception à l'écran ( gestionDonnées ) handler.sendMessage(msg); } } } catch (IOException e) { e.printStackTrace(); } } } } /** Fin de réception du BT tablette --------------------------------------------------------------*/ }
Mon problème est au niveau du ProgressBar et que lors du lancement de l'application, elle crash et on arrive pas a trouver pourquoi ..