Example #1
0
        private async Task inviaDatiTrasfusione()
        {
            if (!sacca.disponibile)
            {
                Toast.MakeText(this, "La sacca non รจ disponibile per l'assegnazione", ToastLength.Short).Show();
            }
            else if ((paziente != null && !string.IsNullOrEmpty(paziente.uid.Trim())) && (sacca != null && !string.IsNullOrEmpty(sacca.uid.Trim())))
            {
                REST <Paziente, string> rest = new REST <Paziente, string>();
                paziente.uidSacca = sacca.uid;
                var response = await rest.PostJson("http://192.168.125.14:3000/pazienti/assegnatrasfusione", paziente);

                if (rest.responseMessage == System.Net.HttpStatusCode.OK)
                {
                    nomePaziente.Text    = "";
                    cognomePaziente.Text = "";
                    gruppoPaziente.Text  = "";
                    rhPaziente.Text      = "";
                    gruppoSacca.Text     = "";
                    rhSacca.Text         = "";
                    statoSacca.Text      = "";
                    sacca    = new Sacca();
                    paziente = new Paziente();
                }
                Toast.MakeText(this, rest.warning, ToastLength.Short).Show();
            }
        }
        // Il metodo OnNewIntent viene invocato dal sistema android.
        protected override async void OnNewIntent(Intent intent)
        {
            if (_inReadMode)
            {
                try
                {
                    _inReadMode = false;
                    sacca       = new Sacca();
                    Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica)
                    if (tag == null)
                    {
                        return;
                    }
                    byte[] Uid       = tag.GetId();  //Recupera l'UID del tag rilevato
                    string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale
                    sacca.uid        = UidString;
                    textIdSacca.Text = UidString;

                    /*
                     * mifareTag.WriteBlock(firstBlock, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });
                     * mifareTag.WriteBlock(firstBlock + 1, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 });
                     * Toast.MakeText(this, "Write succesfully", ToastLength.Short).Show();
                     */
                }
                catch (Exception e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android
                {
                    Toast.MakeText(this, e.Message, ToastLength.Short).Show();
                }
            }
        }
        private async void ScannerizzaSacca(object sender, EventArgs e)
        {
            var scanPage = new ZXingScannerPage();

            scanPage.OnScanResult += (result) => {
                // Stop scanning
                scanPage.IsScanning = false;
                // Pop the page and show the result
                Device.BeginInvokeOnMainThread(() => {
                    Navigation.PopAsync();
                    sacca             = new Sacca();
                    sacca.uid         = result.Text;
                    scanSaccaEseguita = true;
                    controllaScanSacca();
                });
            };
            // Navigate to our scanner page
            await Navigation.PushAsync(scanPage);
        }
 protected override async void OnNewIntent(Intent intent)
 {
     if (_inReadMode)
     {
         try
         {
             _inReadMode = false;
             Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica)
             if (tag == null)
             {
                 return;
             }
             byte[] Uid       = tag.GetId();  //Recupera l'UID del tag rilevato
             string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale
             sacca        = new Sacca();
             sacca.uid    = UidString;
             idSacca.Text = UidString;
             if (await sacca.getSacca(this))
             {
                 editGruppo.Text = sacca.gruppo;
                 editRh.Text     = sacca.rh;
                 statoSacca.Text = sacca.stato;
             }
             else
             {
                 editGruppo.Text = "";
                 editRh.Text     = "";
                 statoSacca.Text = "";
             }
         }
         catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android
         {
             Toast.MakeText(this, e.Message, ToastLength.Short).Show();
         }
     }
 }
Example #5
0
        // Il metodo OnNewIntent viene invocato dal sistema android.
        protected override async void OnNewIntent(Intent intent)
        {
            if (scanPaziente) //L'operatore ha cliccato sul button per lo scan del tag relativo al paziente
            {
                try
                {
                    Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica)
                    if (tag == null)
                    {
                        return;
                    }
                    byte[] Uid       = tag.GetId();  //Recupera l'UID del tag rilevato
                    string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale
                    paziente     = new Paziente();
                    paziente.uid = UidString;
                    if (await paziente.getPaziente(this))
                    {
                        nomePaziente.Text    = paziente.nome;
                        cognomePaziente.Text = paziente.cognome;
                        gruppoPaziente.Text  = paziente.gruppo;
                        rhPaziente.Text      = paziente.rh;
                    }
                    else
                    {
                        nomePaziente.Text    = "";
                        cognomePaziente.Text = "";
                        gruppoPaziente.Text  = "";
                        rhPaziente.Text      = "";
                    }

                    /*
                     * MifareClassic mifareTag = MifareClassic.Get(tag); //Cast del Tag rilevato con la classe MifareClassic
                     * mifareTag.Connect();//Abilita le funzioni di Input Output con il tag
                     * if (mifareTag.AuthenticateSectorWithKeyB(3, new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF })) //Effettua l'autenticazione sul settore 3 con la chiave B
                     * {
                     *  int firstBlock = mifareTag.SectorToBlock(3);//Ritorna il primo blocco del settore 3
                     *  var read = mifareTag.ReadBlock(firstBlock);//Legge sul blocco firstBlock (la lettura avviene in byte)
                     *                                             //Converte i byte in string formato UTF-32
                     *  var str1 = new StringBuilder(2);
                     *  str1.Append(char.ConvertFromUtf32(read[0]));
                     *  LogMessage.Text = str1.ToString(); //Gruppo sanguigno
                     *  sacca = new Sacca();
                     *
                     *  sacca.uid = UidString;
                     *  sacca.gruppo = str1.ToString().Trim();
                     *  await sacca.insertSacca(this);
                     *  //Scrive sul blocco firstBlock l'array di byte (l'array deve essere di 16 byte)
                     *  mifareTag.WriteBlock(firstBlock, new byte[] { 66, 0x00, 49, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 });
                     *  Toast.MakeText(this, "Write succesfully", ToastLength.Short).Show();
                     *
                     * }
                     */
                }
                catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android
                {
                    Toast.MakeText(this, e.Message, ToastLength.Short).Show();
                }
            }
            else if (scanSacca) //L'operatore ha cliccato sul button per lo scan del tag relativo alla sacca di sangue
            {
                try
                {
                    Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; //Cast dei dati presenti nell'intent nella classe Tag (classe di tag generica)
                    if (tag == null)
                    {
                        return;
                    }
                    sacca = new Sacca();
                    byte[] Uid       = tag.GetId();  //Recupera l'UID del tag rilevato
                    string UidString = bin2hex(Uid); //Converte l'UID in string formato esadecimale
                    sacca.uid = UidString;
                    if (await sacca.getSacca(this))
                    {
                        gruppoSacca.Text = sacca.gruppo;
                        rhSacca.Text     = sacca.rh;
                        statoSacca.Text  = sacca.stato;
                    }
                    else
                    {
                        gruppoSacca.Text = "";
                        rhSacca.Text     = "";
                        statoSacca.Text  = "";
                    }

                    /*
                     * MifareClassic mifareTag = MifareClassic.Get(tag); //Cast del Tag rilevato con la classe MifareClassic
                     * mifareTag.Connect();//Abilita le funzioni di Input Output con il tag
                     * if (mifareTag.AuthenticateSectorWithKeyB(3, new byte[] { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF })) //Effettua l'autenticazione sul settore 3 con la chiave B
                     * {
                     *  int firstBlock = mifareTag.SectorToBlock(3);//Ritorna il primo blocco del settore 3
                     *  var read = mifareTag.ReadBlock(firstBlock);//Legge sul blocco firstBlock (la lettura avviene in byte)
                     *                                             //Converte i byte in string formato UTF-32
                     *  var str1 = new StringBuilder(2);
                     *  str1.Append(char.ConvertFromUtf32(read[0]));
                     *  LogMessage.Text = str1.ToString(); //Gruppo sanguigno
                     *  sacca = new Sacca();
                     *
                     *  sacca.uid = UidString;
                     *  sacca.gruppo = str1.ToString().Trim();
                     *  await sacca.insertSacca(this);
                     *  //Scrive sul blocco firstBlock l'array di byte (l'array deve essere di 16 byte)
                     *  mifareTag.WriteBlock(firstBlock, new byte[] { 66, 0x00, 49, 0x00, 0x00, 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 });
                     *  Toast.MakeText(this, "Write succesfully", ToastLength.Short).Show();
                     *
                     * }
                     */
                }
                catch (TagLostException e) //Cattura l'eccezione nel caso in cui il tag viene allontanato dal dispositivo android
                {
                    Toast.MakeText(this, e.Message, ToastLength.Short).Show();
                }
            }
        }