Как получить SIgnal Strength (RSSI) для omnet ++ из inet Radio Model? - PullRequest
1 голос
/ 02 апреля 2019

Я работаю над протоколом маршрутизации на omnet ++, и мне нужно получить силу соединения или RSSI для целей принятия решений. Как получить уровень сигнала беспроводного соединения при симуляции omnet ++ между узлами? Я просмотрел несколько описаний моделей радио, но не смог найти какой-либо четкий способ просто определить силу соединения. Самым близким, что я получил, было то, что радиомодель ApskScalarRadio имел minSNIR.

1 Ответ

0 голосов
/ 23 мая 2019

Вот реализация метода «computeIsReceptionPossible», который я использовал для записи мощности сигнала в производном классе с именем «ApskScalarReceiverNotifier», который расширяет «ApskScalarReceiver». Возможно, это поможет вам в этом направлении.

    bool ApskScalarReceiverNotifier::computeIsReceptionPossible(const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part) const
{
    auto apksTransmission = dynamic_cast<const ApskScalarTransmission *>(reception->getTransmission());

    auto castreception = dynamic_cast<const ScalarReception *>(reception);
    auto strength = castreception->getPower();

    cOutVector powerVector;
    powerVector.setName("powerVector");
    powerVector.record(static_cast<double>(strength.get()));

    return apksTransmission && FlatReceiverBase::computeIsReceptionPossible(listening, reception, part);

}

Я не профессионал в написании C ++, однако этот подход отлично сработал для сбора статистики.

...