2016-09-22 5 views
0

Tcp/Ip 지원을 받으려면 inet 3.4.0과 veins 4.4를 연결하려고합니다. 나는 그 지시 사항 (Veins - INET compatibility) 이상을 따라 왔지만 시뮬레이션을 실행하는 동안이 오류가 있습니다. TraCIMobility 기능을 잘 모릅니다.omnet ++/veins : Inet 및 정맥 연결 : TraCIScenarioManagerLaunchd의 TraCIMobility 오류

<!> Error in module (Veins::TraCIScenarioManagerLaunchd) simple_junction_noTls_ipv4.manager (id=6) at event #23, t=0.2: ASSERT: condition lastUpdate != simTime() false in function changePosition, veins/modules/mobility/traci/TraCIMobility.cc line 192.

여기 내 차 모듈입니다 :

import inet.node.inet.AdhocHost; 
import org.car2x.veins.base.modules.*; 
import org.car2x.veins.modules.nic.Nic80211p; 
import org.car2x.veins.base.modules.IMobility; 

module Car extends AdhocHost 
{ 
    parameters: 
    //string applType; //type of the application layer 
    int numWaveRadios = default(1);   
    string nicType = default("Nic80211p"); // type of network interface card 
    string veinsmobilityType; //type of the mobility module 
    string imobilityType; //type of the mobility module 
    @display("bgl=2"); 
gates: 
    input veinsRadioIn[numWaveRadios] @directIn; // gate for sendDirect 

submodules: 
    nic[numWaveRadios]: <nicType> like org.car2x.veins.modules.nic.INic80211p { 
     parameters: 
      @display("p=661,287"); 
    } 

    veinsmobility: <veinsmobilityType> like org.car2x.veins.base.modules.IMobility { 
     parameters: 
      @display("p=163,242;i=block/cogwheel"); 
    } 
    // optional mobility module. Required only if ieee80211p wireless cards are present 
    imobility: <imobilityType> like org.car2x.veins.base.modules.IMobility if (imobilityType != ""){ 
     parameters: 
      @display("p=53,200"); 
    } 
connections: 
    for i=0..sizeof(veinsRadioIn)-1 { 
     veinsRadioIn[i] --> { @display("m=s"); } --> nic[i].radioIn; 
     nic[i].upperLayerOut --> networkLayer.ifIn++; 
     nic[i].upperLayerIn <-- networkLayer.ifOut++; 
    } 

} 

여기 내 설정 파일 omnetpp.ini의 일부입니다

########################################################### 
##      Mobility       # 
########################################################### 
*.node[*].veinsmobilityType ="org.car2x.veins.modules.mobility.traci.TraCIMobility" 
*.node[*].imobilityType = "TraCIMobility" 
*.node[*].imobilityType.debug = true 
*.node[*].veinsmobilityType.debug = true 
*.node[*].veinsmobility.x = 0 
*.node[*].veinsmobility.y = 0 
*.node[*].veinsmobility.z = 1.895 
*.node[*].imobility.x = 0 
*.node[*].imobility.y = 0 
*.node[*].imobility.z = 1.895 

이 도움을 주셔서 감사합니다! 내가 주장 댓글을 달았습니다

답변

0

OK 감사합니다,

// 우리가 한 번 단계를 우리가 효과적으로 두 번 호출되는 INET와

//ASSERT(lastUpdate != simTime()); 

에 두 번 호출하지 않을 여기에 하나 하나 확인 TraCIScenarioManagerInet.cc에서, 따라서 나는이 라인이 지금 실행

을 언급 ...하지만 한 번 단계에서 두 번 호출

0

VEI Github의 ns 저장소에는 이제 노드의 이동성을 위해 Veins를 사용하는 INET Framework (INET 3.4.0) 시뮬레이션을 실행하는 샘플 하위 프로젝트 (veins_inet)가 포함되어 있습니다.

당신은 필요한 코드를 볼 수있다 (그리고, Browse Files 클릭 한 후, 당신은 전체 프로젝트의 .ZIP 아카이브를 다운로드 할 수 있습니다)에 https://github.com/sommer/veins/commit/90d4586e

+0

좋은 소식 감사합니다 :) – cnvp