Statistiques
| Révision:

xamarin / SicpaXamDevice / trunk / Sicpa.Xam.Device.Droid / Rfid / Agrident / AgridentReceiver.cs @ 5

Historique | Voir | Annoter | Télécharger (2,185 ko)

1
using Android.Content;
2
using Sicpa.Xam.Device.Forms.Models;
3
using System;
4

    
5

    
6
namespace Sicpa.Xam.Device.Droid.Rfid.Agrident
7
{
8
    public class AgridentReceiver : BroadcastReceiver
9
    {
10
        public EventHandler<InfosRfid> TagLuReceiver;
11
        public override void OnReceive(Context context, Intent intent)
12
        {
13
            if (intent.Action.Equals(AgridentConstantes.LECTURE_TAG_REUSSI))
14
            {
15
                //on récupère la string DONNEE_LU de l'intent
16
                string tmpDonnee = intent.GetStringExtra(AgridentConstantes.DONNEE_LUE);
17

    
18
                //Par défaut le lecteur envoie le numéro sur 16 chiffres (le code pays peut théoriquement être > 999). Donc on se retrouve avec un 0 devant.
19
                //Un paramêtre permet de supprimer l'envoie de ce premier 0. Mais comme on sait pas si se paramétre est coché ou pas, on fait en sorte de traiter tjs sur 16 chiffres.
20
                if (tmpDonnee.Length == 15) tmpDonnee = tmpDonnee="0"+tmpDonnee;
21
                //ici on met en forme toutes les informations qui doivent êtres contenu dans la classe RfidInfos
22
                string tmpIsoRfid = tmpDonnee.Substring(1, 15);
23
                string tmpCodePays = tmpDonnee.Substring(1, 3);
24
                string tmpdNumAnimal = tmpDonnee.Substring(4, 12);
25
                string tmpTypeTag = "";
26
                string tmpIsoEtendu = tmpDonnee;
27
                string tmpCodeEtendu = tmpDonnee.Substring(0, 1);
28
                bool tmpTagLu = true;
29
                //on met toutes ces infos dans une variable qui sera passée à l'événement
30
                var infosEvent = new InfosRfid() { IsoRfid = tmpIsoRfid, CodePays = tmpCodePays, NumeroAnimal = tmpdNumAnimal, TypeTag = tmpTypeTag, IsoEtendu = tmpIsoEtendu, CodeEtendu = tmpCodeEtendu, TagLu = tmpTagLu };
31

    
32
                TagLuReceiver?.Invoke(this, infosEvent);
33

    
34
                
35
            }
36
            else
37
            {
38
                var infosEvent = new InfosRfid() { IsoRfid = "No Tag", CodePays = "", NumeroAnimal = "", TypeTag = "", IsoEtendu = "", CodeEtendu = "", TagLu = false };
39
                TagLuReceiver?.Invoke(this, infosEvent);
40
            }
41

    
42
        }
43
    }
44
}