Example #1
0
 public int GetDistancia(Antena destino)
 {
     if (!_tablaDeRuteo.ContainsKey(destino.Id))
     {
         Red.CalcularRutas(destino);
     }
     return(_tablaDeDistancias[destino.Id]);
 }
Example #2
0
    private void TransmitirPing()
    {
        _antenaTransmisoraPing = _antenaTransmisoraPing.GetRuta(_antenaDestinoPing);

        if (_pingingLlegoADestino && _antenaTransmisoraPing == _antenaOrigenPing)
        {
            ResultadoPing();
            Destroy(_pingFisico);
            _pinging = false;
        }
        else
        {
            if (_antenaTransmisoraPing == _antenaDestinoPing)
            {
                _pingingLlegoADestino = true;
                _pingExitoso          = _antenaDestinoPing.MensajeTrasnmitido || _antenaTransmisoraMensaje.GetRuta(RedCom.AntenaReceptora) == _antenaDestinoPing;

                _pingMensaje = "---INFORMACIÓN EN DESTINO / ANTENA #" + _antenaDestinoPing.Id + " ---\n";
                int anchoMensaje = _pingMensaje.Count();
                if (_pingExitoso)
                {
                    RedCom.CalcularRutas(_antenaTransmisoraMensaje);
                    int distancia = _antenaDestinoPing.GetDistancia(_antenaTransmisoraMensaje);
                    if (_antenaDestinoPing.MensajeTrasnmitido)
                    {
                        if (distancia == 0)
                        {
                            _pingMensaje += " ! EMITIENDO MENSAJE !\n";
                        }
                        else
                        {
                            _pingMensaje += "MENSAJE REEMITIDO - Distancia: " + distancia;
                            if (distancia == 1)
                            {
                                _pingMensaje += " salto.\n";
                            }
                            else
                            {
                                _pingMensaje += " saltos.\n";
                            }
                        }
                    }
                    else
                    {
                        _pingMensaje += "! RECIBIENDO MENSAJE !\n";
                    }
                }
                else
                {
                    _pingMensaje += "El mensaje no paso por aquí.\n";
                }

                for (int i = 0; i < anchoMensaje - 1; i++)
                {
                    _pingMensaje += "-";
                }

                _antenaDestinoPing = _antenaOrigenPing;
            }
        }
    }