Closed ggarciabas closed 5 years ago
WifiPhy:EndReceive(0x555555819620, 0x555555e2dc80, 0x555555c9d850) WifiPhyStateHelper:SwitchFromRxEndOk(0x555555814e60, 0x555555e2dc80, 167.355, mode: HtMcs0 txpwrlvl: 0 preamble: 2 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0) WifiPhyStateHelper:NotifyRxEndOk(0x555555814e60) WifiPhyStateHelper:DoSwitchFromRx(0x555555814e60) WifiPhy:EndReceive(0x5555558141b0, 0x555555e942f0, 0x555555ee9610) WifiPhyStateHelper:SwitchFromRxEndOk(0x55555580f9f0, 0x555555e942f0, 138.568, mode: HtMcs0 txpwrlvl: 0 preamble: 2 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0) WifiPhyStateHelper:NotifyRxEndOk(0x55555580f9f0) WifiPhyStateHelper:DoSwitchFromRx(0x55555580f9f0) WifiPhy:EndReceive(0x555555823ed0, 0x555555e37a40, 0x555555f46130) WifiPhyStateHelper:SwitchFromRxEndOk(0x55555581f710, 0x555555e37a40, 112.051, mode: HtMcs0 txpwrlvl: 0 preamble: 2 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0) WifiPhyStateHelper:NotifyRxEndOk(0x55555581f710) WifiPhyStateHelper:DoSwitchFromRx(0x55555581f710) WifiPhy:EndReceive(0x5555558f38d0, 0x555555ebb240, 0x555555fa0410) WifiPhyStateHelper:SwitchFromRxEndOk(0x555555a7abd0, 0x555555ebb240, 78.7014, mode: HtMcs0 txpwrlvl: 0 preamble: 2 channel width: 20 GI: 800 NTx: 1 Nss: 1 Ness: 0 MPDU aggregation: 0 STBC: 0) WifiPhyStateHelper:NotifyRxEndOk(0x555555a7abd0) WifiRadioEnergyModel:Energy is depleted! -- calling callback @24.868 WifiPhy:SetOffMode(0x5555558f38d0) Estado atual: RX WifiPhyStateHelper:SwitchToOff(0x555555a7abd0) SwitchToOff 3 @24.868 WifiPhyStateHelper:NotifyOff(0x555555a7abd0) ---->>> EnergyDepletionCallback 115 @24.868 WifiPhyStateHelper:DoSwitchFromRx(0x555555a7abd0) assert failed. cond="IsStateRx ()", file=../src/wifi/model/wifi-phy-state-helper.cc, line=491 terminate called without an active exception
Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: Arquivo ou diretório inexistente. (gdb) bt
at ../src/wifi/model/wifi-phy-state-helper.cc:491
packet=..., snr=78.701365618204903, txVector=...)
at ../src/wifi/model/wifi-phy-state-helper.cc:466
preamble=ns3::WIFI_PREAMBLE_HT_MF, mpdutype=ns3::NORMAL_MPDU, event=...)
at ../src/wifi/model/wifi-phy.cc:2573
at ./ns3/make-event.h:505
at ../src/core/model/event-impl.cc:51
at ../src/core/model/default-simulator-impl.cc:149
at ../src/core/model/default-simulator-impl.cc:202
at ../scratch/flynetwork/uav-network.cc:328
(gdb)
Programando enRxEvent! @24.8676 Programando enRxEvent! @24.8676 Programando enRxEvent! @24.8676 Programando enRxEvent! @24.8676 3 @24.8676 3 @24.8676 3 @24.8676 3 @24.8676 3 @24.868 3 @24.868 3 @24.868 3 @24.868 3 @24.868 3 @24.868 3 @24.868 WifiRadioEnergyModel:Energy is depleted! -- calling callback @24.868 Estado atual: RX SwitchToOff 3 @24.868 ---->>> EnergyDepletionCallback 115 @24.868 6 @24.868 -- foi trocado para OFF no meio da chamada! Estranho isto pois não é um evento programado e sim uma chamada de funcao direta! Mas foram adicionadas as seguintes linhas para evitar este problema. assert failed. cond="IsStateRx ()", file=../src/wifi/model/wifi-phy-state-helper.cc, line=492 terminate called without an active exception
Program received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 50 ../sysdeps/unix/sysv/linux/raise.c: Arquivo ou diretório inexistente. (gdb) bt
at ../src/wifi/model/wifi-phy-state-helper.cc:492
packet=..., snr=78.701365618204903, txVector=...)
at ../src/wifi/model/wifi-phy-state-helper.cc:466
preamble=ns3::WIFI_PREAMBLE_HT_MF, mpdutype=ns3::NORMAL_MPDU, event=...)
at ../src/wifi/model/wifi-phy.cc:2573
at ./ns3/make-event.h:505
at ../src/core/model/event-impl.cc:51
at ../src/core/model/default-simulator-impl.cc:149
at ../src/core/model/default-simulator-impl.cc:202
at ../scratch/flynetwork/uav-network.cc:328
(gdb)
void WifiPhyStateHelper::DoSwitchFromRx (void) { NS_LOG_FUNCTION (this); // std::cout << GetState() << " @" << Simulator::Now().GetSeconds() << std::endl; if (IsStateOff()) { // ggarciabas, problema ao desligar enquanto a função é chamada! Estranho dar este problema, mas espero resolver assim, pois o estado foi alterado para 6, mas foi interferida a sequencia de chamada de funcoes dentro do método SwitchromRxEndOk. return; } NS_ASSERT (IsStateRx ()); NS_ASSERT (m_rxing);
teste_1_custo_1_log.txt