From f9ce6e80c60cf74d5fabf33cb423cd2e961cdeb4 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sat, 8 May 2021 17:10:06 +0200 Subject: Setup experimentations --- src/Inputs.cc | 8 +++++- src/Inputs.hpp | 2 ++ src/scenarios.cc | 74 +++++++++++++++++++++++++++++++++----------------------- src/simulator.cc | 2 +- 4 files changed, 54 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/Inputs.cc b/src/Inputs.cc index 70f3d51..4eeff77 100644 --- a/src/Inputs.cc +++ b/src/Inputs.cc @@ -17,7 +17,9 @@ Inputs::Inputs(std::string node_name){ use_hint=d["nodes"][node_name.c_str()]["use_hint"].GetBool(); data_size=d["nodes"][node_name.c_str()]["data_size"].GetInt(); extended=d["extended"].GetBool(); - + simkey=d["simkey"].GetString(); + seed=d["seed"].GetInt(); + // Instantiate wake_ts for(auto& v:d["nodes"][node_name.c_str()]["wake_ts"].GetArray()){ wake_ts.push_back(v.GetDouble()); @@ -29,6 +31,10 @@ Inputs::Inputs(std::string node_name){ } // Identity check + if(wake_ts.size()<1){ + std::cerr << "Invalid node configuration: wake_ts.size() == 0" < +#include #include #include -#include +#include #include #include @@ -8,56 +10,68 @@ #include -#define RAND(min,max) (rand()%(max-min)+min) +#define RAND(min,max) (rand()%(max-min+1)+min) using namespace std; using namespace rapidjson; -#define N_NODE 10 -#define EXTENDED false -#define SIMULATION_DURATION 60 -#define POWER_OFF 0 -#define POWER_ON 10 -#define POWER_RX 11 -#define POWER_TX 12 -#define DATA_SIZE 50 -#define USE_HINT false -#define WAKE_UP_EVERY 10 -#define WAKE_UP_FOR 5 -#define MAX_STARTUP_DELAY 10 - -unsigned int seed = 0; - int main(int argc, char **argv){ // Setup seed - if(argc>1){ - srand( atoi(argv[1]) ); + if(argc!=15){ + cerr << "Usage: " << argv[0] << + " " << + " " << + endl; + exit(1); } + // Init parameters + int seed=atoi(argv[1]); + double simtime=stod(argv[2]); + unsigned int maxstartupdelay=atoi(argv[3]); + double wakeupevery=stod(argv[4]); + double wakeupfor=stod(argv[5]); + unsigned int n_nodes=atoi(argv[6]); + bool extended=!strcmp("true",argv[7]); + bool hint=!strcmp("true",argv[8]); + double poff=stod(argv[9]); + double pon=stod(argv[10]); + double prx=stod(argv[11]); + double ptx=stod(argv[12]); + unsigned int datasize=atoi(argv[13]); + string simkey(argv[14]); + + // Setup seed + srand(seed); + // Create document Document d; d.SetObject(); - d.AddMember("extended",EXTENDED,d.GetAllocator()); + Value simkeyValue; + simkeyValue.SetString(simkey.c_str(),simkey.size(),d.GetAllocator()); + d.AddMember("simkey",simkeyValue,d.GetAllocator()); + d.AddMember("seed",Value().SetInt(seed),d.GetAllocator()); + d.AddMember("extended",extended,d.GetAllocator()); // Create nodes Value nodes(kObjectType); - for(int i=0;i writer(buffer); + PrettyWriter writer(buffer); d.Accept(writer); cout << buffer.GetString(); diff --git a/src/simulator.cc b/src/simulator.cc index 13bc711..b34a95b 100644 --- a/src/simulator.cc +++ b/src/simulator.cc @@ -174,5 +174,5 @@ static void obs_node(std::vector args) { } // Done MODE_OFF() - XBT_INFO("Observation node %s finished [LOG2PARSE](node:%s|nWakeUp:%d|nDataRcv:%d|nSendFail:%d|nRcvFail:%d)",selfName.c_str(),selfName.c_str(),nWakeUp,nDataRcv,nSendFail,nRcvFail); + XBT_INFO("Observation node %s finished [LOG2PARSE](node:%s|nWakeUp:%d|nDataRcv:%d|nSendFail:%d|nRcvFail:%d|simkey:%s|seed:%d)",selfName.c_str(),selfName.c_str(),nWakeUp,nDataRcv,nSendFail,nRcvFail,i.simkey.c_str(),i.seed); } \ No newline at end of file -- cgit v1.2.3