1 package com.lasalle.io_trucks;
3 import androidx.appcompat.app.AlertDialog;
4 import androidx.appcompat.app.AppCompatActivity;
6 import android.bluetooth.BluetoothAdapter;
7 import android.bluetooth.BluetoothDevice;
8 import android.content.DialogInterface;
9 import android.content.IntentFilter;
10 import android.os.Bundle;
11 import android.os.Handler;
12 import android.os.Message;
13 import android.util.Log;
14 import android.view.View;
15 import android.widget.Button;
16 import android.widget.EditText;
17 import android.widget.ImageButton;
18 import android.widget.ImageView;
19 import android.widget.TextView;
32 public class MainActivity extends AppCompatActivity implements View.OnClickListener
37 private static final String
TAG =
"IHMMainActivity";
61 protected void onCreate(Bundle savedInstanceState)
63 super.onCreate(savedInstanceState);
64 setContentView(R.layout.activity_main);
65 Log.i(TAG,
"onCreate()");
80 Log.i(TAG,
"onStart()");
90 Log.i(TAG,
"onResume()");
101 Log.i(TAG,
"onPause()");
112 Log.i(TAG,
"onStop()");
123 Log.i(TAG,
"onDestroy()");
135 if(element == buttonBluetooth)
137 if(buttonBluetooth.getText().equals(
"Connecter"))
140 if(blueDevice == null)
142 AlertDialog.Builder boiteAvertissementNonTrouver =
new AlertDialog.Builder(
this);
143 boiteAvertissementNonTrouver.setMessage(
"L'appareil io-trucks n'as pas été trouvé. Vérifiez si celui a été appairé correctement.");
144 boiteAvertissementNonTrouver.setPositiveButton(
"Continuer",
new DialogInterface.OnClickListener() {
146 public void onClick(DialogInterface dialog,
int which) {
149 boiteAvertissementNonTrouver.show();
150 Log.i(TAG,
"Appareil io-trucks non trouvé !");
155 if(peripheriqueBluetooth == null)
157 Log.i(TAG,
"Instancie peripheriqueBluetooth");
162 Log.i(TAG,
"Connexion peripheriqueBluetooth");
170 else if(buttonBluetooth.getText().equals(
"Déconnecter"))
178 else if(element == buttonRechercher)
182 else if(element == imageButtonTriangle)
184 Log.i(TAG,
"button Triangle");
188 imageButtonTriangle.setImageResource(R.drawable.triangle);
194 imageButtonTriangle.setImageResource(R.drawable.triangle_b_w);
195 etatTriangle =
false;
198 else if(element == imageButtonGyrophare)
200 Log.i(TAG,
"button Gyrophare");
204 imageButtonGyrophare.setImageResource(R.drawable.flash);
205 etatGyrophare =
true;
210 imageButtonGyrophare.setImageResource(R.drawable.flash_b_w);
211 etatGyrophare =
false;
214 else if(element == imageButtonEclairage)
216 Log.i(TAG,
"button Eclairage");
220 imageButtonEclairage.setImageResource(R.drawable.spotlight);
221 etatEclairage =
true;
226 imageButtonEclairage.setImageResource(R.drawable.spotlight_b_w);
227 etatEclairage =
false;
230 else if(element == buttonRafraichir)
232 Log.i(TAG,
"button Rafraichir");
237 Log.i(TAG,
"button Inconnu : " + element.getId());
246 if(peripheriqueBluetooth != null)
250 Log.i(TAG,
"envoyerTrame() trame : " + trame);
251 peripheriqueBluetooth.
envoyer(trame);
261 buttonBluetooth = findViewById(R.id.buttonConnecter);
262 buttonRechercher = findViewById(R.id.buttonBounded);
263 buttonRafraichir = findViewById(R.id.buttonRafraichir);
264 imageButtonTriangle = findViewById(R.id.imageButtonTriangle);
265 imageButtonGyrophare = findViewById(R.id.imageButtonGyrophares);
266 imageButtonEclairage = findViewById(R.id.imageButtonEclairage);
267 imageEtatConnection = findViewById(R.id.imageViewEtatConnection);
268 textEtatConnection = findViewById(R.id.textViewEtatConnection);
269 editNomPeripherique = findViewById(R.id.editNomPeripherique);;
279 buttonBluetooth.setOnClickListener(
this);
280 buttonRechercher.setOnClickListener(
this);
281 buttonRafraichir.setOnClickListener(
this);
282 imageButtonTriangle.setOnClickListener(
this);
283 imageButtonGyrophare.setOnClickListener(
this);
284 imageButtonEclairage.setOnClickListener(
this);
292 IntentFilter filter =
new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
298 buttonBluetooth.setText(
"Déconnecter");
299 buttonRafraichir.setEnabled(
true);
300 imageButtonTriangle.setEnabled(
true);
301 imageButtonGyrophare.setEnabled(
true);
302 imageButtonEclairage.setEnabled(
true);
303 imageEtatConnection.setImageResource(R.drawable.green_cricle);
304 textEtatConnection.setText(
"Connecté");
312 buttonBluetooth.setText(
"Connecter");
313 buttonRafraichir.setEnabled(
false);
314 imageButtonTriangle.setEnabled(
false);
315 imageButtonGyrophare.setEnabled(
false);
316 imageButtonEclairage.setEnabled(
false);
317 imageButtonTriangle.setImageResource(R.drawable.triangle_b_w);
318 imageButtonEclairage.setImageResource(R.drawable.spotlight_b_w);
319 imageButtonGyrophare.setImageResource(R.drawable.flash_b_w);
320 imageEtatConnection.setImageResource(R.drawable.red_circle);
321 textEtatConnection.setText(
"Déconnecté");
330 String nouvelleTrame =
"";
338 Log.v(TAG,
"decoderTrame() découpage de la trame");
340 for(
int i = 1; i < trameCouper.length; i++)
342 Log.v(TAG,
"decoderTrame() champ " + i +
" = " + trameCouper[i]);
353 Log.v(TAG,
"traiterTrame() trame[1] = " + trame[1] +
" (type)");
365 Log.v(TAG,
"traiterTrame() trame[2] = " + trame[2] +
" (triangle)");
368 imageButtonTriangle.setImageResource(R.drawable.triangle);
373 imageButtonTriangle.setImageResource(R.drawable.triangle_b_w);
374 etatTriangle =
false;
377 Log.v(TAG,
"traiterTrame() trame[3] = " + trame[3] +
" (gyrophare)");
380 imageButtonGyrophare.setImageResource(R.drawable.flash);
381 etatGyrophare =
true;
385 imageButtonGyrophare.setImageResource(R.drawable.flash_b_w);
386 etatGyrophare =
false;
389 Log.v(TAG,
"traiterTrame() trame[4] = " + trame[4] +
" (éclairage)");
392 imageButtonEclairage.setImageResource(R.drawable.spotlight);
393 etatEclairage =
true;
397 imageButtonEclairage.setImageResource(R.drawable.spotlight_b_w);
398 etatEclairage =
false;
409 public void handleMessage(Message msg)
411 super.handleMessage(msg);
416 Log.v(TAG,
"handleMessage() io-trucks connecté");
421 Log.v(TAG,
"handleMessage() io-trucks réception : " + (String)msg.obj);
425 Log.v(TAG,
"handleMessage() io-trucks émission : " + (String)msg.obj);
431 Log.v(TAG,
"handleMessage() io-trucks déconnecté");
void afficherEtatS1(String[] trame)
Peripherique peripheriqueBluetooth
boolean deconnecter()
Méthode perméttant de se déconnecter du périphérique.
void rechercherAppareilConnu(Context contextAcceuil)
Méthode de recherche des appareils qui ont déjà était appairer.
final Handler handler
Handler de l'application et des périphériques bluetooth Cette handler permet de gérer le thread de co...
static final String DELIMITEUR_CHAMP
static final String DELIMITEUR_FIN
ImageButton imageButtonGyrophare
void onClick(View element)
Méthode de gestion des clics Ceci est la méthode qui gère l'écoute des clics sur les différents widge...
ImageButton imageButtonTriangle
static final String EN_TETE
void onStart()
Méthode appelée au démarrage après le onCreate() ou un restart après un onStop()
void initialiserWidgets()
Méthode pour initialiser les Widgets.
void onPause()
Méthode appelée après qu'une boîte de dialogue s'est affichée (on reprend sur un onResume()) ou avant...
ImageButton imageButtonEclairage
static final int CODE_CONNEXION
void traiterTrame(String[] trame)
Méthode permettant de traiter les trames en fonctions de leurs contennue.
void onStop()
Méthode appelée lorsque l'activité n'est plus visible.
void envoyer(final String data)
Méthode perméttant d'envoyer une trame à l'aide du Thread.
BroadcastReceiver ecouterEtatBluetooth()
Vérifie les modification d'état du bluetooth.
static final int CODE_RECEPTION
boolean estConnecte()
Méthode perméttant de savoir si on est connecter.
void onResume()
Méthode appelée après onStart() ou après onPause()
void connecter()
Méthode perméttant de se connecter à un périphérique.
void onDestroy()
Méthode appelée à la destruction de l'application (après onStop() et détruite par le système Android)...
BluetoothDevice recupererAppareilBluetooth(String nomAppareil)
Méthode qui retourne l'appareil Bluetooth io-trucks.
Classe permettant de gérer les périphériques.
TextView textEtatConnection
Classe de Communication et de connexion bluetooth.
void unregisterBluetooth(Context contextAcceuil)
Méthode pour unregister les receiver à la destruction de l'application.
void creerLiasonReceiverEtatBluetooth()
Méthode pour créer les Registers de l'état du bluetooth et donc le lien avec l'état du bluetooth...
ImageView imageEtatConnection
static final String TRAME_REQUETE_STATE1
void onCreate(Bundle savedInstanceState)
Méthode appelée à la création de l'activité MainActivity.
static final int CODE_EMISSION
void decoderTrame(String trame)
Méthode perméttant de décoder les trames reçues.
void recupererWidgets()
Méthode pour associer la vue à l'objet des Widgets.
EditText editNomPeripherique
void demanderActivationBluetooth(Context contextAcceuil)
Vérifie si le bluetooth est disponible et activé, sinon demande l'autorisation de l'activé ...
void renitialiserVue()
Méthode permettant de rénitialiser la vue de l'activitée.
static final int CODE_DECONNEXION
void envoyerTrame(String trame)
Méthode qui envoie une trame au périphérique Bluetooth.
Communication communicationBluetooth