Skip to content
F. Fernando Jurado-Lasso edited this page Sep 21, 2022 · 19 revisions

Welcome to the SDWSN-controller wiki!

This repository is part of the ELISE project, which is a Software-Defined Networking (SDN) based solution for Wireless Sensor Networks (WSNs). ELISE adopts Contiki-NG as its operating system for resource-constrained devices in the Internet of Things (IoT). For more information on the ELISE project please click here.

The online presence of the SDWSN controller can be found in:

Documentation

Installing

Requirements

  1. Python>= 3.10
  2. stable_baselines3
  3. pymongo
  4. plac
  5. pandas
  6. python-daemon
  7. networkx
  8. docker

Running in Cooja

Before running the examples run the following command in the cooja folder of the Contiki-NG-SDWSN repository. ant run

Cooja using "Docker for Mac"

Docker for Mac can be installed following the instructions in here.

If you want to run the controller in your computer environment but Cooja running in Docker, you need to open the serial port in the docker file, you can do this by adding -p 60001:60001 \ in your contiker alias. You also need to set the path of the SDWSN controller.

Put the following lines into ~/.profile or similar below the CNG_PATH and CTRL_PATH definition.

export CTRL_PATH=<absolute-path-to-your-sdwsn-controller>
export CNG_PATH=<absolute-path-to-your-contiki-ng>
alias contiker="docker run --privileged \
  --mount type=bind,source=$CNG_PATH,destination=/home/user/contiki-ng \
  --mount type=bind,source=$CTRL_PATH,destination=/home/user/sdwsn-controller \
  --sysctl net.ipv6.conf.all.disable_ipv6=0 \
  -e DISPLAY=docker.for.mac.host.internal:0 \
  -p 60001:60001 \
  -ti contiker/contiki-ng"

If you run into trouble opening X11 display in macOS; this has worked for me

Install package

  1. In the repository folder run python setup.py build
  2. python setup.py install

Under development

This is used when you are currently making changes in your code, so they update immediately in the package.

  1. Simply run python setup.py develop

Tutorials