From 1484ebd8d410e1632f19e908941321230399c457 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=2ESchr=C3=B6der?= Date: Wed, 12 Mar 2025 01:24:00 +0100 Subject: [PATCH] added extensive Logs for Debugging and fixed some Errors --- src/modules/FishEyeStateRoutingModule.cpp | 56 ++++++++++++++++++++++- src/modules/NeighborInfoModule.cpp | 9 +++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/src/modules/FishEyeStateRoutingModule.cpp b/src/modules/FishEyeStateRoutingModule.cpp index 17ff5e420..a84d71a87 100644 --- a/src/modules/FishEyeStateRoutingModule.cpp +++ b/src/modules/FishEyeStateRoutingModule.cpp @@ -17,19 +17,26 @@ FishEyeStateRoutingModule::FishEyeStateRoutingModule() : ProtobufModule("fishEyeStateRouting", meshtastic_PortNum_FISHEYESTATEROUTING_APP, &meshtastic_FishEyeStateRouting_msg), concurrency::OSThread("FishEyeStateRoutingModule") { + LOG_DEBUG("start FSR"); + std::fflush(NULL); if(moduleConfig.fish_eye_state_routing.enabled && config.network.routingAlgorithm == meshtastic_Config_RoutingConfig_FishEyeState && moduleConfig.has_neighbor_info == true && moduleConfig.neighbor_info.enabled == true){ setIntervalFromNow(Default::getConfiguredOrDefaultMs(moduleConfig.neighbor_info.update_interval, default_telemetry_broadcast_interval_secs)); }else{ LOG_DEBUG("FishEyeStateRouting Module is disabled"); + std::fflush(NULL); disable(); } + LOG_DEBUG("End FSR"); + std::fflush(NULL); } /* * gets called from the NeighborInfo-Module if a new NeighborInfo Package arrives */ bool FishEyeStateRoutingModule::addNeighborInfo(meshtastic_NeighborInfo Ninfo){ + LOG_DEBUG("FSR: addNeighborInfoStart"); + std::fflush(NULL); auto it = LSPDB.find(Ninfo.node_id); if(it != LSPDB.end()){ //Node already in LSPDB @@ -52,6 +59,8 @@ bool FishEyeStateRoutingModule::addNeighborInfo(meshtastic_NeighborInfo Ninfo){ if(diff && moduleConfig.fish_eye_state_routing.enabled){ calcNextHop(); + LOG_DEBUG("FSR: addNeighborInfoEnd"); + std::fflush(NULL); return 1; } } @@ -63,8 +72,12 @@ bool FishEyeStateRoutingModule::addNeighborInfo(meshtastic_NeighborInfo Ninfo){ if(moduleConfig.fish_eye_state_routing.enabled){ calcNextHop(); } + LOG_DEBUG("FSR: addNeighborInfoEnd"); + std::fflush(NULL); return 1; } + LOG_DEBUG("FSR: addNeighborInfoEnd"); + std::fflush(NULL); return 0; } @@ -72,6 +85,9 @@ bool FishEyeStateRoutingModule::addNeighborInfo(meshtastic_NeighborInfo Ninfo){ * convert a meshtastic_NeighborInfo Struct into an LSPDBEntry Struct */ void FishEyeStateRoutingModule::NinfoToLSPDBEntry(meshtastic_NeighborInfo *Ninfo, LSPDBEntry *fsr){ + LOG_DEBUG("FSR: NinfoToLSPDBEntryStart"); + std::fflush(NULL); + fsr->LSP.node_id = Ninfo->node_id; fsr->LSP.traveledHops = 1; fsr->LSP.neighbors_count = Ninfo->neighbors_count; @@ -81,6 +97,9 @@ void FishEyeStateRoutingModule::NinfoToLSPDBEntry(meshtastic_NeighborInfo *Ninfo fsr->LSP.creation = Ninfo->creation; fsr->timeout = (uint32_t) (getTime() + moduleConfig.neighbor_info.update_interval * std::pow(fsr->LSP.traveledHops, alpha)); fsr->forwarded = false; + LOG_DEBUG("FSR: NinfoToLSPDBEntryEnd"); + std::fflush(NULL); + } /* @@ -88,6 +107,8 @@ void FishEyeStateRoutingModule::NinfoToLSPDBEntry(meshtastic_NeighborInfo *Ninfo * Criteria: Neighbor cout, Node ID, neighbors list (only by ID) */ bool FishEyeStateRoutingModule::isequal(const meshtastic_FishEyeStateRouting &s1, const meshtastic_FishEyeStateRouting &s2){ + LOG_DEBUG("FSR: isequalStart"); + std::fflush(NULL); if((s1.neighbors_count == s2.neighbors_count) && (s1.node_id == s2.node_id)){ bool diff = false; for(int i = 0; i < s1.neighbors_count; i++){ @@ -96,8 +117,12 @@ bool FishEyeStateRoutingModule::isequal(const meshtastic_FishEyeStateRouting &s1 break; } } + LOG_DEBUG("FSR: isequalEnd"); + std::fflush(NULL); return !diff; } + LOG_DEBUG("FSR: isequalEnd"); + std::fflush(NULL); return false; } @@ -106,11 +131,20 @@ bool FishEyeStateRoutingModule::isequal(const meshtastic_FishEyeStateRouting &s1 * returns next-Hop for a Message to a given NodeID, if Node is unknwon BroadcastID is returned */ uint32_t FishEyeStateRoutingModule::getNextHopForID(uint32_t dest){ - if (dest == nodeDB->getNodeNum()){return dest;} + LOG_DEBUG("FSR: getNextHopForIDStart"); + std::fflush(NULL); + if (dest == nodeDB->getNodeNum()){ + LOG_DEBUG("FSR: getNextHopForIDEnd"); + std::fflush(NULL); + return dest;} auto it = NextHopTable.find(dest); if(it == NextHopTable.end()){ + LOG_DEBUG("FSR: getNextHopForIDEnd"); + std::fflush(NULL); return NODENUM_BROADCAST; }else{ + LOG_DEBUG("FSR: getNextHopForIDEnd"); + std::fflush(NULL); return it->second; } } @@ -120,6 +154,8 @@ uint32_t FishEyeStateRoutingModule::getNextHopForID(uint32_t dest){ */ bool FishEyeStateRoutingModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, meshtastic_FishEyeStateRouting *lsp) { + LOG_DEBUG("FSR: handleReceivedStart"); + std::fflush(NULL); auto it = LSPDB.find(lsp->node_id); if(it != LSPDB.end()){ //Node already in LSPDB if(it->second.LSP.creation < lsp->creation){ @@ -146,6 +182,8 @@ bool FishEyeStateRoutingModule::handleReceivedProtobuf(const meshtastic_MeshPack LSPDB.insert(std::make_pair(entry.LSP.node_id,entry)); if(moduleConfig.fish_eye_state_routing.enabled){calcNextHop();} } + LOG_DEBUG("FSR: handleReceivedEnd"); + std::fflush(NULL); return true; } @@ -153,6 +191,8 @@ bool FishEyeStateRoutingModule::handleReceivedProtobuf(const meshtastic_MeshPack * broadcast all Packages, that weren't broadcastet and whose timeout is expired */ int32_t FishEyeStateRoutingModule::runOnce(){ + LOG_DEBUG("FSR: runOnceStart"); + std::fflush(NULL); auto it = LSPDB.begin(); uint32_t min = UINT32_MAX; while (it != LSPDB.end()) //iterate over every Entry @@ -172,10 +212,14 @@ int32_t FishEyeStateRoutingModule::runOnce(){ ++it; } + LOG_DEBUG("FSR: runOnceEnd"); + std::fflush(NULL); return min + 1; } bool FishEyeStateRoutingModule::setOwnNeighborhood(meshtastic_NeighborInfo Ninfo){ + LOG_DEBUG("FSR: setOwnNeighborhoodStart"); + std::fflush(NULL); bool diff = false; for(int i = 0; i n){ + LOG_DEBUG("FSR: setOwnNeighborhood2Start"); + std::fflush(NULL); bool diff = false; for(int i = 0; isetOwnNeighborhood(*neighborInfo); + LOG_DEBUG("FSR: OUT"); } return neighborInfo->neighbors_count; } @@ -149,8 +151,13 @@ bool NeighborInfoModule::handleReceivedProtobuf(const meshtastic_MeshPacket &mp, // If the hopLimit is the same as hopStart, then it is a neighbor getOrCreateNeighbor(mp.from, mp.from, 0, mp.rx_snr); // Set the broadcast interval to 0, as we don't know it } - if(moduleConfig.has_fish_eye_state_routing && moduleConfig.fish_eye_state_routing.enabled && (config.network.routingAlgorithm == meshtastic_Config_RoutingConfig_FishEyeState)){ + if(np && moduleConfig.has_fish_eye_state_routing && moduleConfig.fish_eye_state_routing.enabled && (config.network.routingAlgorithm == meshtastic_Config_RoutingConfig_FishEyeState)){ + //meshtastic_NeighborInfo help = *np; + LOG_DEBUG("FSR: go IN"); + std::fflush(NULL); fishEyeStateRoutingModule->addNeighborInfo(*np); + LOG_DEBUG("FSR: return"); + std::fflush(NULL); } // Allow others to handle this packet return false;