2016-09-22 3 views
0

J'essaye de connecter l'inet 3.4.0 et les veines 4.4 pour obtenir la prise en charge de Tcp/Ip. J'ai suivi ces instructions (Veins - INET compatibility) et même plus, mais j'ai cette erreur en essayant d'exécuter une simulation: je ne suis pas sûr de comprendre la fonction TraCIMobility.omnet ++/veines: connexion inet et veines: erreur TraCIMobility dans TraCIScenarioManagerLaunchd

<!> 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.

Voici mon module de voiture:

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++; 
    } 

} 

et voici une partie de mon dossier config 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 

Merci pour l'aide! Cordialement,

Répondre

0

OK J'ai commenté l'affirmation

// nous assurer que nous ne sommes pas appelés deux fois dans un pas de temps

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

avec INET nous sommes effectivement appelés deux fois, un ici et un de TraCIScenarioManagerInet.cc, d'où je commente cette ligne

Il fonctionne maintenant ... mais appelé deux fois en une seule fois étape

0

Le Vei Le référentiel ns sur Github inclut désormais un exemple de sous-projet (veins_inet) qui exécute une simulation INET Framework (INET 3.4.0) en utilisant Veins pour la mobilité des nœuds.

Vous pouvez voir le code nécessaire (et, après avoir cliqué sur le Browse Files, vous pouvez télécharger une archive .zip du projet complet) sur https://github.com/sommer/veins/commit/90d4586e

+0

bonnes nouvelles merci :) – cnvp