2013-03-29 1 views
2
void AODV::rt_resolve(Packet *p) { 
    struct hdr_cmn *ch = HDR_CMN(p); 
    struct hdr_ip *ih = HDR_IP(p); 
    aodv_rt_entry *rt; 
    ch->xmit_failure_ = aodv_rt_failed_callback; 
    ch->xmit_failure_data_ = (void*) this; 
    rt = rtable.rt_lookup(ih->daddr()); 

    if(rt == 0) { 
     rt = rtable.rt_add(ih->daddr()); 
    } 

    if(rt->rt_flags == RTF_UP) { 
     assert(rt->rt_hops != INFINITY2); 
    #ifdef PREDICTION 
     double breakTime = 2000.0; 
     if (ch->num_forwards() != 0 && ch->next_hop_ == index){ 
     Node *currentNode = Node::get_node_by_address(index); 
     breakTime = currentNode->getTime(ch->prev_hop_); 

    if (breakTime < 2000.0 && breakTime > CURRENT_TIME 
     && (breakTime - CURRENT_TIME < PREDICTION_TIME_FOR_UNICAST) 
     && (rt->rt_prevnode_warning == 0)){    
     //printf("\nPREDICTION:: at %.9f on node %d prev node %d , dst %d, will break at %.9f\n", CURRENT_TIME, index, ch->prev_hop_, ih->daddr(), breakTime); 
     sendLPW(ch->prev_hop_, breakTime); 
     rt->rt_prevnode_warning ++; 
    } 
} 
#endif 
forward(rt, p, NO_DELAY); 
} 

난 다음 무엇입니까 오류MAODV은 : 디렉토리에라는 이름의 멤버 MAODV의 위의 코드에서

In member function ‘void AODV::rt_resolve(Packet*)’: 
aodv/aodv.cc:569:34: error: ‘class Node’ has no member named ‘getTime’ 
+1

클래스'Node'에는 'getTime' 멤버가 없습니다. 'Node'의 정의를 보여주십시오. –

+0

이것은 MAODV 코드의 일부이며 aodv.cc의 일부이며 getTime은이 특정 코드 블록에서 사용됩니다. 다른 헤더 파일에는 포함되어 있지 않습니다. – user2214138

+0

빌드 환경이 건강하지 않은 것 같습니다. [이 헤더] (http://read.pudn.com/downloads182/sourcecode/comm/849441/maodv-code/node.h__.htm)에서 클래스'Node'는 올바른 기능을 가지고 있습니다. –

답변

0

복사 node.h이 없습니다

NS-allinone-2.35/NS-2.35/common

기능은 MAODV 코드의 "node.h"에 정의되었지만 단순 "node.h"에는 정의되어 있지 않으므로 에 이미있다.