diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-05-08 17:10:06 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-05-08 17:10:06 +0200 |
| commit | f9ce6e80c60cf74d5fabf33cb423cd2e961cdeb4 (patch) | |
| tree | 59c66c81bbb8f203a5833cdedd5250aca8cd297a /src/scenarios.cc | |
| parent | 8b7b9c9e0a3f0a2f2c5ff4d516a640002b5f1891 (diff) | |
Setup experimentations
Diffstat (limited to 'src/scenarios.cc')
| -rw-r--r-- | src/scenarios.cc | 74 |
1 files changed, 44 insertions, 30 deletions
diff --git a/src/scenarios.cc b/src/scenarios.cc index 7f6185f..c2d1f5f 100644 --- a/src/scenarios.cc +++ b/src/scenarios.cc @@ -1,6 +1,8 @@ +#include <cstdlib> +#include <cstring> #include <rapidjson/document.h> #include <rapidjson/filewritestream.h> -#include <rapidjson/writer.h> +#include <rapidjson/prettywriter.h> #include <cstdio> #include <iostream> @@ -8,56 +10,68 @@ #include <sstream> -#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] << + " <seed> <simtime> <maxstartupdelay> <wakeupevery> <wakeupfor> <n_nodes>" << + " <extended> <hint> <poff> <pon> <prx> <ptx> <datasize> <simkey>" << + 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<N_NODE;i++){ + for(int i=0;i<n_nodes;i++){ Value node(kObjectType); node.SetObject(); - node.AddMember("use_hint",USE_HINT,d.GetAllocator()); - node.AddMember("power_off",POWER_OFF,d.GetAllocator()); - node.AddMember("power_on",POWER_ON,d.GetAllocator()); - node.AddMember("power_rx",POWER_RX,d.GetAllocator()); - node.AddMember("power_tx",POWER_TX,d.GetAllocator()); + node.AddMember("use_hint",hint,d.GetAllocator()); + node.AddMember("power_off",poff,d.GetAllocator()); + node.AddMember("power_on",pon,d.GetAllocator()); + node.AddMember("power_rx",prx,d.GetAllocator()); + node.AddMember("power_tx",ptx,d.GetAllocator()); node.AddMember("is_sender",i==0,d.GetAllocator()); - node.AddMember("data_size",DATA_SIZE,d.GetAllocator()); + node.AddMember("data_size",datasize,d.GetAllocator()); // Setup ts and durations Value ts(kArrayType); Value duration(kArrayType); - for(unsigned int i=(RAND(0,MAX_STARTUP_DELAY));(i+WAKE_UP_FOR)<SIMULATION_DURATION;i+=WAKE_UP_EVERY){ + for(unsigned int i=maxstartupdelay;(i+wakeupfor)<simtime;i+=wakeupevery){ ts.PushBack(Value().SetDouble(i),d.GetAllocator()); - duration.PushBack(Value().SetDouble(WAKE_UP_FOR),d.GetAllocator()); + duration.PushBack(Value().SetDouble(wakeupfor),d.GetAllocator()); } node.AddMember("wake_ts",ts,d.GetAllocator()); node.AddMember("wake_duration",duration,d.GetAllocator()); @@ -74,7 +88,7 @@ int main(int argc, char **argv){ // Write to stdout StringBuffer buffer; - Writer<StringBuffer> writer(buffer); + PrettyWriter<StringBuffer> writer(buffer); d.Accept(writer); cout << buffer.GetString(); |
