xamarin / SicpaXamDevice / trunk / Sicpa.Xam.Device.Droid / Rfid / Agrident / AgridentReceiver.cs @ 5
Historique | Voir | Annoter | Télécharger (2,185 ko)
1 | 4 | jfbompa | 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 | 5 | jfbompa | |
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 | 4 | jfbompa | //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 | 5 | jfbompa | |
34 | |||
35 | 4 | jfbompa | } |
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 | } |