示例#1
0
        public void EnvoiTest()
        {
            NombreMessagesTotal++;
            IDTestEmissionActuel++;

            Trame t = TrameFactory.TestEmission(Carte, IDTestEmissionActuel);

            Connexion.SendMessage(t);
        }
示例#2
0
        public void MessageRecu(Trame trame)
        {
            if ((FonctionBalise)trame[1] == FonctionBalise.TestEmissionCorrompu)
            {
                Reponses[trame[2]].Add(ReponseLiaison.CorrompuEmission);

                NombreMessagesCorrompusEmission++;
                if (trame[2] != IDTestReceptionActuel)
                {
                    if (trame[2] < IDTestReceptionActuel)
                    {
                        NombreMessagesPerdusReception += 255 - IDTestReceptionActuel;
                        NombreMessagesPerdusReception += trame[2];

                        for (int i = IDTestReceptionActuel + 1; i < 256; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }

                        for (int i = 0; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                    else
                    {
                        NombreMessagesPerdusReception += trame[2] - IDTestReceptionActuel;

                        for (int i = IDTestReceptionActuel; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                }

                IDTestReceptionActuel = (byte)(trame[2] + 1);
            }
            if ((FonctionBalise)trame[1] == FonctionBalise.TestEmissionReussi)
            {
                if (trame[2] != IDTestReceptionActuel)
                {
                    if (trame[2] < IDTestReceptionActuel)
                    {
                        NombreMessagesPerdusReception += 255 - IDTestReceptionActuel;
                        NombreMessagesPerdusReception += trame[2];

                        for (int i = IDTestReceptionActuel + 1; i < 256; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }

                        for (int i = 0; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                    else
                    {
                        NombreMessagesPerdusReception += trame[2] - IDTestReceptionActuel;

                        for (int i = IDTestReceptionActuel; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                }

                bool verif = true;
                if (trame.Length == 19)
                {
                    for (int i = 0; i < 16; i++)
                    {
                        if (trame[i + 3] != i)
                        {
                            verif = false;
                        }
                    }

                    if (verif)
                    {
                        NombreMessagesCorrects++;
                        Reponses[trame[2]].Add(ReponseLiaison.OK);
                    }
                    else
                    {
                        NombreMessagesCorrompusReception++;
                        Reponses[trame[2]].Add(ReponseLiaison.CorrompuReception);
                    }
                }

                IDTestReceptionActuel = (byte)(trame[2] + 1);
            }
            if ((FonctionBalise)trame[1] == FonctionBalise.TestEmissionPerdu)
            {
                byte idAttendu = trame[2];
                byte idRecu    = trame[3];

                if (idRecu > idAttendu)
                {
                    NombreMessagesPerdusEmission += idRecu - idAttendu;
                }
                else
                {
                    NombreMessagesPerdusEmission += 255 - idAttendu;
                    NombreMessagesPerdusEmission += idRecu;
                }

                if (trame[2] != IDTestReceptionActuel)
                {
                    if (trame[2] < IDTestReceptionActuel)
                    {
                        NombreMessagesPerdusReception += 255 - IDTestReceptionActuel;
                        NombreMessagesPerdusReception += trame[2];

                        for (int i = IDTestReceptionActuel + 1; i < 256; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }

                        for (int i = 0; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                    else
                    {
                        NombreMessagesPerdusReception += trame[2] - IDTestReceptionActuel;

                        for (int i = IDTestReceptionActuel; i < trame[2]; i++)
                        {
                            Reponses[i].Add(ReponseLiaison.PerduReception);
                        }
                    }
                }

                IDTestReceptionActuel = (byte)(idRecu + 1);
            }
        }