This is a Node-RED based wireless experimentation framework used in the eWINE project. It lists different Node-RED modules and experimentation flows that are used to solve wireless network problems.
The Node-RED modules built are used for intelligent wireless experimentation and they are categorized into planning, reasoning and miscellaneous nodes
exhaustive-search: plans an experiment at each and every parameter settings
file-search: plans an experiment at selective parameter settings given by a file
LA: experiment planning using Locating Array (LA) Design
LHD: experiment planning using Latin Hypercube Design (LHD)
random-search: random experiment planning from the parameter design space
analysis: statistical analysis reasoning block
BFS-analysis: Breadth-First Search (BFS) analysis block
dummy: dummy reasoning block
model-creation: builds an accurate surrogate model of a black box system using FLOLA-Voronoi sampling strategy
optimization: optimizes a black box system using surrogate models and Probability of Improvement (PoI) sampling strategy
Cooja: starts a cooja network simulator from contiki
js2xml: renders json string into xml format
MATLABd: creates a MATLAB daemon program
Mfile: Writes/Reads multiple messages to/from multiple files
split_WI: Split a message into multiple messages and send them with interval.
tcpClient: sends TCP request messages to a server
UPI_exec: communicates to a WISHFUL enabled controller using Universal Programming Interface (UPI)
All Node-RED flows that are described here follow similar experimentation flow. There are three basic parts which are used for i) experiment setup and initialization ii) intelligent experimentation and iii) experiment action. Figure 1 shows the detail.
Figure 1. Node-RED experimentation flow
i) The first part is where the experiment is setup and default parameters are initialized. Update the "Experiment Setup" function node to configure the experiment (i.e. modify sink_ID, source_ID and disturber_ID variables). You can also tweak ["Application", "Radio", "Custom"] "parameters" function nodes, to change the default network configuration before experiment starts.
ii) After the experiment is setup and initialized, the wireless network will be in a default initial state and the experiment can proceed. The experiment is defined inside the "PUT" function node, which holds all the parameters under test. Next, the planner designs the experiment using the configuration space defined inside the "PUT" node. Each designed experiment is executed by the "PUT Exec" node, which is translated as a WHiSHFUL UPI call and a proper configuration on the devices under test. Afterwards, experiment results are collected by using the "Measurement" subflow. Measurement collection is translated as (a) reseting measurement results, (b) waiting for measurements to arrive and (c) collecting measurement results. Finally, the "Reasoning" block analyzes the result and either continues or stops the experiment execution.
iii) After experiment is finished, a final action can be performed, as simple as email notification or as complex as performance score calculation.
flows_WSN: A WSN demonstrator flow
flows_PL: A Path Loss calculator flow
flows_Wi-Fi_conf_OPT: Wi-Fi conference optimization flow
flows_DYN: A dynamic WSN optimization flow
flows_sensys2017: A WSN demonstrator flow used in sensys 2017 demo/poster session
flows_CNERT2018: A WSN demonstrator flow used in CNERT 2018 demo/poster session