diff --git a/.gitignore b/.gitignore index a0f0e5d886..34ae8c8766 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ *.pyc *.log -.idea/ +*.log.* +*.jsonl.gz +*.k7.gz +mercator.egg-info diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..65ef06f89e --- /dev/null +++ b/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) Inria +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index 9aa308a75d..2525720f14 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,30 @@ -[![Code Health](https://landscape.io/github/openwsn-berkeley/mercator/master/landscape.svg?style=flat)](https://landscape.io/github/openwsn-berkeley/mercator/master) - -_You are watching the raw data. To visualize it: https://openwsn-berkeley.github.io/mercator/._ - -## Mercator: Dense Wireless Connectivity Datasets for the IoT +# Mercator: Dense Wireless Connectivity Datasets for the IoT -**Mercator** is a collection of connectivity datasets gathered on the IoT-LAB sites. These datasets are: +**Mercator** is a collection of tools to gather connectivity traces, which are: * **dense in time**, meaning the connectivity is continuously assessed over a long period of time; it allows one to see variation of connectivity over time. * **dense in space**, meaning the connectivity is assessed over hundreds of measurements points; it allows one to see how connectivity is affected by the location of transmitter and receivers. * **dense in frequency**, meaning the connectivity is assessed for each of the 16 IEEE802.15.4 frequencies; it allows one to see how connectivity is affected by the communication frequency. -Want to learn more? [See the wiki.](https://github.com/openwsn-berkeley/mercator/wiki) +## Get Mercator +1. Make sure you have Python 3.7 or above installed (Python 2 is not supported) +1. Clone or download Mercator repository +1. Move into your local Mercator repository +1. Install Mercator: `$ pip install . -r requirements.txt` + +## How to Run +1. Edit mercator.yml as you like +1. Run `$ mercator` +1. You will have `output.jsonl.gz`, which is a raw output file +1. You can convert the raw file to a K7 file; run `$ mercator-k7conv -l grenoble output.jsonl.gz` + +## How to Develop +1. Install Mercator in "editable mode": `$ pip install -e . -r requirements.txt` +1. Edit the source code +1. Run test: `$ pytest -x` +1. Open a PR if you want :-) + +## Useful Options +* You can get a sample mercator.yml by `-C` option: `$ mercator -C iotlab` +* You can program a firmware to nodes in your OpenTestbed by `-p` option: `$ mercator -p` diff --git a/build-firmwares.sh b/build-firmwares.sh new file mode 100755 index 0000000000..bee794d811 --- /dev/null +++ b/build-firmwares.sh @@ -0,0 +1,105 @@ +#!/bin/sh + +IOTLAB_M3="iot-lab_M3" +OPENMOTE_B="openmote-b-24ghz" + +BOARDS="${IOTLAB_M3} ${OPENMOTE_B}" +TOOLCHAIN='armgcc' + +# usage +usage() { + echo "Usage: ./build-firmwares.sh OPENWSN_FW_LOCAL_REPO" + echo "" + echo " OPENWSN_FW_LOCAL_REPO: path to opewsn-fw local repository" +} +if [ $0 != "./build-firmwares.sh" ]; then + echo "ERROR: build-firmware.sh must be executed at mercator dir" + echo "" + usage + exit 1 +fi +if [ $# -ne 1 ]; then + usage + exit 1 +fi + +# identify openwsn-fw directory +OPENWSN_FW_LOCAL_REPO=$1 +if [ ! -d ${OPENWSN_FW_LOCAL_REPO} ]; then + echo "${OPENWSN_FW_LOCAL_REPO} is not found" + exit 1 +fi +echo ${OPENWSN_FW_LOCAL_REPO} | grep -E '^/' > /dev/null +if [ $? -ne 0 ]; then + # convert it to the absolute path + WORKING_DIR_PATH=`pwd` + OPENWSN_FW_LOCAL_REPO="${WORKING_DIR_PATH}/${OPENWSN_FW_LOCAL_REPO}" +fi + + +# check docker +which docker > /dev/null 2>&1 +if [ $? -eq 1 ]; then + echo "Need docker installed" + exit 1 +fi + +# check git +which git > /dev/null 2>&1 +if [ $? -eq 1 ]; then + echo "Need git installed" + exit 1 +fi + +# identify the commit hash value +COMMIT_HASH=`cd ${OPENWSN_FW_LOCAL_REPO}; \ + git rev-parse --short HEAD 2> /dev/null` +if [ $? -ne 0 ]; then + echo "Seems $1 is not an openwsn-fw git repository" + echo "Cannot build firmwares" + exit 1 +fi + +# build firmwares and copy them under 'firmware' directory +DOCKER_SCONS_CMD="docker run" +DOCKER_SCONS_CMD+=" --mount type=bind," +DOCKER_SCONS_CMD+="source=${OPENWSN_FW_LOCAL_REPO}," +DOCKER_SCONS_CMD+="destination=/home/user/openwsn-fw" +DOCKER_SCONS_CMD+=" -ti yatch/openwsn-docker scons" +TIMESTAMP=`date +%Y%m%d-%H%M%S` +BUILD_LOG_FILE="build-firmwares-${TIMESTAMP}.log" + +echo "Create ${BUILD_LOG_FILE}" +touch ${BUILD_LOG_FILE} +for board in ${BOARDS}; do + echo "Build a firmware for ${board}..." + scons_args="board=${board} toolchain=${TOOLCHAIN} oos_mercator" + ${DOCKER_SCONS_CMD} --clean ${scons_args} >> ${BUILD_LOG_FILE} + ${DOCKER_SCONS_CMD} ${scons_args} >> ${BUILD_LOG_FILE} + if [ $? -ne 0 ]; then + echo "" + echo "ERROR: Build failed for ${board}..." + echo "Check ${BUILD_LOG_FILE}" + exit 1 + fi + + echo "Copy a firmware..." + src_path=${OPENWSN_FW_LOCAL_REPO} + src_path+="/build/${board}_${TOOLCHAIN}/projects/common/03oos_mercator_prog" + dst_path="./firmwares/openwsn-${board}" + if [ ${board} = ${IOTLAB_M3} ]; then + dst_path+=".elf" + fi + if [ ${board} = ${OPENMOTE_B} ]; then + src_path+=".ihex" + dst_path+=".ihex" + fi + cp -p ${src_path} ${dst_path} +done +echo "Build logs can be found in ${BUILD_LOG_FILE}" + +# update firmwares/README.md +echo "Update the commit hash value in firmwares/README.md with ${COMMIT_HASH}" +sed -i \ + -E 's/commit hash: `[0-9a-f]\{1,\}`/commit hash: `'${COMMIT_HASH}'`/' \ + firmwares/README.md diff --git a/code/firmware/README.md b/code/firmware/README.md deleted file mode 100644 index ed1830cbe4..0000000000 --- a/code/firmware/README.md +++ /dev/null @@ -1,4 +0,0 @@ -This folder contains the pre-compiled firmware to run on the IoT-LAB motes. - -More details in [the Mercator Firmware wiki page](https://github.com/openwsn-berkeley/mercator/wiki/Mercator-Firmware). -And how to build the firmware [here](https://github.com/openwsn-berkeley/mercator/wiki/How-to-build-the-firmware). diff --git a/code/firmware/iotlab-m3.elf b/code/firmware/iotlab-m3.elf deleted file mode 100644 index 0033c21b76..0000000000 Binary files a/code/firmware/iotlab-m3.elf and /dev/null differ diff --git a/code/software/README.md b/code/software/README.md deleted file mode 100644 index 1c2bd01cf5..0000000000 --- a/code/software/README.md +++ /dev/null @@ -1,2 +0,0 @@ -This folder contains the software which runs on a computer to drive an -experiment. \ No newline at end of file diff --git a/code/software/app/README.md b/code/software/app/README.md deleted file mode 100644 index 977be51d73..0000000000 --- a/code/software/app/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder contains the applications that use the Mercator libraries. diff --git a/code/software/app/__init__.py b/code/software/app/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/code/software/app/get_eui64.py b/code/software/app/get_eui64.py deleted file mode 100644 index 5dbb5269ba..0000000000 --- a/code/software/app/get_eui64.py +++ /dev/null @@ -1,197 +0,0 @@ -#!/usr/bin/python - -#============================ adjust path ===================================== - -import os -import sys -if __name__ == '__main__': - here = sys.path[0] - sys.path.insert(0, os.path.join(here, '..', 'lib')) - -#============================ imports ========================================= - -import argparse -import threading -import json -import datetime -import logging.config -import serial -import socket - -# Mercator -import MoteHandler -import MercatorDefines as d - -# IoT-lab -import iotlabcli as iotlab -from iotlabcli import experiment - -#============================ logging ========================================= - -logging.config.fileConfig('logging.conf') - -logconsole = logging.getLogger("console") -logfile = logging.getLogger() #root logger - -#============================ body ============================================ - -FIRMWARE_PATH = "../../firmware/" -DATASET_PATH = "../../../datasets/" -METAS_PATH = "../../../metas/" - -#============================ body ============================================ - - -class MercatorRunExperiment(object): - - FREQUENCIES = [n+11 for n in range(16)] # frequencies to measure on, in IEEE notation - TXPOWER = 0 # dBm - NUMTRANS = 5 # number of transactions - TXNUMPK = 10 # number of packets per transaction - TXIFDUR = 100 # inter-frame duration, in ms - TXLENGTH = 100 # number of bytes (PHY payload) in a frame - TXFILLBYTE = 0x0a # padding byte - _BAUDRATE = 500000 - - def __init__(self, serialports, site="local"): - - # local variables - self.dataLock = threading.Lock() - self.transctr = 0 - self.motes = {} - self.isTransmitting = False - self.site = site - self.transmitterPort = "" - address_list = [] - - # connect to motes - for ser_port in serialports: - ser = None - - logfile.debug("connecting to %s", ser_port) - - try: - if site != "local": - ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - ser.connect((ser_port, 20000)) - else: - ser = serial.Serial(ser_port, self._BAUDRATE) - except Exception as err: - msg = 'could not connect to {0}, reason: {1}'.format(ser_port, err) - continue - - logfile.debug("reading %s address", ser_port) - addr = "" - if site != "local": - goOn = True - while len(addr)<23: - c = ser.recv(1) - if len(c) > 0: - if (c != '\n') and (c != '\r') and (ord(c) != 0) and (ord(c) < 103): - addr += c - elif c == '\n': - goOn = False - else: - addr = ser.readline() # remove unfinished line - addr = ser.readline().rstrip('\r\n') - - address_list.append((addr,ser_port)) - logconsole.info("{0},{1}".format(addr, ser_port)) - - address_list.sort(key=lambda tup: tup[1]) - with open("mac_list.csv",'w') as f: - for address in address_list: - f.write("{0},{1}\n".format(address[0],address[1])) - - # print all OK - raw_input('\nExperiment ended normally. Press Enter to close.') - - def _quit_callback(self): - print "quitting!" - -#=========================== helpers ========================================== - - -def get_motes(expid): - # use the file created by auth-cli command - usr, pwd = iotlab.get_user_credentials() - - # authenticate through the REST interface - api = iotlab.rest.Api(usr, pwd) - - # get experiment resources - data = experiment.get_experiment(api, expid, 'resources') - - return (map(lambda x: x["network_address"].split('.')[0], data["items"]), - data["items"][0]["network_address"].split('.')[1]) - - -def submit_experiment(testbed_name, board, firmware, duration): - """ - Reserve nodes in the given site. - The function uses the json experiment file corresponding to the site. - :param str firmware: the name of the firmware as it is in the code/firmware/ folder - :param str board: the type of board (ex: m3) - :param str testbed_name: The name of the testbed (ex: grenoble) - :param int duration: The duration of the experiment in minutes - :return: The id of the experiment - """ - - # use the file created by auth-cli command - usr, pwd = iotlab.get_user_credentials() - - # authenticate through the REST interface - api = iotlab.rest.Api(usr, pwd) - - # load the experiment - tb_file = open("{0}states.json".format(METAS_PATH)) - tb_json = json.load(tb_file) - nodes = [x for x in tb_json[testbed_name] if board in x] - firmware = FIRMWARE_PATH + firmware - profile = "mercator" - resources = [experiment.exp_resources(nodes, firmware, profile)] - - # submit experiment - logconsole.info("Submitting experiment.") - expid = experiment.submit_experiment( - api, "mercatorExp", duration, - resources)["id"] - - logconsole.info("Experiment submited with id: %u", expid) - logconsole.info("Waiting for experiment to be running.") - experiment.wait_experiment(api, expid) - - return expid - -#============================ main ============================================ - - -def main(): - - # parsing user arguments - parser = argparse.ArgumentParser() - parser.add_argument("testbed", help="The name of the current testbed") - parser.add_argument("firmware", help="The firmware to flash", type=str) - parser.add_argument("-d", "--duration", help="Duration of the experiment in munutes", type=int, default=30) - parser.add_argument("-e", "--expid", help="The experiment id", type=int, default=None) - parser.add_argument("-b", "--board", help="The type of board to use", type=str, default="m3") - args = parser.parse_args() - - if args.testbed == "local": - MercatorRunExperiment( - serialports = ['/dev/ttyUSB1'] - ) - else: - if args.expid is None: - expid = submit_experiment(args.testbed, args.board, args.firmware, args.duration) - else: - expid = args.expid - (serialports, site) = get_motes(expid) - MercatorRunExperiment( - serialports = serialports, - site = site - ) - -if __name__ == '__main__': - main() - diff --git a/code/software/app/logging.conf b/code/software/app/logging.conf deleted file mode 100644 index 24d2a9b251..0000000000 --- a/code/software/app/logging.conf +++ /dev/null @@ -1,43 +0,0 @@ -#============================ formatters ====================================== - -[formatters] -keys=file,console - -[formatter_file] -format=%(asctime)s [%(name)s:%(levelname)s] %(message)s -datefmt= - -[formatter_console] -format=%(asctime)s %(levelname)s %(message)s -datefmt=%H:%M:%S - -#============================ handlers ======================================== - -[handlers] -keys=file,console - -[handler_file] -class=handlers.RotatingFileHandler -# args: filename, open mode, max file size, backup file count -args=('mercator.log', 'a', 20000000, 5) -formatter=file - -[handler_console] -class=StreamHandler -args=() -formatter=console - -#============================ loggers ========================================= - -[loggers] -keys=root,console - -# default logger -[logger_root] -level=INFO -handlers=file - -[logger_console] -level=INFO -handlers=console -qualname=console diff --git a/code/software/app/mercatorCli.py b/code/software/app/mercatorCli.py deleted file mode 100644 index 22663d0d1f..0000000000 --- a/code/software/app/mercatorCli.py +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/python - -#============================ adjust path ===================================== - -import os -import sys -if __name__ == '__main__': - here = sys.path[0] - sys.path.insert(0, os.path.join(here, '..', 'lib')) - -#============================ imports ========================================= - -import threading - -import OpenCli -import MoteHandler -import MercatorDefines as d - -#============================ body ============================================ - - -class MercatorCli(object): - - ALL = 'all' - - def __init__(self): - - self.dataLock = threading.Lock() - self.motes = {} - - cli = OpenCli.OpenCli("Mercator CLI", self._quit_callback) - cli.register_command( - 'connect', - 'c', - 'connect to a mote', - ['serialport'], - self._cli_connect - ) - cli.register_command( - 'list', - 'l', - 'list motes', - [], - self._cli_list - ) - cli.register_command( - 'state', - 'st', - 'request state', - ['serialport'], - self._cli_state - ) - cli.register_command( - 'idle', - 'id', - 'switch radio off', - ['serialport'], - self._cli_idle - ) - cli.register_command( - 'tx', - 'tx', - 'transmit a number of packets', - ['serialport'], - self._cli_tx - ) - cli.register_command( - 'rx', - 'rx', - 'start receiving', - ['serialport'], - self._cli_rx - ) - cli.start() - - #======================== public ========================================== - - #======================== cli handlers ==================================== - - def _cli_connect(self, params): - serialport = params[0] - - if serialport in self.motes: - print 'already connected to {0}'.format(serialport) - return - - with self.dataLock: - self.motes[serialport] = MoteHandler.MoteHandler(serialport, self._cb) - if not self.motes[serialport].isActive: - del self.motes[serialport] - - def _cli_list(self): - output = [] - with self.dataLock: - output += ['connected to {0} motes:'.format(len(self.motes))] - output += ['- {0}'.format(m) for m in self.motes.keys()] - output = '\n'.join(output) - print output - - def _cli_state(self, params): - serialport = params[0] - - if serialport == self.ALL: - serialports = self.motes.keys() - else: - if serialport not in self.motes.keys()+[self.ALL]: - print 'not serialport to {0}'.format(serialport) - return - serialports = [serialport] - - with self.dataLock: - for s in serialports: - print self.motes[s].send_REQ_ST() - - def _cli_idle(self, params): - serialport = params[0] - - if serialport == self.ALL: - serialports = self.motes.keys() - else: - if serialport not in self.motes.keys()+[self.ALL]: - print 'not serialport to {0}'.format(serialport) - return - serialports = [serialport] - - with self.dataLock: - for s in serialports: - self.motes[s].send_REQ_IDLE() - - def _cli_tx(self, params): - serialport = params[0] - - if serialport not in self.motes: - print 'not serialport to {0}'.format(serialport) - return - - with self.dataLock: - self.motes[serialport].send_REQ_TX( - frequency = 0x14, - txpower = 0, - transctr = 0x0a0a, - nbpackets = 5, - txifdur = 1000, - txpksize = 100, - txfillbyte = 0x0b, - ) - - def _cli_rx(self, params): - serialport = params[0] - - if serialport == self.ALL: - serialports = self.motes.keys() - else: - if serialport not in self.motes.keys()+[self.ALL]: - print 'not serialport to {0}'.format(serialport) - return - serialports = [serialport] - - with self.dataLock: - for s in serialports: - self.motes[s].send_REQ_RX( - frequency = 0x14, - srcmac = [0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88], - transctr = 0x0a0a, - txpksize = 100, - txfillbyte = 0x0b, - ) - - #======================== private ========================================= - - def _cb(self, serialport, notif): - output = [] - output += [' - {0}'.format(serialport)] - if isinstance(notif, dict): - if 'type' in notif: - output += [' . type : {0}'.format(d.type_num2text(notif['type']))] - if 'status' in notif: - output += [' . status : {0}'.format(d.status_num2text(notif['status']))] - if 'mac' in notif: - output += [' . mac : {0}'.format(d.format_mac(notif['mac']))] - for (k, v) in notif.items(): - if k not in ['type', 'status', 'mac']: - output += [' . {0:<17}: {1}'.format(k, v)] - else: - output += [' {0}'.format(notif)] - output += [''] - output = '\n'.join(output) - print output - - def _quit_callback(self): - print "quitting!" - -#============================ main ============================================ - - -def main(): - MercatorCli() - -if __name__ == '__main__': - main() diff --git a/code/software/app/mercatorRunExperiment.py b/code/software/app/mercatorRunExperiment.py deleted file mode 100644 index 181541372a..0000000000 --- a/code/software/app/mercatorRunExperiment.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/python - -# =========================== adjust path ===================================== - -import os -import sys -if __name__ == '__main__': - here = sys.path[0] - sys.path.insert(0, os.path.join(here, '..', 'lib')) - -# =========================== imports ========================================= - -import argparse -import threading -import json -import datetime -import logging.config -import gzip -import socket - -# Mercator -import MoteHandler -import MercatorDefines as d - -# IoT-lab -import iotlabcli as iotlab -from iotlabcli import experiment, node - -# =========================== logging ========================================= - -logging.config.fileConfig('logging.conf') - -logconsole = logging.getLogger("console") -logfile = logging.getLogger() #root logger - -# =========================== constants ======================================= - -FIRMWARE_PATH = "../../firmware/" -DATASET_PATH = "./" -METAS_PATH = "../../../metas/" - -# =========================== body ============================================ - -class MercatorRunExperiment(object): - - FREQUENCIES = [n+11 for n in range(16)] # frequencies to measure on, in IEEE notation - TXIFDUR = 10 # inter-frame duration, in ms - TXFILLBYTE = 0x0a # padding byte - - def __init__(self, args, serialports, site="local"): - - # local variables - self.dataLock = threading.Lock() - self.transctr = 0 - self.motes = {} - self.isTransmitting = False - self.site = site - self.freq = self.FREQUENCIES[0] - self.transmitterPort = "" - self.nbtrans = args.nbtrans - self.nbpackets = args.nbpackets - self.txpksize = args.txpksize - self.txpower = args.txpower - self.experiment_id = args.expid - - # use the file created by auth-cli command - usr, pwd = iotlab.get_user_credentials() - - # authenticate through the REST interface - self.api = iotlab.rest.Api(usr, pwd) - - # connect to motes - for s in serialports: - logfile.debug("connected to %s", s) - self.motes[s] = MoteHandler.MoteHandler(s, self._cb, reset_cb=self._reset_cb) - if not self.motes[s].isActive: - raise Exception("Mote {0} is not responding.".format(s)) - - # get current datetime - now = datetime.datetime.now().strftime("%Y.%m.%d-%H.%M.%S") - - # open file - self.file = gzip.open( - '{0}{1}-{2}_raw.csv.gz'.format( - DATASET_PATH, - self.site, - now - ), - 'wb' - ) - - # write settings - settings = { - "interframe_duration": self.TXIFDUR, - "fill_byte": self.TXFILLBYTE, - "tx_length": self.txpksize, - "tx_count": self.nbpackets, - "transaction_count": self.nbtrans, - "node_count": len(self.motes), - "location": self.site, - "channel_count": len(self.FREQUENCIES), - "start_date": now, - "txpower": self.txpower - } - json.dump(settings, self.file) - self.file.write('\n') - - # write csv header - self.file.write('datetime,src,dst,channel,rssi,crc,expected,' + - 'transaction_id,pkctr\n') - - try: - # start transactions - for self.transctr in range(0, self.nbtrans): - logconsole.info("Current transaction: %s", self.transctr) - self._do_transaction() - except (KeyboardInterrupt, socket.error): - # print error - print('\nExperiment ended before all transactions were done.') - else: - # print all OK - print('\nExperiment ended normally.') - finally: - self.file.close() - - # ======================= public ========================================== - - # ======================= cli handlers ==================================== - - def _do_transaction(self): - - for freq in self.FREQUENCIES: - logconsole.info("Current frequency: %s", freq) - self._do_experiment_per_frequency(freq) - - def _do_experiment_per_frequency(self, freq): - - for counter, transmitterPort in enumerate(self.motes): - self._do_experiment_per_transmitter(freq, transmitterPort) - if counter % (1+len(self.motes)/4) == 0: - logconsole.info("%d/%d", counter, len(self.motes)) - - def _do_experiment_per_transmitter(self, freq, transmitter_port): - - self.transmitterPort = transmitter_port - self.freq = freq - logfile.debug('freq=%s transmitter_port=%s', freq, transmitter_port) - - # switch all motes to idle - for (sp, mh) in self.motes.items(): - logfile.debug(' switch %s to idle', sp) - mh.send_REQ_IDLE() - - # check state, assert that all are idle - for (sp, mh) in self.motes.items(): - status = mh.send_REQ_ST() - if status is None or status['status'] != d.ST_IDLE: - logfile.warn('Node %s is not in IDLE state.', mh.mac) - - # switch all motes to rx - for (sp, mh) in self.motes.items(): - logfile.debug(' switch %s to RX', sp) - mh.send_REQ_RX( - frequency = freq, - srcmac = self.motes[transmitter_port].get_mac(), - transctr = self.transctr, - txpksize = self.txpksize, - txfillbyte = self.TXFILLBYTE, - ) - - # check state, assert that all are in rx mode - for (sp, mh) in self.motes.items(): - status = mh.send_REQ_ST() - if status is None or status['status'] != d.ST_RX: - logfile.warn('Node %s is not in RX state.', mh.mac) - - # switch tx mote to tx - logfile.debug(' switch %s to TX', transmitter_port) - - with self.dataLock: - self.waitTxDone = threading.Event() - self.isTransmitting = True - - self.motes[transmitter_port].send_REQ_TX( - frequency = freq, - txpower = self.txpower, - transctr = self.transctr, - nbpackets = self.nbpackets, - txifdur = self.TXIFDUR, - txpksize = self.txpksize, - txfillbyte = self.TXFILLBYTE, - ) - - # wait to be done - maxwaittime = 3*self.nbpackets*(self.TXIFDUR/1000.0) - self.waitTxDone.wait(maxwaittime) - if self.waitTxDone.isSet(): - logfile.debug('done.') - else: - #raise SystemError('timeout when waiting for transmission - # to be done (no IND_TXDONE after {0}s)'.format(maxwaittime)) - return - - # check state, assert numnotifications is expected - for (sp, mh) in self.motes.items(): - status = mh.send_REQ_ST() - if sp == transmitter_port: - if status is None or status['status'] != d.ST_TXDONE: - logfile.warn('Node %s is not in TXDONE state.', mh.mac) - else: - if status is None or status['status'] != d.ST_RX: - logfile.warn('Node %s is not in RX state.', mh.mac) - - # ======================= private ========================================= - - def _cb(self, serialport, notif): - - if isinstance(notif, dict): - if notif['type'] == d.TYPE_RESP_ST: - print 'state {0}'.format(serialport) - elif notif['type'] == d.TYPE_IND_TXDONE: - with self.dataLock: - # assert self.isTransmitting - self.isTransmitting = False - self.waitTxDone.set() - elif notif['type'] == d.TYPE_IND_RX: - timestamp = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S.%f") - src = d.format_mac(self.motes[self.transmitterPort].get_mac()) - dst = d.format_mac(self.motes[serialport].get_mac()) - frequency = self.freq - rssi = notif['rssi'] - crc = notif['crc'] - expected = notif['expected'] - transctr = self.transctr - pkctr = notif['pkctr'] - self.file.write("{0},{1},{2},{3},{4},{5},{6},{7},{8}\n".format( - timestamp, - src, - dst, - frequency, - rssi, - crc, - expected, - transctr, - pkctr, - )) - elif notif['type'] == d.TYPE_IND_UP: - logfile.debug("Node %s restarted", - d.format_mac(self.motes[serialport].get_mac())) - - def _reset_cb(self, mote): - logfile.debug('restarting mote {0}'.format(mote.serialport)) - mote_url = ".".join([mote.serialport, self.site, "iot-lab.info"]) - node.node_command(self.api, 'reset', self.experiment_id, [mote_url]) - logfile.debug('mote {0} restarted'.format(mote.serialport)) - - @staticmethod - def _quit_callback(): - print "quitting!" - -# ========================== helpers ========================================== - - -def get_motes(expid): - # use the file created by auth-cli command - usr, pwd = iotlab.get_user_credentials() - - # authenticate through the REST interface - api = iotlab.rest.Api(usr, pwd) - - # get experiment resources - data = experiment.get_experiment(api, expid, 'resources') - - return (map(lambda x: x["network_address"].split('.')[0], data["items"]), - data["items"][0]["network_address"].split('.')[1]) - - -def submit_experiment(args): - """ - Reserve nodes in the given site. - The function uses the json experiment file corresponding to the site. - :param str firmware: the name of the firmware as it is in the code/firmware/ folder - :param str board: the type of board (ex: m3) - :param str testbed: The name of the testbed (ex: grenoble) - :param int duration: The duration of the experiment in minutes - :param int nbnodes: The number of nodes to use - :return: The id of the experiment - """ - - # use the file created by auth-cli command - usr, pwd = iotlab.get_user_credentials() - - # authenticate through the REST interface - api = iotlab.rest.Api(usr, pwd) - - # load the experiment - firmware = FIRMWARE_PATH + args.firmware - profile = "mercator" - if args.nbnodes != 0: - if args.board == "m3": - args.board = "m3:at86rf231" - nodes = experiment.AliasNodes(args.nbnodes, args.testbed, args.board) - else: - tb_file = open("{0}states.json".format(METAS_PATH)) - tb_json = json.load(tb_file) - nodes = [x for x in tb_json[args.testbed] if args.board in x] - resources = [experiment.exp_resources(nodes, firmware, profile)] - - # submit experiment - logconsole.info("Submitting experiment.") - expid = experiment.submit_experiment( - api, "mercatorExp", args.duration, - resources)["id"] - - logconsole.info("Experiment submited with id: %u", expid) - logconsole.info("Waiting for experiment to be running.") - experiment.wait_experiment(api, expid) - - return expid - -# =========================== main ============================================ - - -def main(): - - # parsing user arguments - parser = argparse.ArgumentParser() - parser.add_argument("testbed", help="The name of the current testbed") - parser.add_argument("firmware", help="The firmware to flash", type=str) - parser.add_argument("-d", "--duration", help="Duration of the experiment in minutes", type=int, default=30) - parser.add_argument("-e", "--expid", help="The experiment id", type=int, default=None) - parser.add_argument("-b", "--board", help="The type of board to use", type=str, default="m3") - parser.add_argument("-n", "--nbnodes", help="The number of nodes to use (0=all)", type=int, default=0) - parser.add_argument("-p", "--nbpackets", help="The number of packet per transaction", type=int, default=100) - parser.add_argument("-t", "--nbtrans", help="The number of transaction", type=int, default=1) - parser.add_argument("-s", "--txpksize", help="The size of each packet in bytes", type=int, default=100) - parser.add_argument("--txpower", help="The transmission power (dBm)", type=int, default=0) - args = parser.parse_args() - - if args.testbed == "local": - MercatorRunExperiment( - args = args, - serialports = ['/dev/ttyUSB1', '/dev/ttyUSB3'], - ) - else: - if args.expid is None: - expid = submit_experiment(args) - else: - expid = args.expid - (serialports, site) = get_motes(expid) - MercatorRunExperiment( - args = args, - serialports = serialports, - site = site, - ) - -if __name__ == '__main__': - main() diff --git a/code/software/lib/Hdlc.py b/code/software/lib/Hdlc.py deleted file mode 100644 index ce70deeee6..0000000000 --- a/code/software/lib/Hdlc.py +++ /dev/null @@ -1,116 +0,0 @@ -class HdlcException(Exception): - pass - - -class Hdlc(object): - - HDLC_FLAG = '\x7e' - HDLC_FLAG_ESCAPED = '\x5e' - HDLC_ESCAPE = '\x7d' - HDLC_ESCAPE_ESCAPED = '\x5d' - HDLC_CRCINIT = 0xffff - HDLC_CRCGOOD = 0xf0b8 - - FCS16TAB = ( - 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, - 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, - 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, - 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, - 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, - 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, - 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, - 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, - 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, - 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, - 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, - 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, - 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, - 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, - 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, - 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, - 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, - 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, - 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, - 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, - 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, - 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, - 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, - 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, - 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, - 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, - 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, - 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, - 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, - 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, - 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, - 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78, - ) - - #============================ public ====================================== - - def hdlcify(self, in_buf): - """ - Build an hdlc frame. - - Use 0x00 for both addr byte, and control byte. - """ - - # make copy of input - out_buf = in_buf[:] - - # calculate CRC - crc = self.HDLC_CRCINIT - for b in out_buf: - crc = self._crc_iteration(crc, b) - crc = 0xffff-crc - - # append CRC - out_buf = out_buf + chr(crc & 0xff) + chr((crc & 0xff00) >> 8) - - # stuff bytes - out_buf = out_buf.replace(self.HDLC_ESCAPE, self.HDLC_ESCAPE+self.HDLC_ESCAPE_ESCAPED) - out_buf = out_buf.replace(self.HDLC_FLAG, self.HDLC_ESCAPE+self.HDLC_FLAG_ESCAPED) - - # add flags - out_buf = self.HDLC_FLAG + out_buf + self.HDLC_FLAG - - return out_buf - - def dehdlcify(self, in_buf): - """ - Parse an hdlc frame. - - :returns: the extracted frame, or -1 if wrong checksum - """ - assert in_buf[ 0] == self.HDLC_FLAG - assert in_buf[-1] == self.HDLC_FLAG - - # make copy of input - out_buf = in_buf[:] - - # remove flags - out_buf = out_buf[1:-1] - - # unstuff - out_buf = out_buf.replace(self.HDLC_ESCAPE+self.HDLC_FLAG_ESCAPED, self.HDLC_FLAG) - out_buf = out_buf.replace(self.HDLC_ESCAPE+self.HDLC_ESCAPE_ESCAPED, self.HDLC_ESCAPE) - - if len(out_buf) < 2: - raise HdlcException('packet too short') - - # check CRC - crc = self.HDLC_CRCINIT - for b in out_buf: - crc = self._crc_iteration(crc, b) - if crc != self.HDLC_CRCGOOD: - raise HdlcException('wrong CRC') - - # remove CRC - out_buf = out_buf[:-2] # remove CRC - - return out_buf - - #============================ private ===================================== - - def _crc_iteration(self, crc, b): - return (crc >> 8) ^ self.FCS16TAB[((crc ^ (ord(b))) & 0xff)] diff --git a/code/software/lib/MercatorDefines.py b/code/software/lib/MercatorDefines.py deleted file mode 100644 index 2f9da114a8..0000000000 --- a/code/software/lib/MercatorDefines.py +++ /dev/null @@ -1,75 +0,0 @@ -#=== type - -TYPE_REQ_ST = 1 -TYPE_RESP_ST = 2 -TYPE_REQ_IDLE = 3 -TYPE_REQ_TX = 4 -TYPE_IND_TXDONE = 5 -TYPE_REQ_RX = 6 -TYPE_IND_RX = 7 -TYPE_IND_UP = 8 -TYPE_ALL = [ - TYPE_REQ_ST, - TYPE_RESP_ST, - TYPE_REQ_IDLE, - TYPE_REQ_TX, - TYPE_IND_TXDONE, - TYPE_REQ_RX, - TYPE_IND_RX, - TYPE_IND_UP -] - - -def type_num2text(num): - if num == TYPE_REQ_ST: - returnval = 'REQ_ST' - elif num == TYPE_RESP_ST: - returnval = 'RESP_ST' - elif num == TYPE_REQ_IDLE: - returnval = 'REQ_IDLE' - elif num == TYPE_REQ_TX: - returnval = 'REQ_TX' - elif num == TYPE_IND_TXDONE: - returnval = 'IND_TXDONE' - elif num == TYPE_REQ_RX: - returnval = 'REQ_RX' - elif num == TYPE_IND_RX: - returnval = 'IND_RX' - elif num == TYPE_IND_UP: - returnval = 'IND_UP' - else: - returnval = '' - return returnval - -#=== status - -ST_IDLE = 1 -ST_TX = 2 -ST_TXDONE = 3 -ST_RX = 4 -ST_ALL = [ - ST_IDLE, - ST_TX, - ST_TXDONE, - ST_RX, -] - - -def status_num2text(num): - if num == ST_IDLE: - returnval = 'IDLE' - elif num == ST_TX: - returnval = 'TX' - elif num == ST_TXDONE: - returnval = 'TXDONE' - elif num == ST_RX: - returnval = 'RX' - else: - returnval = '' - return returnval - -#=== helper - - -def format_mac(mac): - return '-'.join(['%02x' % b for b in mac]) diff --git a/code/software/lib/MoteHandler.py b/code/software/lib/MoteHandler.py deleted file mode 100644 index 78889efc88..0000000000 --- a/code/software/lib/MoteHandler.py +++ /dev/null @@ -1,337 +0,0 @@ -import copy -import threading -import struct -import time - -import serial -import socket - -import Hdlc -import MercatorDefines as d - -BAUDRATE = 500000 -TIMEOUT_RESPONSE = 3 -MAX_TIMEOUTS = 3 - -STAT_UARTNUMRXCRCOK = 'uartNumRxCrcOk' -STAT_UARTNUMRXCRCWRONG = 'uartNumRxCrcWrong' -STAT_UARTNUMTX = 'uartNumTx' - -class MoteHandler(threading.Thread): - - def __init__(self, serialport, cb=None, reset_cb=None): - - self.serialport = serialport - self.cb = cb - self.reset_cb = reset_cb - self.serialLock = threading.Lock() - self.dataLock = threading.RLock() - self.mac = None - self.hdlc = Hdlc.Hdlc() - self.busyReceiving = False - self.inputBuf = '' - self.lastRxByte = self.hdlc.HDLC_FLAG - self.goOn = True - self.waitResponse = None - self.waitResponseEvent = None - self.isActive = True - self.response = None - self._iotlab = False - self.timeouts = 0 - self._reset_stats() - - try: - if self.iotlab: - self.serial = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.serial.connect((serialport, 20000)) - else: - self.serial = serial.Serial(self.serialport, BAUDRATE) - except Exception as err: - msg = 'could not connect to {0}, reason: {1}'.format(serialport, err) - print msg - raise SystemError(msg) - - threading.Thread.__init__(self) - self.name = 'MoteHandler@{0}'.format(serialport) - self.daemon = True - - # start reception thread - self.start() - - # retrieve the state of the mote (to get MAC address) - self.send_REQ_ST() - # assert self.mac - - #======================== thread ========================================== - - def run(self): - - while self.goOn: - - if self.iotlab: - rx_byte = self.serial.recv(1) - else: - rx_byte = self.serial.read(1) - - with self.dataLock: - if ( - (not self.busyReceiving) and - self.lastRxByte == self.hdlc.HDLC_FLAG and - rx_byte != self.hdlc.HDLC_FLAG - ): - # start of frame - - self.busyReceiving = True - self.inputBuf = self.hdlc.HDLC_FLAG - self.inputBuf += rx_byte - elif ( - self.busyReceiving and - rx_byte != self.hdlc.HDLC_FLAG - ): - # middle of frame - - self.inputBuf += rx_byte - elif ( - self.busyReceiving and - rx_byte == self.hdlc.HDLC_FLAG - ): - # end of frame - - self.busyReceiving = False - self.inputBuf += rx_byte - - try: - self.inputBuf = self.hdlc.dehdlcify(self.inputBuf) - except Hdlc.HdlcException: - self.stats[STAT_UARTNUMRXCRCWRONG] += 1 - else: - self.stats[STAT_UARTNUMRXCRCOK] += 1 - self._handle_inputbuf([ord(b) for b in self.inputBuf]) - - self.lastRxByte = rx_byte - - self.serial.close() - - #======================== public ========================================== - - #=== stats - - def get_stats(self): - with self.dataLock: - return copy.deepcopy(self.stats) - - #=== requests - - def send_REQ_ST(self): - - with self.dataLock: - # assert not self.waitResponse - self.waitResponseEvent = threading.Event() - self.waitResponse = True - - self._send( - struct.pack( - '>B', - d.TYPE_REQ_ST, - ) - ) - - self.waitResponseEvent.wait(TIMEOUT_RESPONSE) - - if not self.waitResponseEvent.isSet(): - print "-----------timeout--------------" + self.serialport - self.isActive = False - self.timeouts += 1 - if self.timeouts > MAX_TIMEOUTS: - self.reset_cb(self) - self.timeouts = 0 - return - else: - self.timeouts = 0 - - with self.dataLock: - self.waitResponse = False - self.waitResponseEvent = False - return_val = copy.deepcopy(self.response) - self.response = None - - return return_val - - def send_REQ_IDLE(self): - self._send( - struct.pack( - '>B', - d.TYPE_REQ_IDLE, - ) - ) - - def send_REQ_TX(self, frequency, txpower, transctr, nbpackets, txifdur, txpksize, txfillbyte): - self._send( - struct.pack( - '>BBbHHHBB', - d.TYPE_REQ_TX, - frequency, - txpower, - transctr, - nbpackets, - txifdur, - txpksize, - txfillbyte, - ) - ) - - def send_REQ_RX(self, frequency, srcmac, transctr, txpksize, txfillbyte): - [m0, m1, m2, m3, m4, m5, m6, m7] = srcmac - self._send( - struct.pack( - '>BBBBBBBBBBHBB', - d.TYPE_REQ_RX, - frequency, - m0, m1, m2, m3, m4, m5, m6, m7, - transctr, - txpksize, - txfillbyte, - ) - ) - - def get_mac(self): - with self.dataLock: - return self.mac - - #======================== private ========================================= - - #=== stats - - def _reset_stats(self): - with self.dataLock: - self.stats = { - STAT_UARTNUMRXCRCOK : 0, - STAT_UARTNUMRXCRCWRONG : 0, - STAT_UARTNUMTX : 0, - } - - #=== serial rx - - def _handle_inputbuf(self, input_buf): - - try: - - inputtype = input_buf[0] - - if inputtype == d.TYPE_IND_TXDONE: - - # parse input - [msg_type] = \ - struct.unpack(">B", ''.join([chr(b) for b in input_buf])) - - # notify higher layer - self.cb( - serialport = self.serialport, - notif = { - 'type': msg_type, - } - ) - - elif inputtype == d.TYPE_IND_RX: - - # parse input - [msg_type, length, rssi, flags, pkctr] = \ - struct.unpack(">BBbBH", ''.join([chr(b) for b in input_buf])) - if flags & (1 << 7) != 0: - crc = 1 - else: - crc = 0 - - if flags & (1 << 6) != 0: - expected = 1 - else: - expected = 0 - - if crc == 0 or expected == 0: - pkctr = 0 - - # notify higher layer - self.cb( - serialport = self.serialport, - notif = { - 'type': msg_type, - 'length': length, - 'rssi': rssi, - 'crc': crc, - 'expected': expected, - 'pkctr': pkctr, - } - ) - - elif inputtype == d.TYPE_RESP_ST: - - # parse input - [msg_type, status, numnotifications, m1, m2, m3, m4, m5, m6, m7, m8] = \ - struct.unpack(">BBHBBBBBBBB", ''.join([chr(b) for b in input_buf])) - - # remember this mote's MAC address - with self.dataLock: - self.mac = (m1, m2, m3, m4, m5, m6, m7, m8) - - # send response as return code - with self.dataLock: - # assert self.waitResponse - self.response = { - 'type': msg_type, - 'status': status, - 'numnotifications': numnotifications, - 'mac': (m1, m2, m3, m4, m5, m6, m7, m8), - } - self.waitResponseEvent.set() - - elif inputtype == d.TYPE_IND_UP: - - # parse input - [msg_type] = \ - struct.unpack(">B", ''.join([chr(b) for b in input_buf])) - - # notify higher layer - self.cb( - serialport = self.serialport, - notif = { - 'type': msg_type, - } - ) - - else: - - raise SystemError('unknown notification type {0}'.format(input_buf[0])) - - except Exception as err: - - print err - - self.cb( - serialport = self.serialport, - notif = err, - ) - - #=== serial tx - - def _send(self, data_to_send): - with self.dataLock: - self.stats[STAT_UARTNUMTX] += 1 - with self.serialLock: - hdlc_data = self.hdlc.hdlcify(data_to_send) - - if self.iotlab: - self.serial.send(hdlc_data) - else: - self.serial.write(hdlc_data) - time.sleep(0.01) - - #=== helpers - - @property - def iotlab(self): - if self.serialport.lower().startswith('com') or self.serialport.count('tty'): - self._iotlab = False - else: - self._iotlab = True - - return self._iotlab diff --git a/code/software/lib/OpenCli.py b/code/software/lib/OpenCli.py deleted file mode 100644 index 2ffa6f64ef..0000000000 --- a/code/software/lib/OpenCli.py +++ /dev/null @@ -1,258 +0,0 @@ -#!/usr/bin/python - -import threading -import logging -import time -from datetime import timedelta - - -class NullLogHandler(logging.Handler): - def emit(self, record): - pass - - -class OpenCli(threading.Thread): - """ - \brief Thread which handles CLI commands entered by the user. - """ - - CMD_LEVEL_USER = "user" - CMD_LEVEL_SYSTEM = "system" - - def __init__(self, app_name, quit_cb): - - # slot params - self.appName = app_name - self.quit_cb = quit_cb - - # local variables - self.commandLock = threading.Lock() - self.commands = [] - self.goOn = True - self.startTime = 0 - - # logging - self.log = logging.getLogger('OpenCli') - self.log.setLevel(logging.DEBUG) - self.log.addHandler(NullLogHandler()) - - # initialize parent class - threading.Thread.__init__(self) - - # give this thread a name - self.name = 'OpenCli' - - # register system commands (user commands registers by child object) - self._register_command_internal( - self.CMD_LEVEL_SYSTEM, - 'help', - 'h', - 'print this menu', - [], - self._handle_help) - self._register_command_internal( - self.CMD_LEVEL_SYSTEM, - 'info', - 'i', - 'information about this application', - [], - self._handle_info) - self._register_command_internal( - self.CMD_LEVEL_SYSTEM, - 'quit', - 'q', - 'quit this application', - [], - self._handle_quit) - self._register_command_internal( - self.CMD_LEVEL_SYSTEM, - 'uptime', - 'ut', - 'how long this application has been running', - [], - self._handle_uptime) - - def run(self): - banner = [] - banner += [""] - banner += [" ___ _ _ _ ___ _ _ "] - banner += ["| . | ___ ___ ._ _ | | | |/ __>| \ |"] - banner += ["| | || . \/ ._>| ' || | | |\__ \| |"] - banner += ["`___'| _/\___.|_|_||__/_/ <___/|_\_|"] - banner += [" |_| openwsn.org"] - banner += [""] - banner = '\n'.join(banner) - print banner - - print '{0}\n'.format(self.appName) - - self.startTime = time.time() - - while self.goOn: - - # CLI stops here each time a user needs to call a command - params = raw_input('> ') - - # log - self.log.debug('Following command entered:'+params) - - params = params.split() - if len(params) < 1: - continue - - if len(params) == 2 and params[1] == '?': - if not self._print_usage_from_name(params[0]): - if not self._print_usage_from_alias(params[0]): - print ' unknown command or alias \''+params[0]+'\'' - continue - - # find this command - found = False - self.commandLock.acquire() - for command in self.commands: - if command['name'] == params[0] or command['alias'] == params[0]: - found = True - cmd_params = command['params'] - cmd_callback = command['callback'] - break - self.commandLock.release() - - # call its callback or print error message - if found: - if len(params[1:]) == len(cmd_params): - cmd_callback(params[1:]) - else: - if not self._print_usage_from_name(params[0]): - self._print_usage_from_alias(params[0]) - else: - print ' unknown command or alias \''+params[0]+'\'' - - #======================== public ========================================== - - def register_command(self, name, alias, description, params, callback): - - self._register_command_internal(self.CMD_LEVEL_USER, - name, - alias, - description, - params, - callback) - - #======================== private ========================================= - - def _register_command_internal(self, cmd_level, name, alias, description, params, callback): - - if self._does_command_exist(name): - raise SystemError("command {0} already exists".format(name)) - - self.commandLock.acquire() - self.commands.append({ - 'cmd_level': cmd_level, - 'name': name, - 'alias': alias, - 'description': description, - 'params': params, - 'callback': callback, - }) - self.commandLock.release() - - def _print_usage_from_name(self, commandname): - return self._print_usage(commandname, 'name') - - def _print_usage_from_alias(self, commandalias): - return self._print_usage(commandalias, 'alias') - - def _print_usage(self, name, param_type): - - usage_string = None - - self.commandLock.acquire() - for command in self.commands: - if command[param_type] == name: - usage_string = [] - usage_string += ['usage: {0}'.format(name)] - usage_string += [" <{0}>".format(p) for p in command['params']] - usage_string = ''.join(usage_string) - self.commandLock.release() - - if usage_string: - print usage_string - return True - else: - return False - - def _does_command_exist(self, cmd_name): - - return_val = False - - self.commandLock.acquire() - for cmd in self.commands: - if cmd['name'] == cmd_name: - return_val = True - self.commandLock.release() - - return return_val - - #=== command handlers (system commands only, a child object creates more) - - def _handle_help(self): - output = [] - output += ['Available commands:'] - - self.commandLock.acquire() - for command in self.commands: - output += [' - {0} ({1}): {2}'.format(command['name'], - command['alias'], - command['description'])] - self.commandLock.release() - - print '\n'.join(output) - - def _handle_info(self): - output = [] - output += ['General status of the application'] - output += [''] - output += ['current time: {0}'.format(time.ctime())] - output += [''] - output += ['{0} threads running:'.format(threading.activeCount())] - for t in threading.enumerate(): - output += ['- {0}'.format(t.getName())] - output += [''] - output += ['This is thread {0}.'.format(threading.currentThread().getName())] - - print '\n'.join(output) - - def _handle_quit(self): - - # call the quit callback - self.quit_cb() - - # kill this thread - self.goOn = False - - def _handle_uptime(self): - - up_time = timedelta(seconds=time.time()-self.startTime) - - print 'Running since {0} ({1} ago)'.format( - time.strftime("%m/%d/%Y %H:%M:%S", time.localtime(self.startTime)), - up_time) - - -############################################################################### - -if __name__ == '__main__': - - def quit_callback(): - print "quitting!" - - def echo_callback(params): - print "echo {0}!".format(params) - - cli = OpenCli("Standalone Sample App", quit_callback) - cli.register_command('echo', - 'e', - 'echoes the first param', - ['string to echo'], - echo_callback) - cli.start() diff --git a/code/software/lib/README.md b/code/software/lib/README.md deleted file mode 100644 index f348b05ecf..0000000000 --- a/code/software/lib/README.md +++ /dev/null @@ -1 +0,0 @@ -This folder contains the libraries. diff --git a/code/software/lib/__init__.py b/code/software/lib/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/firmwares/LICENSE.md b/firmwares/LICENSE.md new file mode 100644 index 0000000000..d2560ff51b --- /dev/null +++ b/firmwares/LICENSE.md @@ -0,0 +1,29 @@ +Copyright (c), Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + - Neither the name of the Regents of the University of California nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/firmwares/README.md b/firmwares/README.md new file mode 100644 index 0000000000..88f1aed17f --- /dev/null +++ b/firmwares/README.md @@ -0,0 +1,39 @@ +# Pre-built OpenWSN firmwares for Mercator + +They are distributed under OpenWSN's [LICENSE](./LICENSE.md). + +| file name | board | toolchain | project | +|----------------------------------------------------------------|------------------|-----------|--------------| +| [openwsn-iot-lab_M3.elf](openwsn-iot-lab_M3.elf) | iot-lab_M3 | armgcc | oos_mercator | +| [openwsn-openmote-b-24ghz.ihex](openwsn-openmote-b-24ghz.ihex) | openmote-b-24ghz | armgcc | oos_mercator | + + +## Source Code + +* repository: https://github.com/openwsn-berkeley/openwsn-fw +* commit hash: `4e959776` + +## How to Build + +If you have all the tools installed on your machine, you can build the +firmwares by yourself: + +``` shell +$ mkdir openwsn-fw; cd openwsn-fw +$ git clone -b develop https://github.com/openwsn-berkeley/openwsn-fw . +$ git checkout (commit_hash) +$ scons board=iot-lab_M3 toolchain=armgcc oos_mercator +$ cp -p build/iot-lab_M3_armgcc/projects/common/03oos_mercator_prog openwsn-iot-lab_M3.elf +$ scons board=openmote-b-24ghz toolchain=armgcc oos_mercator +$ cp -p build/openmote-b-24ghz_armgcc/projects/common/03oos_mercator_prog.ihex openwsn-openmote-b-24ghz.ihex +``` + +Or, if you have Docker available on your machine, you can use +`build-firmwares.sh`, which is located at the top directory: + +``` shell +$ git clone https://github.com/yatch/mercator.git +$ git clone https://github.com/openwsn-berkeley/openwsn-fw +$ cd mercator +$ ./build-firmwares.sh ../openwsn-fw +``` diff --git a/firmwares/openwsn-iot-lab_M3.elf b/firmwares/openwsn-iot-lab_M3.elf new file mode 100755 index 0000000000..6d885724ff Binary files /dev/null and b/firmwares/openwsn-iot-lab_M3.elf differ diff --git a/firmwares/openwsn-openmote-b-24ghz.ihex b/firmwares/openwsn-openmote-b-24ghz.ihex new file mode 100644 index 0000000000..c8ea9ed4c2 --- /dev/null +++ b/firmwares/openwsn-openmote-b-24ghz.ihex @@ -0,0 +1,1851 @@ +:020000040020DA +:100000009C4A0020D72E2000C12E2000CB2E20009D +:10001000D12E2000D12E2000D12E20000000000083 +:10002000000000000000000000000000D12E2000B1 +:10003000D12E200000000000D12E2000D12E200063 +:10004000D12E2000D12E2000D12E2000D12E200034 +:1000500000000000D12E2000D12E2000D12E200043 +:10006000D12E200000000000000000000000000071 +:100070000000000000000000D12E20000000000061 +:100080000000000000000000D12E2000D12E200032 +:10009000D12E2000D12E2000D12E2000D12E2000E4 +:1000A000D12E2000D12E2000D12E2000D12E2000D4 +:1000B000D12E2000D12E2000D12E2000D12E2000C4 +:1000C000D12E2000D12E2000D12E2000D12E2000B4 +:1000D000D12E200000000000000000000000000001 +:1000E0000000000000000000000000000000000010 +:1000F000D12E200000000000D12E2000D12E2000A3 +:1001000000000000000000000000000000000000EF +:1001100000000000000000000000000000000000DF +:1001200000000000000000000000000000000000CF +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000000000000000000000000000008F +:10017000000000000000000000000000000000007F +:10018000000000000000000000000000000000006F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E000000000000000000000000000000000000F +:1001F00000000000000000000000000000000000FF +:1002000000000000000000000000000000000000EE +:1002100000000000000000000000000000000000DE +:1002200000000000000000000000000000000000CE +:1002300000000000000000000000000000000000BE +:1002400000000000000000000000000000000000AE +:10025000000000000000000000000000000000009E +:10026000000000000000000000000000000000008E +:10027000D12E2000D12E2000D12E2000D12E200002 +:10028000D12E2000D12E2000D12E200080B500AF2D +:100290004FF4BD720021174806F060FA154B012299 +:1002A0005A7001F020FB00F0CBFC00F083FD002130 +:1002B000FF2000F091FD03461A460E4B1A7002F023 +:1002C00044F90D4801F012FF0C4802F011FB0C48F4 +:1002D00002F01CFB0B490C4802F080FE00F018F8FD +:1002E0000F210A4800F0EEFC00F0BCFC0023184689 +:1002F00080BD00BFB04A00200C4B0020290A20001E +:100300003B0A2000250920007D0720002907200046 +:1003100080B500AF02F07EFE02F072FE024B0022BA +:1003200083F8492000BF80BDB04A002080B500AFEF +:10033000114B93F82330002B1BD00F4BB3F85430E4 +:1003400001339AB20C4BA3F854200B4B4FF6FF72BB +:10035000DA84094B002283F82220074B002283F81D +:100360002820054B002283F829207E2002F070FE11 +:1003700000E000BF80BD00BFB04A002080B500AFE4 +:100380001E4B93F84830002B08D11C4BB3F8583063 +:1003900001339AB2194BA3F858202AE0174B93F86F +:1003A0002A30013B052B1BD801A252F823F000BFD5 +:1003B000C9032000E1032000CF032000D503200063 +:1003C000E1032000DB03200000F01AF811E000F048 +:1003D0005DF80EE000F09EF80BE000F03DF908E05B +:1003E000064BB3F85A3001339AB2044BA3F85A20A3 +:1003F00000BFFFF78DFF00BF80BD00BFB04A0020E7 +:1004000080B500AF094B93F84830012B08D0074B5B +:10041000B3F8583001339AB2044BA3F8582003E0E4 +:100420000F21034800F04EFC80BD00BFB04A002001 +:100430003504200080B582B000AF124B7B607B6832 +:1004400002221A70104B5A787B685A700E4B5B88E8 +:10045000184600F07FF903461A467B685A807B688D +:100460001A1D094B5C3319685B6811605360064BB9 +:100470000C2283F82320FFF759FF00BF0837BD4641 +:1004800080BD00BFB44A0020B04A002080B500AF54 +:10049000134B93F84830012B08D0114BB3F8583068 +:1004A00001339AB20E4BA3F8582018E00F210D48E3 +:1004B00000F008FC0A4B5B78022B05D1084B1B7837 +:1004C000184600F06DFF05E0054B5B78042B01D169 +:1004D00001F0EDFF02F07AFA014B01225A7080BD63 +:1004E000B04A0020E904200080B582B000AF074B7D +:1004F0007B607B680A221A70054B012283F8232057 +:10050000FFF714FF00BF0837BD4680BDB44A002086 +:10051000B04A002090B585B002AF3F4B93F8483009 +:100520000B2B08D03C4BB3F8583001339AB23A4BFE +:10053000A3F858206CE00F21384800F0C3FB364B7D +:100540005B78022B63D0344B02225A70324B00226C +:100550005A80334B7B60304B0022A3F8E4207B6849 +:100560005A7A2D4B83F8E6207B68B3F805309BB2AE +:10057000184600F0EFF803461A46274BA3F8E82088 +:10058000254B254A64335C321168526819605A6001 +:100590007B68B3F803309BB2184600F0DBF80346E3 +:1005A0007B807A881C4BA3F86C201B4BB3F8E4309B +:1005B000184600F0CFF803463B803A88164BA3F864 +:1005C0006E207B689B7A1946134B93F8E6300E3BFE +:1005D0001A46144806F0C2F802F0F2F97B685B781C +:1005E000184602F0C7F90C4B1C787B68B3F807304B +:1005F0009BB2184600F0AEF8034619460A4B00932A +:1006000000230022204600F04BFC00BF00E000BFAA +:100610000C37BD4690BD00BFB04A00202D0620001B +:10062000DA4A0020204B0020890B200080B582B0E0 +:1006300000AF074B7B607B680B221A70054B0122D1 +:1006400083F82320FFF772FE00BF0837BD4680BD48 +:10065000B44A0020B04A002080B582B000AF244BDD +:1006600093F848300E2B08D0214BB3F858300133A3 +:100670009AB21F4BA3F8582036E00F211D4800F016 +:1006800021FB1D4B7B607B681A7B194B83F8E620AE +:100690007B685B899BB2184600F05CF803461A46FB +:1006A000134BA3F8F4207B685A7B114B83F8EA20A4 +:1006B0007B689A1C0E4BEB331168526819605A60C4 +:1006C0000B4B00225A8001F0EBFE02F079F97B68B7 +:1006D0005B78184602F04EF902F000FA02F00EFACA +:1006E000034B04225A7000BF0837BD4680BD00BFCF +:1006F000B04A0020FD062000DA4A002080B582B012 +:1007000000AF074B7B607B680C221A70054B0122FF +:1007100083F82320FFF70AFE00BF0837BD4680BDDF +:10072000B44A0020B04A002080B582B000AF074B29 +:100730007B607B6808221A70054B012283F8232016 +:10074000FFF7F4FD00BF0837BD4680BDB44A002066 +:10075000B04A002080B483B000AF0346FB80FB8822 +:100760001B021AB2FB881B0A9BB21BB213431BB2BB +:100770009BB218460C37BD4680BC704780B582B02E +:1007800000AF01F063FE474B93F82330002B76D087 +:10079000444B93F822301A46424B13441B79FB71A9 +:1007A000404B93F82430002B0DD1FB797E2B02D0E7 +:1007B000FB797D2B07D17D2002F04AFC394B0122C9 +:1007C00083F824202BE0374BDB8CFA79114618464E +:1007D00000F0D4FA03461A46324BDA84314B93F8D0 +:1007E0002430012B07D1FB7983F02003FB712D4BC3 +:1007F000002283F824202B4B93F822300133DAB205 +:10080000284B83F82220274B93F82330013BDAB2A0 +:10081000244B83F82320FB79184602F019FC214B66 +:1008200093F82330002B36D11E4B93F82830002B41 +:1008300031D11C4BDB8CDB43BB801A4B93F822304D +:100840001946BB88DAB2174B0B441A71BB881B0AD6 +:100850009AB2144B93F822300133D1B2114A1344A7 +:100860000A461A710F4B93F823300233DAB20D4B5C +:1008700083F823200B4B012283F828200BE0094B3F +:1008800093F82930002B06D1064B012283F829204A +:100890007E2002F0DDFB01F0E0FD00BF0837BD4621 +:1008A00080BD00BFB04A002080B582B000AF0346D3 +:1008B000FB71FB797D2B04D1194B012283F84A206F +:1008C0002AE0174B93F84A30012B07D1FB7983F0CC +:1008D0002003FB71124B002283F84A20104B93F83F +:1008E00048301A460E4B1344FA7983F82A200C4BF1 +:1008F00093F848300133DAB2094B83F84820084BAB +:10090000B3F84C30FA791146184600F037FA03462E +:100910001A46034BA3F84C2000BF0837BD4680BDE4 +:10092000B04A002080B582B000AF01F08FFD02F028 +:10093000B5FB0346FB713A4B93F84E30002B19D1AF +:10094000374B93F849307E2B14D1FB797E2B11D095 +:10095000334B012283F84E20314B002283F848208C +:100960002F4B4FF6FF72A3F84C20FB791846FFF788 +:100970009BFF4AE02A4B93F84E30012B15D1FB79AF +:100980007E2B12D0FB791846FFF78EFF244B93F88D +:10099000483001331E2B38DD214B002283F84820DC +:1009A0001F4B002283F84E202FE01D4B93F84E3052 +:1009B000012B2AD1FB797E2B27D1194BB3F84C3070 +:1009C0004FF2B802934214D1154BB3F850300133B3 +:1009D0009AB2134BA3F85020114B93F84830023BC6 +:1009E000DAB20F4B83F848200F210E4800F06AF965 +:1009F00007E00B4BB3F8523001339AB2084BA3F81F +:100A00005220074B002283F84E20054AFB7982F8DA +:100A1000493001F022FD002318460837BD4680BD4D +:100A2000B04A00207D03200080B483B000AF78601E +:100A300000BF0C37BD4680BC704780B588B002AFA0 +:100A400078600123FB7501F0C1FF474B5B78042BF5 +:100A500040F085807F220021444805F07FFE444B12 +:100A60000193444B0093444B7F2244493F4802F09A +:100A70005FF83E4BFB60FB6808224149184605F0D1 +:100A80003BFE0346002B01D00023FB75364B93F849 +:100A90007521354B93F8E6309A4201D00023FB755F +:100AA000FB681B899AB2304BB3F8F4309A4201D0FC +:100AB0000023FB750C233B610FE02B4A3B69134479 +:100AC000F6331A78284B93F8EA309A4202D0002382 +:100AD000FB7509E03B6901333B61234B93F87531AA +:100AE000023B3A699A42E8DBFB7D002B31D01E4B7A +:100AF00093F87931002B2CD0224BBB60BB680722C6 +:100B00001A70194B93F87521BB685A70164B93F9FC +:100B10007721BB689A70144B93F87931DB015AB294 +:100B2000FB7D9B015BB213435BB2DAB2BB68DA7048 +:100B3000FB685B899AB2BB689A800B4B062283F8EC +:100B40002320FFF7F3FB084B5B8801339AB2064B77 +:100B50005A8001F035FF01F0C1FF01F0CFFF00BF67 +:100B60001837BD4680BD00BFB04A0020A64B00200C +:100B7000294C0020284C0020274C0020254C002028 +:100B80009B4B0020B44A002080B586B000AF0346DE +:100B9000FB710A23FB75274BB3F8E420254BB3F810 +:100BA000E8309A421DD1234B1B78184600F0F8FB21 +:100BB00001F00CFF1F4B03225A701F4B3B613B6936 +:100BC00005221A701B4B012283F82320FFF7AEFB8E +:100BD000184B5B8801339AB2164B5A8001F0F6FE2F +:100BE00025E001F009FC134B93F8E6309BB219465F +:100BF000124801F0FFFE01F039FF01F047FF01F05C +:100C000002FC0C4BB3F8E43001339AB2094BA3F861 +:100C1000E420084BB3F8E4301846FFF79BFD034689 +:100C2000FB81FB7D054A1344FA891A8000BF1837FF +:100C3000BD4680BDB04A0020B44A0020144B0020BD +:100C400080B500AF80220021044805F087FD022214 +:100C50000021034805F082FD00BF80BD2C4C002020 +:100C6000AC4C002080B582B000AF1CE004F0D3F89B +:100C7000124B9B6F7B607B689B68104A936704F004 +:100C8000BEF87B681B6898477B6800221A607B6807 +:100C900000221A717B6800229A60094B1B78013B85 +:100CA000DAB2074B1A70054B9B6F002BDED101F0B7 +:100CB00081F900F06DFE01F089F9F4E72C4C002079 +:100CC000AC4C002080B584B000AF78600B46FB7060 +:100CD00004F0A1F8254BFB6002E0FB680C33FB60DD +:100CE000FB681B68002B03D0FB68214A9342F4D9B0 +:100CF000FB681F4A934203D901F035FC00F08EFED9 +:100D0000FB687A681A60FB68FA781A71194BBB6045 +:100D100003E0BB681B680833BB60BB681B68002B23 +:100D200006D0BB681B681A79FB681B799A42F0D918 +:100D3000BB681A68FB689A60BB68FA681A600E4B59 +:100D40001B780133DAB20C4B1A700B4B1A780A4B32 +:100D50005B789A4203D9084B1A78074B5A7004F013 +:100D60004EF800BF1037BD4680BD00BF2C4C0020A0 +:100D7000984C0020A44C0020AC4C002080B483B0E0 +:100D800000AF03460A46FB8013467B71FB881B0AB3 +:100D90009AB2F9887B794B40DBB2054931F81330C0 +:100DA00053409BB218460C37BD4680BC704700BF0D +:100DB000A46A200080B500AF4FF4DA720021044825 +:100DC00005F0CCFC034802F019F800BF80BD00BF5D +:100DD000B04C00207514200080B584B000AF0346ED +:100DE0000A46FB711346BB7104F015F8FB79012B21 +:100DF00002D0FB79002B19D1FA7928491346DB0080 +:100E00009B1A9B000B4411331B7883F00103DBB268 +:100E1000002B0BD0FA7921491346DB009B1A9B006B +:100E20000B44113301221A70FB7932E0FB79FF2B5E +:100E30002CD10223FB7326E0FA7B18491346DB0012 +:100E40009B1A9B000B4411331B7883F00103DBB228 +:100E5000002B15D0FA7B11491346DB009B1A9B002F +:100E60000B44113301221A70FA7B0C491346DB0044 +:100E70009B1A9B000B441833BA791A70FB7B08E06D +:100E8000FB7B0133FB73FB7B0E2BD5D903F0B7FF44 +:100E9000FF2318461037BD4680BD00BFB04C002070 +:100EA00090B587B000AF396011461A460346FB7112 +:100EB0000B46BB7113467B710023FB7511E0FA7D75 +:100EC00091491346DB009B1A9B000B4411331B789E +:100ED000002B03D0FA7DFB799A4206D0FB7D0133CB +:100EE000FB75FB7D0E2BEAD900E000BFFB7D0F2BCD +:100EF00000F0068103F08FFFFA7983491346DB0087 +:100F00009B1A9B000B4412337A791A70BB79002B21 +:100F100002D0012B23D03FE0FA7939680B465B0100 +:100F2000194479481346DB009B1A9B00034419605F +:100F30003A6813465B011A440323A3FB0213D21A37 +:100F4000520813449B0FFA7998B26F491346DB009D +:100F50009B1A9B000B44083302461A801CE0FA7966 +:100F600069491346DB009B1A9B000B443A681A60E0 +:100F70003A680323A3FB0213D21A520813449B0FAF +:100F8000FA7998B260491346DB009B1A9B000B4428 +:100F9000083302461A8000BFFA795B491346DB002A +:100FA0009B1A9B000B4408331B88002B15D1FA7940 +:100FB00055491346DB009B1A9B000B441C6801F04B +:100FC00053FF0346FA79E1184F481346DB009B1A9A +:100FD0009B000344043319600EE001F045FF034613 +:100FE000F97903F10042013A47480B46DB005B1AEE +:100FF0009B00034404331A60FA7943491346DB002B +:101000009B1A9B000B44103301221A70FA793E4957 +:101010001346DB009B1A9B000B441433BA6A1A6018 +:10102000394B93F8B03183F00103DBB2002B60D071 +:101030000023FB7502E0FB7D0133FB75FA7D32492D +:101040001346DB009B1A9B000B4410331B7883F084 +:101050000103DBB2002BEED1FA7D2B491346DB00F6 +:101060009B1A9B000B4404331A68274BD3F8AC310E +:10107000D31A3B61FB7DBB75BB7D0133FB7523E060 +:10108000FA7D21491346DB009B1A9B000B44103369 +:101090001B78002B15D0FA7D1B491346DB009B1AE9 +:1010A0009B000B4404331A68174BD3F8AC31D31AA6 +:1010B000FB60FA683B699A4203D2FB683B61FB7DA7 +:1010C000BB75FB7D0133FB75FB7D0E2BD8D9BA7D3B +:1010D0000D491346DB009B1A9B000B4404331B682D +:1010E000094AC2F8A831084BD3F8A831184601F0D4 +:1010F00093FE054B012283F8A42103F080FE00E05B +:1011000000BF1C37BD4690BDB04C002080B588B0F4 +:1011100000AFB9607A601A460346FB731346BB738F +:101120000023FB7711E0FA7F8F491346DB009B1AFF +:101130009B000B4411331B78002B03D0FA7FFB7B01 +:101140009A4206D0FB7F0133FB77FB7F0E2BEAD957 +:1011500000E000BFFB7F0F2B00F0028103F05BFE7D +:10116000FA7B81491346DB009B1A9B000B44123328 +:1011700001221A70BB7B002B02D0012B23D03FE051 +:10118000FA7BB9680B465B01194477481346DB00CC +:101190009B1A9B0003441960BA6813465B011A440A +:1011A0000323A3FB0213D21A520813449B0FFA7BAA +:1011B00098B26D491346DB009B1A9B000B44083321 +:1011C00002461A801CE0FA7B67491346DB009B1A33 +:1011D0009B000B44BA681A60BA680323A3FB02138E +:1011E000D21A520813449B0FFA7B98B25E491346F9 +:1011F000DB009B1A9B000B44083302461A8000BF99 +:10120000FA7B59491346DB009B1A9B000B440833B9 +:101210001B88002B13D1FA7B53491346DB009B1A22 +:101220009B000B441968FA7B7B6819444E481346AF +:10123000DB009B1A9B000344043319600CE0F97B2C +:101240007B6803F10042013A47480B46DB005B1A1A +:101250009B00034404331A60FA7B43491346DB00C6 +:101260009B1A9B000B44103301221A70FA7B3E49F3 +:101270001346DB009B1A9B000B441433BA6A1A60B6 +:10128000394B93F8B03183F00103DBB2002B60D00F +:101290000023FB7702E0FB7F0133FB77FA7F3249C3 +:1012A0001346DB009B1A9B000B4410331B7883F022 +:1012B0000103DBB2002BEED1FA7F2B491346DB0092 +:1012C0009B1A9B000B4404331A68274BD3F8AC31AC +:1012D000D31ABB61FB7FBB77BB7F0133FB7723E076 +:1012E000FA7F21491346DB009B1A9B000B44103305 +:1012F0001B78002B15D0FA7F1B491346DB009B1A85 +:101300009B000B4404331A68174BD3F8AC31D31A43 +:101310007B617A69BB699A4203D27B69BB61FB7FBF +:10132000BB77FB7F0133FB77FB7F0E2BD8D9BA7FCE +:101330000D491346DB009B1A9B000B4404331B68CA +:10134000094AC2F8A831084BD3F8A831184601F071 +:1013500063FD054B012283F8A42103F050FD00E05A +:1013600000BF2037BD4680BDB04C002080B582B0A4 +:1013700000AF03463960FB7103F04DFDFA79074970 +:101380001346DB009B1A9B000B443A681A6003F07B +:1013900036FD00BF0837BD4680BD00BFB04C002001 +:1013A00080B582B000AF0346FB7103F034FDFA79DB +:1013B0000C491346DB009B1A9B000B4410330022A0 +:1013C0001A70FA7907491346DB009B1A9B000B44FD +:1013D000143300221A6003F012FD00BF0837BD4627 +:1013E00080BD00BFB04C002080B582B000AF034686 +:1013F000FB71FB790E2B0DD8FA791346DB009B1A93 +:101400009B00074A13441C220021184605F0A6F948 +:10141000012300E0002318460837BD4680BD00BF09 +:10142000B04C002080B500AF01F01EFD0346184609 +:1014300080BD80B400AF034BD3F8A8311846BD4639 +:1014400080BC7047B04C002080B483B000AF03462E +:10145000FB71FA7906491346DB009B1A9B000B448B +:1014600010331B7818460C37BD4680BC704700BF50 +:10147000B04C002090B587B002AF804B1B7C002B96 +:1014800015D07E4BD3F8A8217C4B5B689A420ED1D5 +:101490007A4B00221A74794B5B690020984701F05F +:1014A000E3FC03460F33184601F0B6FC0EE2734B23 +:1014B0005A68724BD3F8A8319A4236D10023FB7395 +:1014C00030E0FA7B6D491346DB009B1A9B000B440E +:1014D00010331B78002B22D0FB7B012B1FD0FB7B12 +:1014E000002B1CD0FA7B65491346DB009B1A9B003E +:1014F0000B4404331A68614BD3F8A831D31A40F275 +:101500008E2293420BD8FA7B5C4BD3F8A8115B4830 +:101510001346DB009B1A9B00034404331960FB7BDA +:101520000133FB73FB7B0E2BCBD90023FB7357E1FD +:10153000FA7B52491346DB009B1A9B000B44103385 +:101540001B78002B00F049814C4BD3F8A811FA7B93 +:101550004A481346DB009B1A9B00034404331B6874 +:10156000994240F03A81F97BFA7B44480B46DB0014 +:101570005B1A9B0003440433196840481346DB00A0 +:101580009B1A9B0003440C331960FB7B012B1ED17B +:101590003A4B012283F8B021FA7B38491346DB002D +:1015A0009B1A9B000B44103300221A70FA7B3349BC +:1015B0001346DB009B1A9B000B4414331B68FA7B19 +:1015C000104698472D4B002283F8B02105E1FA7BA5 +:1015D0002A491346DB009B1A9B000B4408331B88E7 +:1015E000002B4DD1FA7B25491346DB009B1A9B004B +:1015F0000B44103300221A70FA7B20491346DB009B +:101600009B1A9B000B4414331868FA7B1B49134642 +:10161000DB009B1A9B000B4418331B781946FFF71D +:1016200051FBFA7B15491346DB009B1A9B000B44C8 +:1016300012331B78002B40F0D080104B012283F82E +:10164000B021FA7B0D491346DB009B1A9B000B442B +:101650001C68FA7B09491346DB009B1A9B000B446C +:1016600014331B68F87B0093002301222146FFF707 +:1016700017FC024B002283F8B021AEE0B04C0020F2 +:10168000FA7B94491346DB009B1A9B000B440833FA +:101690001B88013B98B28F491346DB009B1A9B00C5 +:1016A0000B44083302461A80FA7B8A491346DB0052 +:1016B0009B1A9B000B4408331B88002B78D1FA7BC4 +:1016C00084491346DB009B1A9B000B441968FA7B84 +:1016D00080481346DB009B1A9B0003440C331B68B5 +:1016E0000B44FA7B23F000417A481346DB009B1A37 +:1016F0009B00034404331960FA7B76491346DB00F0 +:101700009B1A9B000B4404331A68724BD3F8A83120 +:10171000D31A40F28E2293425FD8FA7B6D4913466A +:10172000DB009B1A9B000B44103300221A70FA7BDB +:1017300068491346DB009B1A9B000B44143318685E +:10174000FA7B64491346DB009B1A9B000B44183359 +:101750001B781946FFF7B6FAFA7B5E491346DB00A1 +:101760009B1A9B000B4412331B78002B35D1594B2D +:10177000012283F8B021FA7B56491346DB009B1AFD +:101780009B000B441C68FA7B52491346DB009B1AF2 +:101790009B000B4414331B68F87B00930023012249 +:1017A0002146FFF77DFB4B4B002283F8B02114E06C +:1017B000FA7B48491346DB009B1A9B000B440C3311 +:1017C0001B68F97B03F10042013A42480B46DB00FB +:1017D0005B1A9B00034404331A60FB7B0133FB73E9 +:1017E000FB7B0E2B7FF6A4AE3A4BD3F8A831394AD7 +:1017F000C2F8AC310023FB7302E0FB7B0133FB73C7 +:10180000FA7B34491346DB009B1A9B000B441033D0 +:101810001B7883F00103DBB2002B02D0FB7B0E2B85 +:10182000EBD9FB7B0E2B4DD8FA7B2A491346DB0004 +:101830009B1A9B000B4404331A68264BD3F8AC3137 +:10184000D31ABB60FB7BBB73BB7B0133FB7323E011 +:10185000FA7B20491346DB009B1A9B000B44103394 +:101860001B78002B15D0FA7B1A491346DB009B1A14 +:101870009B000B4404331A68164BD3F8AC31D31ACF +:101880007B607A68BB689A4203D27B68BB60FB7B53 +:10189000BB73FB7B0133FB73FB7B0E2BD8D9BA7B6D +:1018A0000C491346DB009B1A9B000B4404331B6856 +:1018B000084AC2F8A831074BD3F8A831184601F0FE +:1018C000ABFA03E0034B002283F8A4211437BD4692 +:1018D00090BD00BFB04C002080B500AFFEF7D6FC35 +:1018E0000346184680BD80B500AF00F09DF800F0BB +:1018F000B7F800F014F800F054F800F06DFD00F0B7 +:10190000C3FA00F0EFF801F065FA01F01BFB00F0FC +:1019100051FF00F017FC00F097F900BF80BD80B5C3 +:1019200000AF1021094802F058FB0821074802F0D7 +:1019300054FB00221021054802F024FB0822082154 +:10194000024802F01FFB00BF80BD00BF00C00D4079 +:1019500080B500AF00221021044802F013FB0822DA +:101960000821024802F00EFB00BF80BD00C00D4000 +:1019700080B500AF00220821044802F003FB1022CA +:101980001021024802F0FEFA00BF80BD00C00D40E9 +:1019900080B500AF002004F0EBFA04F017F900BFA7 +:1019A00080BD80B500AF3221044802F072FD4FF6D1 +:1019B000FF71024802F042FD00BF80BD00200340DD +:1019C00080B582B000AFFF21054802F0E2FE034679 +:1019D0005B097B607B6818460837BD4680BD00BF49 +:1019E0000020034080B584B000AF7860FF210A4832 +:1019F00002F0CFFE03465B09FB607A68FB68D31AEE +:101A0000BB60BB68002B01DD002300E0012318460A +:101A10001037BD4680BD00BF0020034080B500AF39 +:101A200004F0CBF800BF80BD80B500AFFF210848AF +:101A300002F0BDFAFF21074802F0B9FAFF2106487B +:101A400002F0B5FAFF21054802F0B1FA00BF80BDEF +:101A500000900D4000A00D4000B00D4000C00D40B2 +:101A600080B582B000AF03F0D6F90346FB710022C7 +:101A700040211A4802F00AF900228021174802F09A +:101A800005F901224021154803F020FD01228021A3 +:101A9000124803F01BFD00220021012003F06AFF21 +:101AA000002004F017F800BF0D4B1B6803F400235F +:101AB000002BF9D000F030F800F05EF800F08CF860 +:101AC00000F0BAF8FB7983F00103DBB2002B01D000 +:101AD00003F095F900BF0837BD4680BD00C00D403A +:101AE00004200D4080B500AF20210A4802F05FFAC3 +:101AF00000222021074802F02FF9082002F07AFC8A +:101B00002021044802F0F6F92021024802F0AFF942 +:101B100000BF80BD00C00D4080B500AF002004F0C4 +:101B200073F9012004F070F9032004F06DF94FF40B +:101B3000807004F069F940F2011004F065F940F298 +:101B4000012004F061F94FF4407004F05DF94FF4A6 +:101B5000806004F059F940F2014004F055F9022088 +:101B600004F02EF94FF4007004F02AF94FF4A0604D +:101B700004F026F900BF80BD80B500AF002004F05E +:101B80008BF9012004F088F9032004F085F94FF463 +:101B9000807004F081F940F2011004F07DF940F208 +:101BA000012004F079F94FF4407004F075F94FF416 +:101BB000806004F071F940F2014004F06DF90220F8 +:101BC00004F046F94FF4007004F042F94FF4A060BD +:101BD00004F03EF900BF80BD80B500AF002004F0E6 +:101BE000A3F9012004F0A0F9022004F09DF90320DC +:101BF00004F09AF94FF4807004F096F940F2011065 +:101C000004F092F94FF4007004F08EF940F20120D4 +:101C100004F08AF94FF4407004F086F94FF48060C4 +:101C200004F082F940F2014004F07EF94FF4A06024 +:101C300004F07AF900BF80BD80B500AF202002F02B +:101C4000D9FB00BF80BD00BF80B500AF40F20140AE +:101C500004F070F840F2014004F0B2F80023184696 +:101C600080BDF0B58FB008AFF8607A603B600B467E +:101C7000FB723B681B78002B14BF01230023FB750C +:101C800007F116031946B86B00F0D5F80346002B90 +:101C900041D13B681B789BB2FA7A92B2B97D386821 +:101CA000007804467868204497F83C60FD7D002465 +:101CB000069497F834400594049003910292FA68D0 +:101CC000019200937B683A6B3146284601F020FC74 +:101CD0000346002B1FD100BF01F02EFD0346002B51 +:101CE000F9D03B681B7899B23B681B781A467B6831 +:101CF0001A4497F83C30184601F042FD0346002B89 +:101D000009D13B681A7897F83C301344DAB23B6843 +:101D10001A70002300E0012318461C37BD46F0BDB1 +:101D2000B0B592B008AFF8607A603B600B46FB72CA +:101D30003B681B781A4697F84430D31A002BCCBF67 +:101D40000123002387F8273007F126031946386C52 +:101D500000F071F80346002B3DD13B681B789BB225 +:101D6000FA7A92B297F8261097F8445097F82740DD +:101D70000020069097F83C00059007F114000490AD +:101D800003910292FA68019200937B68BA6B29462C +:101D9000204601F07FFD0346002B1CD100BF01F05F +:101DA00087FE0346002BF9D03B681B789AB207F1F7 +:101DB000140397F84400796801F081FE0346002B74 +:101DC00009D13B681A7897F84430D31ADAB23B68E5 +:101DD0001A70002300E0012318462837BD46B0BD25 +:101DE00080B586B002AF7860396007F10F031946FD +:101DF000386800F020F80346002B17D1FA7B002347 +:101E0000009301237968786801F090FA0346002B6B +:101E10000CD100BF01F00EFB0346002BF9D001F0FE +:101E20002DFB0346002B01D1002300E001231846BF +:101E30001037BD4680BD90B583B000AF7860396083 +:101E4000102279680F4804F057FC0346002B10D08D +:101E50000C4A7B681446186859689A68DB680FC496 +:101E60000021084801F0A2F90346002B01D001230C +:101E700003E03B6800221A70002318460C37BD4669 +:101E800090BD00BF8C42002080B500AF80210E487D +:101E900002F0A3F808210D4802F09FF80F210C482A +:101EA00002F09BF800228021074802F06BF8002224 +:101EB0000821064802F066F800220F21044802F0CB +:101EC00061F800BF80BD00BF00900D4000B00D4024 +:101ED00000A00D4080B500AF8021024800F0EAF874 +:101EE00000BF80BD00900D4080B500AF0022802172 +:101EF000024802F047F800BF80BD00BF00900D40CF +:101F000080B500AF80228021024802F03BF800BF7C +:101F100080BD00BF00900D4080B500AF0821024891 +:101F200000F0C8F800BF80BD00A00D4080B500AF34 +:101F300000220821024802F025F800BF80BD00BF42 +:101F400000A00D4080B500AF08220821024802F031 +:101F500019F800BF80BD00BF00A00D4080B500AFE4 +:101F60000421024800F0A6F800BF80BD00A00D408B +:101F700080B500AF00220421024802F003F800BF40 +:101F800080BD00BF00A00D4080B500AF0422042139 +:101F9000024801F0F7FF00BF80BD00BF00A00D4068 +:101FA00080B500AF0221024800F084F800BF80BD78 +:101FB00000A00D4080B500AF00220221024801F0D0 +:101FC000E1FF00BF80BD00BF00A00D4080B500AFA5 +:101FD00002220221024801F0D5FF00BF80BD00BFF0 +:101FE00000A00D4080B500AF0821024800F062F863 +:101FF00000BF80BD00B00D4080B500AF00220821B9 +:10200000024801F0BFFF00BF80BD00BF00B00D401F +:1020100080B500AF08220821024801F0B3FF00BFDD +:1020200080BD00BF00B00D4080B500AF0121024867 +:1020300000F040F800BF80BD00A00D4080B500AFAB +:1020400000220121024801F09DFF00BF80BD00BFBA +:1020500000A00D4080B500AF01220121024801F02F +:1020600091FF00BF80BD00BF00A00D4080B400AF55 +:1020700000BFBD4680BC704780B400AF00BFBD4606 +:1020800080BC704780B400AF00BFBD4680BC7047C5 +:1020900080B400AF00BFBD4680BC704780B400AFC5 +:1020A00000BFBD4680BC704780B400AF00BFBD46D6 +:1020B00080BC704780B584B000AF78600B46FB7081 +:1020C000FB781946786801F04CFFF860FB68DA434A +:1020D000FB781340FB60FB68DAB2FB78194678683E +:1020E00001F050FF00BF1037BD4680BD80B485B001 +:1020F00000AF7860114BFB6007E0FA68531EFB608D +:102100007B68591C796012781A70FB68B3F1281F3C +:10211000F3D20B4BFB6007E0FA68531EFB607B6851 +:10212000591C796012781A70FB68044A9342F3D8FC +:1021300000BF1437BD4680BC704700BF2B0028008D +:102140002F00280080B582B000AF4FF4407003F03C +:1021500037FE4FF4407003F07BFE4FF4407003F005 +:10216000E3FE4FF4407003F0E5FD2021154801F037 +:102170004AFF154A2021134803F0CEF80C222021F3 +:10218000104803F065F810210E4801F03CFF0F4A9B +:1021900010210C4803F0C0F80B221021094803F06D +:1021A00057F80123FB7103F043FC0246FB79194603 +:1021B000104602F009FC02F047FC00BF0837BD469C +:1021C00080BD00BF00A00D4030410D402C410D40AE +:1021D00080B584B000AF03463960FB71144BFB60DF +:1021E000FB790121184602F063FD072002F09AFDF9 +:1021F000FFF7E6FB0246FB681344FB6007E0F86864 +:10220000FFF7F0FB0346002B01D000230BE002F0A8 +:1022100065FD0346002BF2D102F0C0FD0346DAB2A1 +:102220003B681A70012318461037BD4680BD00BFB9 +:10223000801A060080B586B000AF0346B9607A60A8 +:10224000FB731D4B7B61FB7B0121184602F030FDC7 +:102250000B2002F067FDFFF7B3FB02467B691344D6 +:102260007B6121E07869FFF7BDFB0346002B01D0BD +:102270007B681DE002F032FD0346002BF2D102F034 +:102280008DFD0146BB685A1CBA60CAB21A707B68E1 +:10229000013B7B607B68012B03D1052002F042FDEE +:1022A00002E0092002F03EFD7B68002BE2D17B6852 +:1022B00018461837BD4680BD801A060080B584B028 +:1022C00000AF03460A46FB711346BB71134BFB601C +:1022D000FB790021184602F0EBFCBB79184602F0AE +:1022E0004DFD072002F01EFDFFF76AFB0246FB686A +:1022F0001344FB6007E0F868FFF774FB0346002B0C +:1023000001D0002305E002F0E9FC0346002BF2D1E6 +:10231000012318461037BD4680BD00BF801A060055 +:1023200080B586B000AF0346B9607A60FB73294B75 +:102330007B61FB7B0021184602F0BAFCBB685A1C8B +:10234000BA601B78184602F019FD7B68013B7B6080 +:10235000032002F0E7FCFFF733FB02467B691344DE +:102360007B6107E07869FFF73DFB0346002B01D056 +:102370007B682BE002F0B2FC0346002BF2D121E097 +:10238000BB685A1CBA601B78184602F0F7FC7B68E1 +:10239000012B03D1052002F0C5FC0BE0012002F067 +:1023A000C1FC07E07869FFF71DFB0346002B01D055 +:1023B0007B680BE002F092FC0346002BF2D17B68B5 +:1023C000013B7B607B68002BDAD17B6818461837AD +:1023D000BD4680BD801A060080B500AFF0210548DB +:1023E00001F0FBFDF022F021024801F0CBFD00BF1F +:1023F00080BD00BF00B00D4080B500AF102000F0E0 +:1024000097F900BF80BD80B500AF102000F0A2F9A1 +:1024100000BF80BD80B500AF102000F0ADF900BF57 +:1024200080BD80B582B000AF1021074801F099FD52 +:1024300078607B68DBB21B11DBB203F00103DBB217 +:1024400018460837BD4680BD00B00D4080B500AFCE +:10245000802000F06DF900BF80BD80B500AF802006 +:1024600000F078F900BF80BD80B500AF802000F09B +:1024700083F900BF80BD80B582B000AF80210748DE +:1024800001F06FFD78607B68DBB25B11DBB203F0BB +:102490000403DBB218460837BD4680BD00B00D40CE +:1024A00080B500AF202000F043F900BF80BD80B5AB +:1024B00000AF202000F04EF900BF80BD80B500AF16 +:1024C000202000F059F900BF80BD80B582B000AF78 +:1024D0002021044801F045FD7860002318460837A4 +:1024E000BD4680BD00B00D4080B500AF402000F07B +:1024F0001FF900BF80BD80B500AF402000F02AF971 +:1025000000BF80BD80B500AF402000F035F900BFAE +:1025100080BD80B582B000AF4021074801F021FDA9 +:1025200078607B68DBB29B11DBB203F00103DBB2A6 +:1025300018460837BD4680BD00B00D4080B500AFDD +:10254000F02000F0F5F800BF80BD80B500AFF020AE +:1025500000F000F900BF80BD80B500AFF02000F0B2 +:102560000BF900BF80BD80B582B000AFF02000F055 +:10257000F1F80023FB711FE0102000F0FDF84FF68A +:10258000FF73BB8004E0BB889BB2013B9BB2BB8066 +:10259000BB889BB2002BF6D14FF6FF73BB8004E0E3 +:1025A000BB889BB2013B9BB2BB80BB889BB2002B1C +:1025B000F6D1FB790133FB71FB794F2BDCD900BFDE +:1025C0000837BD4680BD80B582B000AFF02000F076 +:1025D000C1F80023FB714EE0102000F0A9F84FF67F +:1025E000FF73BB8007E0102000F0B4F8BB889BB2FB +:1025F000013B9BB2BB80BB889BB2002BF3D1202058 +:1026000000F096F84FF6FF73BB8004E0BB889BB2E6 +:10261000013B9BB2BB80BB889BB2002BF6D1202034 +:1026200000F098F8402000F083F84FF6FF73BB806D +:1026300004E0BB889BB2013B9BB2BB80BB889BB2D2 +:10264000002BF6D1402000F085F8802000F070F8D3 +:102650004FF6FF73BB8004E0BB889BB2013B9BB28B +:10266000BB80BB889BB2002BF6D1F02000F072F843 +:10267000FB790133FB71FB79092BADD900BF08371A +:10268000BD4680BD80B582B000AFF02000F062F89A +:102690000023FB7145E0102000F04AF84FF6FF736D +:1026A000BB8004E0BB889BB2013B9BB2BB80BB8874 +:1026B0009BB2002BF6D1202000F03AF84FF6FF73C2 +:1026C000BB8004E0BB889BB2013B9BB2BB80BB8854 +:1026D0009BB2002BF6D1402000F02AF84FF6FF7392 +:1026E000BB8004E0BB889BB2013B9BB2BB80BB8834 +:1026F0009BB2002BF6D1802000F01AF84FF6FF7342 +:10270000BB8004E0BB889BB2013B9BB2BB80BB8813 +:102710009BB2002BF6D1F02000F01CF8FB790133BE +:10272000FB71FB79092BB6D900BF0837BD4680BDC8 +:1027300080B582B000AF0346FB71FB7900221946D9 +:10274000034801F01FFC00BF0837BD4680BD00BF35 +:1027500000B00D4080B582B000AF0346FB71FA793E +:10276000FB791946034801F00DFC00BF0837BD4650 +:1027700080BD00BF00B00D4080B584B000AF0346FF +:10278000FB71FB7919460A4801F0EBFBF860FB6826 +:10279000DA43FB791340FB60FB68DAB2FB79194638 +:1027A000034801F0EFFB00BF1037BD4680BD00BFFE +:1027B00000B00D4080B500AF0C220021354803F079 +:1027C000CDFF344B00221A72334BED221A60324B8C +:1027D000ED221A60304BEE221A602F4BEE221A6067 +:1027E00000F03EFA00F020FA2C4B14221A602C4B19 +:1027F0003F221A602B4B55221A602B4B85221A6000 +:102800002A4B01221A602A4B15221A60294B1022EA +:102810001A60294B0E221A60284B03221A60284B9B +:10282000F8221A60274B09221A60214B15221A60E0 +:1028300004230B221A60244BFF221A60234B4022F0 +:102840001A60234B1B68224A23F001031360214BBB +:1028500000221A60204B7F221A60204BD5221A607A +:102860001F4B0B221A601F499D2002F0E0FA1E49FF +:102870009E2002F0DCFA9D2002F0A4FB1B4B7F227D +:102880001A609E2002F09EFB024B01221A7200BFCA +:1028900080BD00BF644E002038880840A4860840F0 +:1028A000AC860840B0860840A0860840B88608403C +:1028B000C8860840D4860840D8860840DC86084090 +:1028C00058860840E88708409487084024860840D6 +:1028D0000086084008860840508608404086084028 +:1028E0003C860840AF2C2000A12D20009486084093 +:1028F00080B483B000AF7860034A7B68136000BF88 +:102900000C37BD4680BC7047644E002080B483B055 +:1029100000AF7860034A7B68536000BF0C37BD4648 +:1029200080BC7047644E002080B500AF00BF0E4BE6 +:102930001B6803F00203002BF9D10C4BED221A6047 +:102940000A4BED221A60094BEE221A60074BEE2269 +:102950001A60074B1B68002B02D0044BEF221A6051 +:10296000FFF728FF00BF80BD4C860840388808402C +:102970002C86084080B582B000AF0346FB710E4B39 +:1029800002221A7200F06CF9FB790A2B02D9FB794A +:102990001A2B00D9FEE7FB79A3F10B0213469B002B +:1029A000134403F10B02054B1A60034B03221A7206 +:1029B00000BF0837BD4680BD644E00203C860840FD +:1029C00080B400AF00BFBD4680BC704780B500AF8B +:1029D000074B0D221A7200F043F9FFF72FFBFFF7A8 +:1029E00066FD00F021F9024B01221A7200BF80BD82 +:1029F000644E002080B485B000AF78600B467B80C9 +:102A00000023FB73154B04221A7200BF144B1B6882 +:102A100003F00203002BF9D1124BEE221A60114B86 +:102A2000EE221A60104A7B8813600023FB7308E0D3 +:102A3000FB7B7A6813441A780B4B1A60FB7B0133DB +:102A4000FB73FB7B9BB27A889A42F1D8034B052239 +:102A50001A7200BF1437BD4680BC7047644E002018 +:102A60004C860840388808402888084080B500AF68 +:102A7000054B06221A72FFF7EDFAFFF711FD024B24 +:102A800007221A7200BF80BD644E002080B582B05C +:102A900000AF0F4B08221A7200F0B0F800BF0D4BC8 +:102AA0001B6803F00203002BF9D10B4BE9221A60DB +:102AB00000237B6002E07B6801337B60054B1B6871 +:102AC00003F00203002BF6D000BF0837BD4680BDDF +:102AD000644E00204C8608403888084080B500AF1E +:102AE000054B09221A72FFF7B5FAFFF7D9FC024B22 +:102AF0000A221A7200BF80BD644E002080B500AF6C +:102B0000094BED221A60084BED221A6000F076F8AE +:102B1000054BE3221A6000BF044B1B6803F001035E +:102B2000002BF9D000BF80BD388808404C86084093 +:102B300080B487B000AFF860B9603B601346FB71AA +:102B40000023BB752B4B1B68BB7597F91630002B08 +:102B500006DA294BED221A60274BED221A6044E079 +:102B6000BB7D042B06D8244BED221A60224BED22AC +:102B70001A603AE0BA7DFB799A4206D91E4BED22E3 +:102B80001A601D4BED221A602FE00023FB7509E04F +:102B9000184B1968FB7DFA681344CAB21A70FB7DA2 +:102BA0000133FB75FA7DBB7D023B9A42F0DB114B92 +:102BB0001B68DBB2493BDBB25AB23B681A700D4B63 +:102BC0001B687B757B7D03F08003002B14BF012302 +:102BD0000023DAB27B6A1A70BB68BA7D1A70064BA2 +:102BE000ED221A60044BED221A601C37BD4680BCF2 +:102BF000704700BF288808403888084080B400AF7C +:102C0000074B1B68064A43F007031360054B1B681C +:102C1000044A43F00203136000BFBD4680BC704706 +:102C20008C8608409086084080B400AF044B002298 +:102C30001A60044B00221A6000BFBD4680BC70477A +:102C40008C8608409086084080B400AF034BE32296 +:102C50001A6000BFBD4680BC704700BF388808407E +:102C600080B400AF00BF0A4B1B6803F00203002BC7 +:102C7000F9D1084B1B68002B06D0074BEF221A60D6 +:102C8000064B6FF044021A6000BFBD4680BC70471F +:102C90004C8608402C860840388808403488084014 +:102CA00080B400AF00231846BD4680BC704780B595 +:102CB00082B000AFFFF7ACF900F0D6F803463B60F6 +:102CC000344B1B68FB71344B1B68BB719D2002F0B9 +:102CD0004BFA304B00221A602F4B00221A60FB790E +:102CE00003F00203002B0FD02C4B0B221A722B4B3C +:102CF0001B68002B07D0294B1B683A681046984781 +:102D0000FFF77AF942E0FEE7FB7903F04003002B7E +:102D10000FD0224B0C221A72204B5B68002B07D07D +:102D20001E4B5B683A6810469847FFF765F92DE03F +:102D3000FEE7FB7903F00403002B0FD0174B0C22A6 +:102D40001A72164B5B68002B07D0144B5B683A680D +:102D500010469847FFF750F918E0FEE7BB7903F0FB +:102D60000203002B0FD00D4B0C221A720B4B5B6829 +:102D7000002B07D0094B5B683A6810469847FFF76D +:102D80003BF903E0FEE7FFF737F900BF0837BD4620 +:102D900080BD00BF3488084030880840644E002061 +:102DA00080B483B000AF0A4B1B68FB71084B1A68F4 +:102DB000FB79134003F00203002B03D0044B6FF0A8 +:102DC00002021A6000BF0C37BD4680BC704700BFCE +:102DD0009486084080B500AF04220021054803F026 +:102DE000BDFC0549A12002F022F8A12002F034F92F +:102DF00000BF80BD704E0020932E200080B483B0B1 +:102E000000AF7860034A7B68136000BF0C37BD4693 +:102E100080BC7047704E002080B582B000AF7860F3 +:102E2000A12002F0CFF802F0E8FC02467B68D31A3A +:102E30000C4A934203D8A12002F058F90DE002F0A9 +:102E4000DCFC02467B689B1A042B03D8A12002F00D +:102E50004DF902E0786802F013FD00BF0837BD4667 +:102E600080BD00BFFEFFFF0080B500AF02F0C5FCD3 +:102E70000346184680BD80B500AFA12002F0A2F83D +:102E800000BF80BD80B500AFA12002F0E5F800BF13 +:102E900080BD80B500AFFFF7BBF8084B1B68002B67 +:102EA00007D0A12002F060F9044B1B689847FFF798 +:102EB000A3F8FFF7A1F800BF80BD00BF704E00204F +:102EC00080B500AF00F007F8FEE780B400AFFEE782 +:102ED00080B400AFFEE780B582B000AF114BFF2297 +:102EE0001A60114B114A1A60114B7B60114B3B6009 +:102EF00007E07A68131D7B603B68191D3960126812 +:102F00001A603B680C4A9342F3D30C480C494FF0CB +:102F100000028842B8BF40F8042BFADBFEF7DCFC65 +:102F2000FEE700BFB4200D4008ED00E000002000E7 +:102F3000D0702000004000208C4200208C420020F5 +:102F4000804E002080B500AF0C2200211E4803F007 +:102F500005FC1E4803F020F941F6FF711B4803F001 +:102F6000A4FA0121194803F019FB00220221184894 +:102F700002F06EF90221164801F09DF8154A012170 +:102F8000134802F0C9F90121114801F07EF802F05E +:102F9000BBFD014660234FF4E1320C4803F06AF8B0 +:102FA0000A4803F0DEF8094803F02AF9102107481F +:102FB00003F067F90849054803F031FA152002F0DB +:102FC00001F800BF80BD00BF744E002000C000406B +:102FD00000900D4000410D40ED30200080B483B0E2 +:102FE00000AF78603960054A7B681360034A3B682C +:102FF000536000BF0C37BD4680BC7047744E002044 +:1030000080B500AF7021024803F03CFA00BF80BDDC +:1030100000C0004080B500AF7021024803F045FABF +:1030200000BF80BD00C0004080B500AF5021024805 +:1030300003F063FA00BF80BD00C0004080B500AF60 +:103040002021024803F059FA00BF80BD00C00040B3 +:1030500080B582B000AF0346FB71FB79112B05D020 +:10306000FB79132B02D0FB79122B0AD1094B0122D9 +:103070001A72084AFB7953721221074803F08AF941 +:1030800004E0FB791946044803F084F900BF0837CF +:10309000BD4680BD744E002000C0004080B582B0A7 +:1030A00000AF054803F04BF978607B68DBB2184647 +:1030B0000837BD4680BD00BF00C0004080B582B06B +:1030C00000AF0346FB71FB79002B04D011210648A9 +:1030D00003F060F903E01321034803F05BF900BF3C +:1030E0000837BD4680BD00BF00C0004080B582B03B +:1030F00000AF0121124803F0EBF97860152002F0CF +:1031000033F87B6803F02003002B05D0FEF7CCFFDB +:1031100000F018F8FEF7C2FF7B6803F01003002BE5 +:1031200004D17B6803F04003002B05D0FEF7AAFF13 +:1031300000F02CF8FEF7A0FF00BF0837BD4680BDA9 +:1031400000C0004080B500AFFFF778FF0D4B1B7A41 +:10315000002B0CD00B4B00221A720A4B5B7A83F0C7 +:103160001003DBB21946084803F014F906E0054BDA +:103170001B68002B02D0034B1B689847002318469E +:1031800080BD00BF744E002000C0004080B500AF7D +:10319000FFF74AFF044B5B68002B02D0024B5B68D1 +:1031A00098470023184680BD744E002080B584B037 +:1031B00000AF78600B46FB704F4BBB604F4B01225A +:1031C0001A700023FB730AE0FB7B7A681A44FB7BCE +:1031D000B9680B4412781A70FB7B0133FB73FB7BDD +:1031E0000F2BF1D99F2001F037FF454B1B68444A54 +:1031F00043F001031360434B1B68424A43F003034F +:103200001360414B1B68404A23F0010313603E4B9F +:103210001B683D4A43F0010313603C4B1B683B4A6B +:1032200043F0030313603A4B1B68394A03F003036E +:103230001360374B1B68364A43F001031360FB7879 +:1032400001229A40334B1A60334B1B68324A43F0D9 +:1032500001031360314ABB681360314B10221A60BE +:1032600000BF304B1B6803F00103002BF8D02D4B3F +:103270001B68002B07DA254B1B68244A43F00043E8 +:103280001360032333E0274B1B6803F08043002BBC +:1032900007D01E4B1B681D4A43F080431360022376 +:1032A00025E01A4B1B68194A43F003031360164BC1 +:1032B00000221A601C4B1B6803F00703012B04D08B +:1032C0000E4B00221A70022311E00023FB7307E06B +:1032D000FB7BBA68134400221A70FB7B0133FB733B +:1032E000FB7B0F2BF4D9054B00221A7000231846E4 +:1032F0001037BD4680BD00BFA04A00209C4A002078 +:1033000080B7084084B7084000B7084088B7084035 +:1033100008B4084000B4084000B0084004B00840B9 +:103320000CB0084090B7084004B4084080B584B0A1 +:1033300000AFF860B96011461A460B46FB711346A0 +:10334000BB712C4B02221A702B4B01221A602B4BA3 +:1033500001221A603B7E002B05D09F2001F004FF64 +:103360009F2001F02FFE264B02221A60254B1B687E +:10337000244A43F003031360234AFB79136000BF20 +:10338000214B1B68002BFADB204B1B6803F000531A +:10339000002B07D01B4B1B681A4A43F000531360E5 +:1033A000012322E0BB79002B03D0194B0C221A60B9 +:1033B00002E0174B08221A60164B10221A60164BB7 +:1033C00000221A60154B01221A60154AFB6813602F +:1033D000144B10221A60144B01221A60134ABB6866 +:1033E0001360134B10221A60002318461037BD4695 +:1033F00080BD00BF9C4A002080B7084084B70840C9 +:1034000000B7084088B708400CB4084090B708409F +:1034100050B5084054B5084058B5084000B00840C1 +:1034200004B008400CB0084020B0084024B0084068 +:103430002CB0084080B400AF0F4B1B78DBB203F018 +:103440000103002B0FD10C4B1B780B4B1B78DBB20D +:1034500003F08043002B06D1074B1B78DBB203F04F +:103460000053002B01D0012300E00023DBB21846FB +:10347000BD4680BC704700BF90B7084080B500AF24 +:103480001E4B1B68002B07DA1D4B1B681C4A43F0C0 +:103490000043136003232EE0184B1B6803F08043A6 +:1034A000002B07D0164B1B68154A43F0804313606E +:1034B000022320E0114B1B6803F00053002B07D0C0 +:1034C0000F4B1B680E4A43F000531360012312E0B8 +:1034D0009F2001F0C1FD0A4B1B68094A43F003031A +:1034E0001360084B00221A60074B00221A60074B3A +:1034F00000221A700023184680BD00BF90B7084014 +:1035000088B7084000B7084050B508409C4A0020E2 +:1035100080B58AB000AFBA607B600346FB730B4690 +:10352000BB73704B03221A709F2001F095FD6E4B08 +:1035300001221A606D4B03221A606D4B02221A6041 +:103540006C4B1B686B4A43F0030313606A4A97F89D +:103550003C30136000BF684B1B68002BFADB674BE5 +:103560001B6803F00053002B07D0624B1B68614AB5 +:1035700043F0005313600123AFE097F84430013B60 +:10358000DBB23B74002387F8233011E097F8233037 +:10359000BA681A4497F823300133127807F12801EA +:1035A0000B4403F8182C97F82330013387F82330A5 +:1035B00097F823300C2BE9D997F84430032B01D12D +:1035C00000237B770023BB770023FB7707F11003F1 +:1035D0004B4A1B6813604B4A7B6913604A4ABB69BC +:1035E00013604A4AFB69136097F84430013BDB04DF +:1035F0007B62BB7B012B07D9BB7B023B5B109B052E +:103600001A467B6A13437B627B6A43F480237B62A6 +:103610007B6A43F008037B627B6A43F004037B62AE +:103620007B6A43F040037B627B6A43F000537B621A +:103630007B6A43F4C0737B62354A7B6A1360354A08 +:103640003B8E1360344B00221A60344A3B8F136068 +:103650003B8F002B1BD0324B01221A60314A7B6B0F +:103660001360314A3B8F136000BF244B1B6803F08B +:103670000203002BF8D0214B1B68002B07DA1D4BEF +:103680001B681C4A43F000431360032325E0194BD9 +:1036900003221A6097F84830002B05D09F2001F0D4 +:1036A00063FD9F2001F08EFC104B01221A60FB7B12 +:1036B000002B11D01A4B01221A601A4A7B68136042 +:1036C000194A3B8E1360194B01221A60184A7B6815 +:1036D0001360184A3B8E1360002318462837BD46F6 +:1036E00080BD00BF9C4A002080B7084084B70840D6 +:1036F00000B7084088B708400CB4084090B70840AD +:1037000040B5084044B5084048B508404CB50840AD +:1037100050B5084054B5084058B508405CB508405D +:1037200000B0084004B008400CB0084020B0084089 +:1037300024B008402CB0084080B400AF0F4B1B7879 +:10374000DBB203F00103002B0FD10C4B1B780B4BAA +:103750001B78DBB203F08043002B06D1074B1B78AC +:10376000DBB203F00053002B01D0012300E0002363 +:10377000DBB21846BD4680BC704700BF90B708401A +:1037800080B588B000AF03463A60FB710B46BB8042 +:10379000374B1B68002B07DA364B1B68354A43F062 +:1037A0000043136003235FE0314B1B6803F0804349 +:1037B000002B07D02F4B1B682E4A43F08043136029 +:1037C000022351E02A4B1B6803F00053002B07D063 +:1037D000284B1B68274A43F000531360012343E042 +:1037E0009F2001F039FC244B00221A6000BF234BBC +:1037F0001B6803F08043B3F1804FF7D1204A07F1F3 +:103800000C0312681A601F4A07F10C030433126894 +:103810001A601D4A07F10C03083312681A601B4A2C +:1038200007F10C030C3312681A60124B1B68114A23 +:1038300043F0030313600023FB770DE0FA7FFB7F67 +:1038400039680B4407F120010A4412F8142CD2B253 +:103850001A70FB7F0133FB77FA7FFB799A42EDD335 +:103860000B4B00221A70002318462037BD4680BD3E +:1038700090B7084088B7084000B7084050B50840E6 +:1038800070B5084074B5084078B508407CB508406C +:103890009C4A002080B58AB000AFBA607B600346C6 +:1038A000FB730B46BB73BB7B9BB23A8ED31A3B8434 +:1038B0006A4B03221A706A4B01221A60694B032279 +:1038C0001A60694B02221A60684B03221A60684A28 +:1038D00097F83C30136000BF654B1B68002BFADB88 +:1038E000644B1B6803F00053002B07D05F4B1B6831 +:1038F0005E4A43F0005313600123ABE097F8443075 +:10390000013BDBB23B74002387F8233011E097F8CA +:103910002330BA681A4497F823300133127807F13C +:1039200028010B4403F8182C97F82330013387F84B +:10393000233097F823300C2BE9D997F84430032B28 +:1039400001D100237B770023BB770023FB7707F1AE +:103950001003494A1B681360484A7B691360484A50 +:10396000BB691360474AFB69136097F84430013B19 +:10397000DB047B62BB7B012B07D9BB7B023B5B106B +:103980009B051A467B6A13437B627B6A43F4802360 +:103990007B627B6A43F008037B627B6A43F04003EF +:1039A0007B627B6A43F000537B627B6A43F4C073A3 +:1039B0007B62354A7B6A1360344A3B8C1360344B1C +:1039C00000221A60334A3B8F13603B8F002B1BD0C1 +:1039D000314B01221A60314A7B6B1360304A3B8FB6 +:1039E000136000BF234B1B6803F00203002BF8D0C9 +:1039F000204B1B68002B07DA1C4B1B681B4A43F04B +:103A000000431360032325E0184B03221A6097F844 +:103A10004830002B05D09F2001F0A6FB9F2001F02D +:103A2000D1FA104B01221A60FB7B002B11D01A4BEC +:103A300001221A60194A7B681360194A3B8C136093 +:103A4000184B01221A60184A7B681360174A3B8C96 +:103A50001360002318462837BD4680BD9C4A0020CD +:103A600080B7084084B7084000B7084088B70840CE +:103A70000CB4084090B7084040B5084044B5084031 +:103A800048B508404CB5084050B5084054B508400A +:103A900058B508405CB5084000B0084004B0084084 +:103AA0000CB0084020B0084024B008402CB00840BA +:103AB00080B500AFFFF740FE0346184680BD80B5D5 +:103AC0008AB000AFB9607B600346FB731346BB81CD +:103AD000FB7B9BB2BA89D31ABB844A4B1B68002B71 +:103AE00007DA494B1B68484A43F00043136003233D +:103AF00084E0444B1B6803F08043002B07D0424B0B +:103B00001B68414A43F080431360022376E03D4B3B +:103B10001B6803F00053002B07D03B4B1B683A4A4D +:103B200043F000531360012368E09F2001F094FAF2 +:103B3000364B00221A6000BF354B1B6803F08043F0 +:103B4000B3F1804FF7D1334A07F1140312681A60BA +:103B5000314A07F11403043312681A602F4A07F13F +:103B60001403083312681A602D4A07F114030C334A +:103B700012681A60244B1B68234A43F00303136046 +:103B8000002387F8273011E097F8272097F827308F +:103B900079680B4407F128010A4412F8142CD2B2B8 +:103BA0001A7097F82730013387F8273097F82720C5 +:103BB000FB7B9A42E8D3002387F8263015E097F87C +:103BC00026307A6813441A78B98C97F826300B445B +:103BD0001946BB680B441B789A4201D004230DE0C0 +:103BE00097F82630013387F8263097F82620FB7B9C +:103BF0009A42E4D30B4B00221A7000231846283750 +:103C0000BD4680BD90B7084088B7084000B708405F +:103C100050B5084070B5084074B5084078B5084004 +:103C20007CB508409C4A002080B485B000AF786025 +:103C30007B68124A934210D0104A934203D8104A2C +:103C4000934207D012E00F4A934209D00E4A9342A2 +:103C500009D00BE01023FB600AE01123FB6007E0B2 +:103C60001223FB6004E01323FB6001E0002300E06B +:103C7000FB6818461437BD4680BC704700A00D4055 +:103C800000900D4000B00D4000C00D4080B485B0E4 +:103C900000AFF8600B467A60FB727B6803F00103AB +:103CA000002B06D0FB6803F580631A68FB7A134388 +:103CB00006E0FB6803F580631B68FA7AD243134081 +:103CC000FA6802F5806213607B6803F00203002B40 +:103CD00006D0FB6803F584631A68FB7A134306E099 +:103CE000FB6803F584631B68FA7AD2431340FA68D1 +:103CF00002F58462136000BF1437BD4680BC704774 +:103D000080B485B000AF78600B46FB70FB78012271 +:103D100002FA03F3FB707B6803F580631B68FB60AA +:103D20007B6803F584631B68BB60FA78FB6813400B +:103D3000002B14BF01230023DBB21946FA78BB68BD +:103D40001340002B01D0022300E000230B43184650 +:103D50001437BD4680BC704780B485B000AFF860B2 +:103D60000B467A60FB727B6803F00103002B06D0E0 +:103D7000FB6803F581631A68FB7A134306E0FB686E +:103D800003F581631B68FA7AD2431340FA6802F59F +:103D9000816213607B6803F00203002B06D0FB688E +:103DA00003F204431A68FB7A134306E0FB6803F24C +:103DB00004431B68FA7AD2431340FA6802F20442C1 +:103DC00013607B6803F00403002B06D0FB6803F24A +:103DD0000C431A68FB7A134306E0FB6803F20C43BA +:103DE0001B68FA7AD2431340FA6802F20C4213605D +:103DF00000BF1437BD4680BC704780B487B000AFA9 +:103E000078600B46FB70FB78012202FA03F3FB702B +:103E10007B6803F581631B687B617B6803F2044365 +:103E20001B683B617B6803F20C431B68FB60FA78FC +:103E30007B691340002B14BF01230023DBB219461A +:103E4000FA783B691340002B01D0022300E00023E5 +:103E50000B43F978FA680A40002A01D0042200E0F6 +:103E60000022134318461C37BD4680BC704780B4FF +:103E700083B000AF78600B46FB707B6803F582630C +:103E80001A68FB78796801F5826113430B6000BF03 +:103E90000C37BD4680BC704780B483B000AF7860FB +:103EA0000B46FB707B6803F582631B68FA78D2438C +:103EB00011467A6802F582620B40136000BF0C372E +:103EC000BD4680BC704780B483B000AF78600B46BD +:103ED000FB70FB78002B04D07B6803F583631B68C1 +:103EE00003E07B6803F214431B6818460C37BD4699 +:103EF00080BC704780B483B000AF78600B46FB7025 +:103F00007B6803F21C431A46FB78136000BF0C3732 +:103F1000BD4680BC704780B582B000AF7860396024 +:103F20007868FFF781FE78603968786800F07FFF75 +:103F3000786801F047F800BF0837BD4680BD80B5FE +:103F400082B000AF78607868FFF76EFE78607868BE +:103F500001F082F8786800F09BFF00BF0837BD468B +:103F600080BD80B483B000AF78600B46FB70FB78F7 +:103F70009B001A467B6813441B6818460C37BD46E5 +:103F800080BC704780B483B000AF78600B46FB7094 +:103F90001346BB70FB789B001A467B6813441A4695 +:103FA000BB78136000BF0C37BD4680BC704780B53E +:103FB00082B000AF78600B46FB70FB780022194698 +:103FC0007868FFF763FEFB7800221946786801F0F5 +:103FD0007DFA00BF0837BD4680BD80B582B000AF16 +:103FE00078600B46FB70FB78012219467868FFF772 +:103FF0004DFEFB7800221946786801F067FA00BF91 +:104000000837BD4680BD80B582B000AF78600B46F2 +:10401000FB70FB78022219467868FFF737FEFB78C1 +:1040200000221946786801F051FA00BF0837BD46F2 +:1040300080BD80B582B000AF78600B46FB70FB7826 +:10404000022219467868FFF721FEFB780022194604 +:10405000786801F03BFA00BF0837BD4680BD80B5E7 +:1040600082B000AF78600B46FB70FB7802221946E5 +:104070007868FFF70BFEFB7800221946786801F09C +:1040800025FA00BF0837BD4680BD80B582B000AFBD +:1040900078600B46FB70FB78022219467868FFF7C0 +:1040A000F5FDFB7800221946786801F00FFA00BF91 +:1040B0000837BD4680BD80B582B000AF78600B4642 +:1040C000FB70FB78022219467868FFF7DFFDFB786A +:1040D00008221946786801F0F9F900BF0837BD4693 +:1040E00080BD80B487B000AFF8600B467A60FB7289 +:1040F00000237B61FB681D4A934201D100237B6151 +:10410000FB681B4A934201D108237B61FB68194A73 +:10411000934201D110237B61FB68174A934201D17E +:1041200018237B61FA7A7B6902FA03F33B617B68AF +:10413000012B0BD1FB6803F204731A68FB6803F2CE +:10414000047319463B6913430B600AE0FB6803F2F2 +:1041500004731A683B69DB43F96801F20471134088 +:104160000B6000BF1C37BD4680BC704700900D40FF +:1041700000A00D4000B00D4000C00D4080B485B0DF +:1041800000AF78600B46FB700023FB607B68174A2A +:10419000934201D10023FB607B68154A934201D111 +:1041A0000823FB607B68134A934201D11023FB6014 +:1041B0007B68114A934201D11823FB60FA78FB68AF +:1041C0001344012202FA03F3BB607B6803F2047319 +:1041D0001A68BB681340002B01D0012300E00023C4 +:1041E00018461437BD4680BC704700BF00900D4094 +:1041F00000A00D4000B00D4000C00D4080B485B05F +:1042000000AF78600B46FB700023FB607B68164AAA +:10421000934201D10023FB607B68144A934201D191 +:104220000823FB607B68124A934201D11023FB6094 +:104230007B68104A934201D11823FB60FA78FB682F +:1042400002FA03F3BB607B6803F5E2631A687B68DC +:1042500003F5E2631946BB6813430B6000BF1437D4 +:10426000BD4680BC704700BF00900D4000A00D40CF +:1042700000B00D4000C00D4080B485B000AF786044 +:104280000B46FB700023FB607B68164A934201D10A +:104290000023FB607B68144A934201D10823FB6032 +:1042A0007B68124A934201D11023FB607B68104A5D +:1042B000934201D11823FB60FA78FB6802FA03F3FA +:1042C000BB607B6803F5E2631A68BB68DB4379680F +:1042D00001F5E26113400B6000BF1437BD4680BC9E +:1042E000704700BF00900D4000A00D4000B00D4091 +:1042F00000C00D4080B485B000AF78600B46FB7005 +:104300000023FB607B68184A934201D10023FB60C5 +:104310007B68164A934201D10823FB607B68144AEC +:10432000934201D11023FB607B68124A934201D172 +:104330001823FB60FB78002B08D07B6803F5E36350 +:104340001A68FB6822FA03F3DBB207E07B6803F527 +:10435000E4631A68FB6822FA03F3DBB218461437E9 +:10436000BD4680BC704700BF00900D4000A00D40CE +:1043700000B00D4000C00D4080B485B000AF786043 +:104380000B46FB700023FB607B68164A934201D109 +:104390000023FB607B68144A934201D10823FB6031 +:1043A0007B68124A934201D11023FB607B68104A5C +:1043B000934201D11823FB60FA78FB6802FA03F3F9 +:1043C000BB607B6803F5E3631A687B6803F5E3630E +:1043D0001946BB6813430B6000BF1437BD4680BC51 +:1043E000704700BF00900D4000A00D4000B00D4090 +:1043F00000C00D4080B483B000AF7860054B1A68F0 +:1044000004497B6813430B6000BF0C37BD4680BC7A +:10441000704700BF94200D4080B483B000AF786037 +:10442000054B1A687B68DB43034913400B6000BFF0 +:104430000C37BD4680BC704794200D4080B483B0DB +:1044400000AF786039607B680C331A68396840F2D5 +:1044500001130B4079680C3113430B6000BF0C371C +:10446000BD4680BC704780B483B000AF78603960CF +:104470007B680C331A68396840F201130B40DB4348 +:1044800079680C3113400B6000BF0C37BD4680BC0F +:10449000704780B483B000AF786039607B680C33BC +:1044A0001B687A680C3223F4807323F001031360D5 +:1044B0007B683A68120E1A603B68DBB27A68043295 +:1044C00043F4007313603B681B0ADBB27A6808325E +:1044D00043F40073136000BF0C37BD4680BC7047C7 +:1044E00080B485B000AFF860B9601346FB71BA685C +:1044F00044F240031340BB60FB79002B05D0FB68FE +:104500000C331A68BB68134305E0FB680C331A6868 +:10451000BB68DB431340FA680C32136000BF1437EA +:10452000BD4680BC704780B485B000AFF860B9600C +:104530001346FB71BA6842F220031340BB60FB795B +:10454000002B05D0FB680C331A68BB68134305E0E9 +:10455000FB680C331A68BB68DB431340FA680C3203 +:10456000136000BF1437BD4680BC704780B485B06F +:1045700000AFF860B9607A60BA6840F60C43134047 +:10458000BB60FB680C331A68BB68DB431A40796870 +:10459000BB680B40F9680C3113430B6000BF143744 +:1045A000BD4680BC704780B485B000AFF860B9608C +:1045B0001346FB71BA6840F202231340BB60FB79DB +:1045C000002B05D0FB680C331A68BB68134305E069 +:1045D000FB680C331A68BB68DB431340FA680C3283 +:1045E000136000BF1437BD4680BC704780B485B0EF +:1045F00000AFF860B9601346FB71BB68DBB2002BFB +:1046000013D0FB79002B08D0FB6804331B68FA68D1 +:10461000043243F04003136007E0FB6804331B6877 +:10462000FA68043223F040031360BB6803F47F434D +:10463000002B13D0FB79002B08D0FB6808331B68D4 +:10464000FA68083243F04003136007E0FB68083360 +:104650001B68FA68083223F04003136000BF143768 +:10466000BD4680BC704780B485B000AFF860B960CB +:104670007A60BB68DBB2002B04D0FB6838331A4683 +:104680007B681360BB6803F47F43002B04D0FB6896 +:104690003C331A467B68136000BF1437BD4680BCAC +:1046A000704780B483B000AF786039603B68FF2BFF +:1046B00003D17B6838331B6802E07B683C331B689E +:1046C00018460C37BD4680BC704780B485B000AF3B +:1046D000F860B9607A60BB68DBB2002B04D0FB687D +:1046E00040331A467B681360BB6803F47F43002B9A +:1046F00004D0FB6844331A467B68136000BF14374C +:10470000BD4680BC704780B483B000AF786039602C +:104710003B68FF2B03D17B6840331B6802E07B685A +:1047200044331B6818460C37BD4680BC704780B4C4 +:1047300085B000AFF860B9607A60BB68DBB2002B6F +:1047400004D0FB6828331A467B681360BB6803F407 +:104750007F43002B04D0FB682C331A467B68136020 +:1047600000BF1437BD4680BC704780B483B000AF33 +:10477000786039603B68FF2B03D17B6828331B6866 +:1047800002E07B682C331B6818460C37BD4680BCA2 +:10479000704780B483B000AF786039603B68FF2B0E +:1047A00003D17B6848331B6802E07B684C331B688D +:1047B00018460C37BD4680BC704780B485B000AF4A +:1047C000F860B9607A60BB68DBB2002B04D0FB688C +:1047D00030331A467B681360BB6803F47F43002BB9 +:1047E00004D0FB6834331A467B68136000BF14376B +:1047F000BD4680BC704780B483B000AF786039603C +:104800003B68FF2B03D17B6830331B6802E07B6879 +:1048100034331B6818460C37BD4680BC704780B5E2 +:1048200084B000AFF860B9607A60FB68184A9342C0 +:104830000DD0FB68174A934207D0FB68164A934293 +:1048400001D1272304E0332302E0252300E02323C2 +:10485000FB60BB68DBB2002B06D07968F86800F01B +:10486000E6FAF86800F0AEFBBB6803F47F43002B68 +:104870000AD0FB6801337968184600F0D8FAFB6863 +:104880000133184600F09EFB00BF1037BD4680BDC7 +:1048900000000340001003400020034080B582B0B8 +:1048A00000AF786039607B68174A93420DD07B680F +:1048B000164A934207D07B68154A934201D12723B9 +:1048C00004E0332302E0252300E023237B603B68E0 +:1048D000DBB2002B05D0786800F0BEFB786800F0F2 +:1048E000D7FA3B6803F47F43002B09D07B68013380 +:1048F000184600F0B1FB7B680133184600F0C8FA97 +:1049000000BF0837BD4680BD0000034000100340D3 +:104910000020034080B483B000AF786039607B68CA +:1049200018331A687B68183319463B6813430B60C9 +:1049300000BF0C37BD4680BC704780B483B000AF69 +:10494000786039607B6818331A683B68DB437968A4 +:10495000183113400B6000BF0C37BD4680BC704758 +:1049600080B483B000AF78600B46FB70FB78002BFF +:1049700003D07B6820331B6802E07B681C331B6814 +:1049800018460C37BD4680BC704780B483B000AF7A +:10499000786039607B6824331A463B68136000BF37 +:1049A0000C37BD4680BC704780B483B000AF7860E0 +:1049B00039607B6810331A463B68136000BF0C37C0 +:1049C000BD4680BC704700BF80B584B000AF786042 +:1049D0000B46FB7000F038F8FB78002B02D00F4B31 +:1049E000FB6001E00E4BFB60FA6813469B0013442A +:1049F0009B001A467B681344591EFA6813469B00B5 +:104A000013449B00B1FBF3F3013BBB60054ABB6859 +:104A1000136000BF1037BD4680BD00BF801A06007E +:104A2000A08601000C00024080B582B000AF0346B2 +:104A3000FB7100F017F8034AFB79136000BF0837D9 +:104A4000BD4680BD0008024080B400AF044B1B6827 +:104A5000034A43F01003136000BFBD4680BC70479B +:104A60002000024080B400AF064B1B68054A43F0AB +:104A700020031360044B01221A6000BFBD4680BCB6 +:104A8000704700BF200002400408024080B400AF1D +:104A9000044B1B68034A23F01003136000BFBD469C +:104AA00080BC70472000024080B400AF064B00225B +:104AB0001A60064B1B68054A23F02003136000BFF1 +:104AC000BD4680BC704700BF040802402000024081 +:104AD00080B582B000AF78607968182000F0A7F93F +:104AE000182000F06FFA00BF0837BD4680BD80B5C2 +:104AF00000AF182000F0B0FA182000F0C9F900BF8C +:104B000080BD80B400AF034B01221A6000BFBD46D8 +:104B100080BC70471000024080B400AF044B1B689B +:104B2000034A43F00103136000BFBD4680BC7047D9 +:104B30000C08024080B483B000AF7860054B1A685F +:104B400004497B6813430B6000BF0C37BD4680BC33 +:104B5000704700BF0C08024080B400AF034B002236 +:104B60001A6000BFBD4680BC704700BF1000024005 +:104B700080B400AF044B1B68034A23F001031360A9 +:104B800000BFBD4680BC70470C08024080B483B0B3 +:104B900000AF7860054B1A687B68DB43034913401C +:104BA0000B6000BF0C37BD4680BC70470C0802404C +:104BB00080B483B000AF0346FB71FB79002B07D0B4 +:104BC000094B1B68002B14BF01230023DBB206E056 +:104BD000064B1B68002B14BF01230023DBB21846D1 +:104BE0000C37BD4680BC70471800024014000240DC +:104BF00080B483B000AF0346FB71FB79002B07D074 +:104C0000094B1B68002B14BF01230023DBB206E015 +:104C1000064B1B68002B14BF01230023DBB2184690 +:104C20000C37BD4680BC7047140802401008024093 +:104C300080B483B000AF0346FB71FB79002B02D038 +:104C4000044B1B6801E0044B1B6818460C37BD463B +:104C500080BC7047140802401008024080B400AFC6 +:104C6000044B01221A60044B01221A6000BFBD46AA +:104C700080BC70471C0002401800024080B400AFA6 +:104C8000034B01221A6000BFBD4680BC704700BFC5 +:104C90001808024080B483B000AF7860034A7B6894 +:104CA000136000BF0C37BD4680BC70471808024037 +:104CB00080B483B000AF03460A46FB711346BB7154 +:104CC000FB795A00BB791A43034B1A6000BF0C37BB +:104CD000BD4680BC704700BF0000024080B400AFFA +:104CE000064B1B6803F00103002B01D0012300E0F9 +:104CF00000231846BD4680BC704700BF0400024038 +:104D000080B400AF064B1B6803F04003002B01D0BA +:104D1000012300E000231846BD4680BC704700BF59 +:104D20000400024080B483B000AF7860034A7B681F +:104D3000136000BF0C37BD4680BC704704000240C2 +:104D400080B483B000AF0C4B1B687B607B6803F0C2 +:104D50000103002B01D0002309E07B6803F012035C +:104D6000002B03D07B6803F01C0300E000231846EF +:104D70000C37BD4680BC70470400024080B483B04D +:104D800000AF0346FB71044AFB79136000BF0C3788 +:104D9000BD4680BC704700BF0800024080B400AF31 +:104DA000024B1B681846BD4680BC70470800024095 +:104DB00080B400AF024B1B681846BD4680BC7047EC +:104DC0000408024080B483B000AF0346FB71044A7C +:104DD000FB79136000BF0C37BD4680BC704700BF35 +:104DE0000808024080B400AF024B1B681846BD465D +:104DF00080BC70470808024080B400AFFEE780B571 +:104E000000AF01F05EFC0346002B14BF012300231A +:104E1000DBB2184680BD80B500AF01F045FC03460B +:104E2000002B14BF01230023DBB2184680BD80B4E1 +:104E300085B000AF78603960134B1B68134A93420A +:104E400018D0114B1B68BB600023FB600CE0FB68B3 +:104E50009A00BB6813441B6819460C4AFB6842F869 +:104E60002310FB680133FB60FB68A22BEFD9064BD4 +:104E7000064A1A6005497B683A6841F8232000BF5A +:104E80001437BD4680BC704708ED00E000400020AC +:104E900080B483B000AF7860044A7B68044942F86C +:104EA000231000BF0C37BD4680BC70470040002077 +:104EB000F94D200080B483B000AF7860074A7B686A +:104EC00052F82330064A43F0BF6343F400331360C3 +:104ED00000BF0C37BD4680BC704700BF486E200045 +:104EE0000CED00E080B483B000AF0E4B1B6803F400 +:104EF000E0633B6000237B6009E00B4A7B6852F86B +:104F000023303A689A4206D07B6801337B607B6825 +:104F1000072BF2D900E000BF7B6818460C37BD466E +:104F200080BC70470CED00E0486E200080B485B076 +:104F300000AF78600B46FB707B689B08144A52F800 +:104F400023301B68FB607B6803F00303DB00FF2258 +:104F500002FA03F3DB431A46FB681340FB60FA785E +:104F60007B6803F00303DB0002FA03F31A46FB68D5 +:104F70001343FB607B689B08054A52F823301A46AE +:104F8000FB68136000BF1437BD4680BC704700BF8C +:104F9000686E200080B483B000AF78607B689B08A7 +:104FA000074A52F823301A687B6803F00303DB00DA +:104FB00022FA03F3DBB218460C37BD4680BC7047BB +:104FC000686E200080B483B000AF78607B68042BEB +:104FD00006D11E4B1B681D4A43F4803313602FE03B +:104FE0007B68052B06D1194B1B68184A43F4003324 +:104FF000136025E07B68062B06D1144B1B68134A0F +:1050000043F4802313601BE07B680F2B06D1104B09 +:105010001B680F4A43F00203136011E07B680F2BFB +:105020000ED97B68103B03F01F03012202FA03F143 +:105030007B68103B5B09074A52F823300A461A6026 +:1050400000BF0C37BD4680BC704700BF24ED00E0B8 +:1050500010E000E00C6F200080B483B000AF7860F7 +:105060007B68042B06D11E4B1B681D4A23F480333A +:1050700013602FE07B68052B06D1194B1B68184A7B +:1050800023F40033136025E07B68062B06D1144B14 +:105090001B68134A23F4802313601BE07B680F2BEB +:1050A00006D1104B1B680F4A23F00203136011E076 +:1050B0007B680F2B0ED97B68103B03F01F03012286 +:1050C00002FA03F17B68103B5B09074A52F8233070 +:1050D0000A461A6000BF0C37BD4680BC704700BF4F +:1050E00024ED00E010E000E0206F200080B483B0E9 +:1050F00000AF78607B68022B06D1194B1B68184AF9 +:1051000043F00043136025E07B680E2B06D1144B5F +:105110001B68134A43F0805313601BE07B680F2B1E +:1051200006D10F4B1B680E4A43F08063136011E0F9 +:105130007B680F2B0ED97B68103B03F01F03012205 +:1051400002FA03F17B68103B5B09064A52F82330F0 +:105150000A461A6000BF0C37BD4680BC704700BFCE +:1051600004ED00E0346F200080B483B000AF7860BD +:105170007B680E2B06D1144B1B68134A43F0006367 +:1051800013601BE07B680F2B06D10F4B1B680E4A88 +:1051900043F00073136011E07B680F2B0ED97B681E +:1051A000103B03F01F03012202FA03F17B68103B5E +:1051B0005B09064A52F823300A461A6000BF0C37D2 +:1051C000BD4680BC704700BF04ED00E0486F200082 +:1051D00080B582B000AF7860786801F082FA00BFD5 +:1051E0000837BD4680BD80B500AF01F07EFA0346AA +:1051F000184680BD80B400AF044B1B68034A43F0DF +:105200000103136000BFBD4680BC704798200D406D +:1052100080B400AF044B1B68034A23F00103136002 +:1052200000BFBD4680BC704798200D4080B400AFE1 +:10523000064B1B6803F00103002B01D0012300E0A3 +:1052400000231846BD4680BC704700BF98200D4023 +:1052500080B489B000AFF8600B467A60FB72254BD2 +:10526000FB610023BB613CE0FA7ABB6942FA03F3BD +:1052700003F001037B617B69002B2FD0FB681E4A82 +:10528000934213D01C4A934203D81C4A934207D03E +:105290001EE01B4A93420FD01A4A934212D017E0E5 +:1052A000194ABB6952F82330FB6114E0174ABB6905 +:1052B00052F82330FB610EE0154ABB6952F82330E7 +:1052C000FB6108E0134ABB6952F82330FB6102E03E +:1052D000084BFB6100BFFB697A681A60BB69013348 +:1052E000BB61BB69072BBFD900BF2437BD4680BC5B +:1052F000704700BF00400D4000A00D4000900D40E1 +:1053000000B00D4000C00D40DC6F2000FC6F20009D +:105310001C7020003C70200080B487B000AFF860A3 +:105320000B467A60FB7200237B61FB68634A934201 +:1053300037D0624A934203D8614A934207D0ABE028 +:10534000604A934256D0604A93427CD0A4E0FB7AF4 +:10535000012B01D100237B61FB7A022B01D10123B8 +:105360007B61FB7A042B01D102237B61FB7A082B42 +:1053700001D103237B61FB7A102B01D104237B61D4 +:10538000FB7A202B01D105237B61FB7A402B01D1D5 +:1053900006237B61FB7A802B40F0818007237B61B1 +:1053A0007DE0FB7A012B01D108237B61FB7A022B84 +:1053B00001D109237B61FB7A042B01D10A237B6194 +:1053C000FB7A082B01D10B237B61FB7A102B01D1D7 +:1053D0000C237B61FB7A202B01D10D237B61FB7AAF +:1053E000402B01D10E237B61FB7A802B59D10F23F7 +:1053F0007B6156E0FB7A012B01D110237B61FB7AA4 +:10540000022B01D111237B61FB7A042B01D11223E2 +:105410007B61FB7A082B01D113237B61FB7A102B74 +:1054200001D114237B61FB7A202B01D115237B61F1 +:10543000FB7A402B01D116237B61FB7A802B32D182 +:1054400017237B612FE0FB7A012B01D118237B61AD +:10545000FB7A022B01D119237B61FB7A042B01D14A +:105460001A237B61FB7A082B01D11B237B61FB7A1A +:10547000102B01D11C237B61FB7A202B01D11D2332 +:105480007B61FB7A402B01D11E237B61FB7A802B51 +:105490000BD11F237B6108E000237B6106E000BF86 +:1054A00004E000BF02E000BF00E000BF7B687A6953 +:1054B0001A6000BF1C37BD4680BC704700A00D407D +:1054C00000900D4000B00D4000C00D4080B489B088 +:1054D00000AFF8600B467A60FB72254BFB6100233E +:1054E000BB613CE0FA7ABB6942FA03F303F00103C3 +:1054F0007B617B69002B2FD0FB681E4A934213D03F +:105500001C4A934203D81C4A934207D01EE01B4A10 +:1055100093420FD01A4A934212D017E0194ABB693E +:1055200052F82330FB6114E0174ABB6952F823306C +:10553000FB610EE0154ABB6952F82330FB6108E0BD +:10554000134ABB6952F82330FB6102E0114BFB6147 +:1055500000BFFB697A681A60BB690133BB61BB6934 +:10556000072BBFD900BF2437BD4680BC704700BFA2 +:1055700000400D4000A00D4000900D4000B00D40D7 +:1055800000C00D405C6F20007C6F20009C6F2000ED +:10559000BC6F200080400D4080B485B000AF7860C3 +:1055A0000B46FB70644BFB607B68644A934237D0C8 +:1055B000624A934203D8624A934207D0ABE0614A01 +:1055C000934256D0604A93427CD0A4E0FB78012BF2 +:1055D00001D1594BFB60FB78022B01D15B4BFB6087 +:1055E000FB78042B01D15A4BFB60FB78082B01D1CF +:1055F000584BFB60FB78102B01D1574BFB60FB78BD +:10560000202B01D1554BFB60FB78402B01D1544B33 +:10561000FB60FB78802B40F08180524BFB607DE08B +:10562000FB78012B01D1504BFB60FB78022B01D1A1 +:105630004E4BFB60FB78042B01D14D4BFB60FB789C +:10564000082B01D14B4BFB60FB78102B01D14A4B4F +:10565000FB60FB78202B01D1484BFB60FB78402B93 +:1056600001D1474BFB60FB78802B59D1454BFB6048 +:1056700056E0FB78012B01D1434BFB60FB78022BFA +:1056800001D1424BFB60FB78042B01D1404BFB6006 +:10569000FB78082B01D13F4BFB60FB78102B01D12D +:1056A0003D4BFB60FB78202B01D13C4BFB60FB7832 +:1056B000402B01D13A4BFB60FB78802B32D1394B28 +:1056C000FB602FE0FB78012B01D1374BFB60FB78AF +:1056D000022B01D1354BFB60FB78042B01D1344BFD +:1056E000FB60FB78082B01D1324BFB60FB78102B61 +:1056F00001D1314BFB60FB78202B01D12F4BFB609C +:10570000FB78402B01D12E4BFB60FB78802B0BD11B +:105710002C4BFB6008E0084BFB6006E000BF04E098 +:1057200000BF02E000BF00E000BFFB681B68184636 +:105730001437BD4680BC704780400D4000A00D402E +:1057400000900D4000B00D4000C00D4084400D4061 +:1057500088400D408C400D4090400D4094400D40DD +:1057600098400D409C400D40A0400D40A4400D408D +:10577000A8400D40AC400D40B0400D40B4400D403D +:10578000B8400D40BC400D40C0400D40C4400D40ED +:10579000C8400D40CC400D40D0400D40D4400D409D +:1057A000D8400D40DC400D40E0400D40E4400D404D +:1057B000E8400D40EC400D40F0400D40F4400D40FD +:1057C000F8400D40FC400D4080B582B000AF7860DD +:1057D0007968A120FFF72BFBA120FFF7F3FB00BFA7 +:1057E0000837BD4680BD80B500AFA120FFF734FC6F +:1057F000A120FFF74DFB00BF80BD80B483B000AF98 +:105800000D4B1B687B600D4B1B681B027A681343B2 +:105810007B600B4B1B681B047A6813437B60094B4E +:105820001B681B067A6813437B607B6818460C373D +:10583000BD4680BC704700BF40500D4044500D40F5 +:1058400048500D404C500D4080B485B000AF78609A +:1058500039600A4B1B68FB60FB6823F03F03FB6069 +:105860007A683B681343FA681343FB60034AFB689A +:10587000136000BF1437BD4680BC704754500D40C4 +:1058800080B483B000AF786000BF0E4B1B6803F09C +:105890000103002BF9D00C4A7B681B0E13607B6858 +:1058A0001B0C0A4ADBB213607B681B0A084ADBB296 +:1058B0001360084A7B68DBB2136000BF0C37BD463B +:1058C00080BC704750500D404C500D4048500D402A +:1058D00044500D4040500D4080B483B000AF0D4B9C +:1058E0001B687B600C4B1B681B027A6813437B6050 +:1058F0000A4B1B681B047A6813437B60084B1B68C8 +:105900001B067A6813437B607B6818460C37BD46DC +:1059100080BC70475C500D4060500D4064500D409D +:1059200068500D4080B483B000AF074B1B6803F094 +:105930000103002B14BF01230023FB71FB791846E0 +:105940000C37BD4680BC704758500D4080B483B0C2 +:1059500000AF074B1B687B607B6823F001037B6013 +:10596000034A7B68136000BF0C37BD4680BC70479C +:1059700058500D4080B586B000AF03463A60FB71C9 +:105980000B46BB71BB7983F00103DBB2002B07D060 +:10599000244B1B6843F400133B61224A3B691360AC +:1059A000204B1B683B613A691F4B13403B61FB79FD +:1059B00083F00103DBB2002B03D03B6943F080731B +:1059C0003B61BB79002B02D04FF4803300E0002311 +:1059D000BB603A69BB6813433B613A693B68134358 +:1059E0003B61104A3B691360104B1B687B610023CD +:1059F000FB6008E0102000F0DBF80C4B1B687B61BB +:105A0000FB680133FB607B6903F48033BA689A4218 +:105A100004D0FB684FF6FE729342EBD900BF1837F3 +:105A2000BD4680BD00200D40F8FFFEFE04200D4065 +:105A300080B485B000AF1E4B1B68BB60BB6803F031 +:105A400007037B600023FB607B68072B2AD801A239 +:105A500052F823F0755A20007B5A2000815A20000A +:105A6000875A20008D5A2000935A2000995A20000E +:105A70009F5A20000F4BFB6014E00F4BFB6011E0BE +:105A80000E4BFB600EE00E4BFB600BE00D4BFB6022 +:105A900008E00D4BFB6005E00C4BFB6002E00C4B9B +:105AA000FB6000BFFB6818461437BD4680BC7047DA +:105AB00004200D400048E8010024F40000127A00A0 +:105AC00000093D0080841E0040420F0020A1070015 +:105AD00090D0030080B485B000AF7860094B1B689C +:105AE000FB60FB6823F4E063FB607B681B02FA68E1 +:105AF0001343FB60034AFB68136000BF1437BD46C5 +:105B000080BC704700200D4080B485B000AF1F4BB3 +:105B10001B68BB60BB681B0A03F007037B600023A4 +:105B2000FB607B68072B2BD801A252F823F000BF43 +:105B3000515B2000575B20005D5B2000635B200011 +:105B4000695B20006F5B2000755B20007B5B2000A1 +:105B50000F4BFB6014E00F4BFB6011E00E4BFB6042 +:105B60000EE00E4BFB600BE00D4BFB6008E00D4BB5 +:105B7000FB6005E00C4BFB6002E00C4BFB6000BFE0 +:105B8000FB6818461437BD4680BC704704200D40A2 +:105B90000048E8010024F40000127A0000093D00EA +:105BA00080841E0040420F0020A1070090D0030017 +:105BB00001387FF4FDAF704700BF80B400AF024BE7 +:105BC00008221A60FEE700BF74200D4080B500AFC8 +:105BD00000F07EFD00BF80BD80B582B000AF334BCA +:105BE0001B687B607B6803F00703002B0CBF01235D +:105BF0000023FB707B6803F4E063002B0CBF0123E0 +:105C00000023BB70FB78002B02D1BB78002B18D08F +:105C1000274B1B687B60FB78002B01D0012300E041 +:105C200000237A6813437B60BB78002B02D04FF4CB +:105C3000807300E000237A6813437B601C4A7B6812 +:105C400013601C4B1B681B4A43F00403136000F0F5 +:105C50003FFD184B1B68174A23F004031360FB78C1 +:105C6000002B02D1BB78002B1BD0114B1B687B6033 +:105C7000FB78002B02D06FF0070301E04FF0FF33F9 +:105C80007A6813407B60BB78002B02D06FF4E0632E +:105C900001E04FF0FF337A6813407B60044A7B6871 +:105CA000136000BF0837BD4680BD00BF04200D4013 +:105CB00000200D4010ED00E080B485B000AF7860AA +:105CC0007B681B0A03F00F03042B0BD07B681B0AB5 +:105CD00003F00F03042B05D07B681B0A03F00F03AE +:105CE000052B03D1104B1B68FB6002E00F4B1B68B8 +:105CF000FB607B681B0A03F00F030D4A52F8232058 +:105D00007B6803F00F0302FA03F3BB60FA68BB6819 +:105D10001340002B01D0012300E000231846143764 +:105D2000BD4680BC704700BF1C300D4018300D4090 +:105D3000B870200080B485B000AF78607B681B0A23 +:105D400003F00F031D4A52F823301B687A6802F0F3 +:105D50000F02012101FA02F210467A68120A02F0DB +:105D60000F02164951F82220034313600023FB6001 +:105D700002E0FB680133FB60FB680F2BF9D97B68FD +:105D80001B0A03F00F030D4A52F823301B687A6890 +:105D900002F00F02012101FA02F2D24310467A68A2 +:105DA000120A02F00F02054951F822200340136045 +:105DB00000BF1437BD4680BC704700BFA4702000F0 +:105DC00080B483B000AF78607B681B0A03F00F03D8 +:105DD0000C4A52F823301B687A6802F00F02012146 +:105DE00001FA02F210467A68120A02F00F0205491F +:105DF00051F822200343136000BF0C37BD4680BC1E +:105E0000704700BF5C70200080B483B000AF786042 +:105E10007B681B0A03F00F030C4A52F823301B68FF +:105E20007A6802F00F02012101FA02F2D243104611 +:105E30007A68120A02F00F02044951F82220034046 +:105E4000136000BF0C37BD4680BC70475C702000FB +:105E500080B483B000AF78607B681B0A03F00F0347 +:105E60000C4A52F823301B687A6802F00F020121B5 +:105E700001FA02F210467A68120A02F00F0205498E +:105E800051F822200343136000BF0C37BD4680BC8D +:105E9000704700BF7470200080B483B000AF78609A +:105EA0007B681B0A03F00F030C4A52F823301B686F +:105EB0007A6802F00F02012101FA02F2D243104681 +:105EC0007A68120A02F00F02044951F822200340B6 +:105ED000136000BF0C37BD4680BC70477470200053 +:105EE00080B483B000AF78607B681B0A03F00F03B7 +:105EF0000C4A52F823301B687A6802F00F02012125 +:105F000001FA02F210467A68120A02F00F020549FD +:105F100051F822200343136000BF0C37BD4680BCFC +:105F2000704700BF8C70200080B483B000AF7860F1 +:105F30007B681B0A03F00F030C4A52F823301B68DE +:105F40007A6802F00F02012101FA02F2D2431046F0 +:105F50007A68120A02F00F02044951F82220034025 +:105F6000136000BF0C37BD4680BC70478C702000AA +:105F700080B483B000AF7860034A7B68136000BFD1 +:105F80000C37BD4680BC704758200D4080B483B0AC +:105F900000AF064B1B687B607B6803F003037B60EC +:105FA0007B6818460C37BD4680BC704758200D40B2 +:105FB00080B483B000AF074B1B687B607B6843F005 +:105FC00001037B60034A7B68136000BF0C37BD464A +:105FD00080BC704780200D4080B483B000AF7860F3 +:105FE00039607B682C331B6823F086027B682C3376 +:105FF00019463B6813430B6000BF0C37BD4680BC9D +:10600000704780B483B000AF78607B682C331B6826 +:1060100003F0860318460C37BD4680BC704780B439 +:1060200085B000AFF860B9607A60FB683433194618 +:10603000BA687B6813430B6000BF1437BD4680BC51 +:10604000704780B487B000AFF860B9607A60FB68D1 +:1060500034331B687B617B6903F00702BB681A60FD +:106060007B6903F038027B681A6000BF1C37BD46AD +:1060700080BC704780B586B000AFF860B9607A60C8 +:106080003B60F86800F088F87B681B01BA689A42A8 +:106090000BD2FB6830331B68FA68303243F02003C0 +:1060A00013607B685B087B6007E0FB6830331B682C +:1060B000FA68303223F020031360BB68DA007B6893 +:1060C000B2FBF3F301335B087B61FB6824331A46B0 +:1060D0007B699B091360FB6828331A467B6903F0D0 +:1060E0003F031360FB682C331A463B681360FB6860 +:1060F00018331A460023136000BF1837BD4680BD11 +:1061000080B487B000AFF860B9607A603B60FB682C +:1061100024331B687B61FB6828331B683B61BB68C9 +:106120009A007B6999013B690B44B2FBF3F27B68EF +:106130001A60FB6830331B6803F02003002B04D087 +:106140007B681B685A007B681A60FB682C331B68ED +:1061500003F0EE023B681A6000BF1C37BD4680BCEE +:10616000704780B483B000AF78607B682C331B68C5 +:106170007A682C3243F0100313607B6830331B685D +:106180007A68303243F4407343F00103136000BF78 +:106190000C37BD4680BC704780B483B000AF7860D8 +:1061A00000BF7B6818331B6803F00803002BF8D18D +:1061B0007B682C331B687A682C3223F01003136041 +:1061C0007B6830331B687A68303223F4407323F0E5 +:1061D0000103136000BF0C37BD4680BC704780B41C +:1061E00083B000AF78607B682C331B687A682C32F0 +:1061F00043F01003136000BF0C37BD4680BC7047EE +:1062000080B483B000AF78607B682C331B687A68F9 +:106210002C3223F01003136000BF0C37BD4680BC46 +:10622000704780B483B000AF78600B46FB70FB789A +:10623000002B08D07B6830331B687A68303243F01B +:106240000603136007E07B6830331B687A683032DE +:1062500043F00203136000BF0C37BD4680BC70479B +:1062600080B483B000AF78607B6830331B687A6895 +:10627000303223F00603136000BF0C37BD4680BCEC +:10628000704780B483B000AF786039607B6830338A +:106290001B6823F010027B68303319463B681343B8 +:1062A0000B6000BF0C37BD4680BC704780B483B024 +:1062B00000AF78607B6830331B6803F0100318462A +:1062C0000C37BD4680BC704780B483B000AF7860A7 +:1062D0007B6818331B6803F01003002B0CBF0123ED +:1062E0000023DBB218460C37BD4680BC704780B433 +:1062F00083B000AF78607B6818331B6803F020031D +:10630000002B0CBF01230023DBB218460C37BD461F +:1063100080BC704780B483B000AF78607B6818336E +:106320001B6803F01003002B02D17B681B6801E09F +:106330004FF0FF3318460C37BD4680BC704780B421 +:1063400083B000AF786000BF7B6818331B6803F030 +:106350001003002BF8D17B681B6818460C37BD462C +:1063600080BC704780B483B000AF78600B46FB7090 +:106370007B6818331B6803F02003002B04D17B6873 +:10638000FA781A60012300E0002318460C37BD4656 +:1063900080BC704780B483B000AF78600B46FB7060 +:1063A00000BF7B6818331B6803F02003002BF8D173 +:1063B0007B68FA781A6000BF0C37BD4680BC704716 +:1063C00080B483B000AF78600B46FB70FB78002B85 +:1063D00005D07B682C331B6843F0010304E07B6825 +:1063E0002C331B6823F001037A682C32136000BF42 +:1063F0000C37BD4680BC704780B483B000AF786076 +:106400007B6818331B6803F00803002B14BF0123BB +:106410000023DBB218460C37BD4680BC704780B500 +:1064200084B000AF786039607B68094A934201D13B +:10643000152300E01623FB603968F868FEF7F7FCC7 +:10644000F868FEF7BFFD00BF1037BD4680BD00BF36 +:1064500000C0004080B584B000AF78607B68084A17 +:10646000934201D1152300E01623FB60F868FEF784 +:10647000F3FDF868FEF70CFD00BF1037BD4680BD88 +:1064800000C0004080B483B000AF786039607B68A2 +:1064900038331A687B68383319463B6813430B60FE +:1064A00000BF0C37BD4680BC704780B483B000AFDE +:1064B000786039607B6838331A683B68DB437968F9 +:1064C000383113400B6000BF0C37BD4680BC7047AD +:1064D00080B483B000AF78600B46FB70FB78002B74 +:1064E00003D07B6840331B6802E07B683C331B6849 +:1064F00018460C37BD4680BC704780B483B000AFEF +:10650000786039607B6844331A463B68136000BF8B +:106510000C37BD4680BC704780B483B000AF786054 +:1065200039607B6848331A687B68483319463B6892 +:1065300013430B6000BF0C37BD4680BC704780B46E +:1065400083B000AF786039607B6848331A683B6875 +:10655000DB437968483113400B6000BF0C37BD4600 +:1065600080BC704780B483B000AF78607B68043330 +:106570001B6803F00F0318460C37BD4680BC7047FC +:1065800080B483B000AF78607B6804331A46002380 +:10659000136000BF0C37BD4680BC704780B483B029 +:1065A00000AF786039607B6803F6C8731A463B68B1 +:1065B000136000BF0C37BD4680BC704780B483B009 +:1065C00000AF78607B6803F6C8731B6818460C3709 +:1065D000BD4680BC704780B483B000AF78607B68F4 +:1065E000A4331B687A68A43243F40043136000BFED +:1065F0000C37BD4680BC704780B483B000AF786074 +:106600007B68A4331B687A68A43223F400431360C8 +:1066100000BF0C37BD4680BC704780B483B000AF6C +:1066200078600B46FB701346BB707B68A4331A4638 +:10663000FB7813607B68A8331A46BB78136000BFF1 +:106640000C37BD4680BC704780B485B000AF786021 +:106650000B46FB7000BF7B6818331B6803F0880390 +:10666000802BF8D17B682C331B68FB60FB6823F020 +:1066700086037A682C3243F0820313607B68FA78D1 +:106680001A6000BF7B6818331B6803F08803802BF7 +:10669000F8D17B682C331A46FB68136000BF1437AF +:1066A000BD4680BC704700BFEFF3108072B67047E4 +:1066B0001C4623461846EFF3108070471C462346BD +:1066C0001846EFF3108062B670471C462346184602 +:1066D00030BF704700BF20BF704700BF40BF70474A +:1066E00000BF80F31188704700BFEFF3118070473F +:1066F0001C46234618460000032A70B414D940EA09 +:106700000105AD0704460B4622D11D6826681946CF +:10671000AE42204603F1040304F1040418D1043A04 +:10672000032A20461946F0D8541E72B102780B781D +:106730009A4208BF641806D00CE010F8012F11F837 +:10674000013F9A4206D1A142F7D1002070BC7047A8 +:10675000541EEBE7D01A70BC704700BFF0B4860738 +:1067600043D0541E002A3ED0CAB2034602E014F1C0 +:10677000FF3438D303F8012B9D07F8D1032C2BD914 +:10678000CDB245EA05250F2C45EA054516D9A4F1F9 +:1067900010073F0903F1200606EB071603F110026C +:1067A00042E9045542E902551032B242F8D104F0F0 +:1067B0000F040137032C03EB07130DD91E462246A5 +:1067C000043A032A46F8045BFAD8221F22F0030297 +:1067D0000432134404F003042CB1C9B21C4403F87E +:1067E000011B9C42FBD1F0BC704714460346C5E731 +:1067F000683D7563620000006F70656E6D6F746553 +:106800002D622D323467687A000000004343323530 +:106810003338000043433235333820536F43000090 +:106820004F70656E57534E20000000000000891124 +:1068300012239B322446AD573665BF74488CC19DE8 +:106840005AAFD3BE6CCAE5DB7EE9F7F881100801C8 +:1068500093331A22A5562C47B7753E64C99C408DC8 +:10686000DBBF52AEEDDA64CBFFF976E802218B3064 +:10687000100299132667AF763444BD554AADC3BCA8 +:10688000588ED19F6EEBE7FA7CC8F5D983310A2088 +:1068900091121803A7772E66B5543C45CBBD42AC88 +:1068A000D99E508FEFFB66EAFDD874C904428D5320 +:1068B00016619F702004A9153227BB364CCEC5DF68 +:1068C0005EEDD7FC6888E1997AABF3BA85520C4348 +:1068D00097711E60A1142805B3373A26CDDE44CF48 +:1068E000DFFD56ECE9986089FBBB72AA06638F72E4 +:1068F00014409D512225AB343006B9174EEFC7FE28 +:106900005CCCD5DD6AA9E3B8788AF19B87730E6207 +:1069100095501C41A3352A24B1163807CFFF46EE07 +:10692000DDDC54CDEBB962A8F99A708B08848195AF +:106930001AA793B62CC2A5D33EE1B7F04008C919F7 +:10694000522BDB3A644EED5F766DFF7C89940085B7 +:106950009BB712A6ADD224C3BFF136E0C1184809D7 +:10696000D33B5A2AE55E6C4FF77D7E6C0AA583B453 +:10697000188691972EE3A7F23CC0B5D14229CB38B7 +:10698000500AD91B666FEF7E744CFD5D8BB502A477 +:1069900099961087AFF326E2BDD034C1C3394A2897 +:1069A000D11A580BE77F6E6EF55C7C4D0CC685D70F +:1069B0001EE597F42880A1913AA3B3B2444ACD5B77 +:1069C0005669DF78600CE91D722FFB3E8DD604C737 +:1069D0009FF516E4A9902081BBB332A2C55A4C4B57 +:1069E000D7795E68E11C680DF33F7A2E0EE787F6D3 +:1069F0001CC495D52AA1A3B03882B193466BCF7A37 +:106A00005448DD59622DEB3C700EF91F8FF706E6F6 +:106A10009DD414C5ABB122A0B9923083C77B4E6A16 +:106A2000D5585C49E33D6A2CF11E780F683D7563CB +:106A3000620000006F70656E6D6F74652D622D329F +:106A40003467687A00000000434332353338000071 +:106A500043433235333820536F4300004F70656E27 +:106A600057534E2000000000683D7563620000002F +:106A70006F70656E6D6F74652D622D323467687A44 +:106A800000000000434332353338000043433235C1 +:106A9000333820536F4300004F70656E57534E20BC +:106AA000000000000000891112239B322446AD57DC +:106AB0003665BF74488CC19D5AAFD3BE6CCAE5DB46 +:106AC0007EE9F7F88110080193331A22A5562C4766 +:106AD000B7753E64C99C408DDBBF52AEEDDA64CB26 +:106AE000FFF976E802218B30100299132667AF7602 +:106AF0003444BD554AADC3BC588ED19F6EEBE7FA06 +:106B00007CC8F5D983310A2091121803A7772E6625 +:106B1000B5543C45CBBD42ACD99E508FEFFB66EAE5 +:106B2000FDD874C904428D5316619F702004A915C5 +:106B30003227BB364CCEC5DF5EEDD7FC6888E199C5 +:106B40007AABF3BA85520C4397711E60A1142805E5 +:106B5000B3373A26CDDE44CFDFFD56ECE9986089A5 +:106B6000FBBB72AA06638F7214409D512225AB3481 +:106B70003006B9174EEFC7FE5CCCD5DD6AA9E3B885 +:106B8000788AF19B87730E6295501C41A3352A24A5 +:106B9000B1163807CFFF46EEDDDC54CDEBB962A865 +:106BA000F99A708B088481951AA793B62CC2A5D345 +:106BB0003EE1B7F04008C919522BDB3A644EED5F55 +:106BC000766DFF7C899400859BB712A6ADD224C355 +:106BD000BFF136E0C1184809D33B5A2AE55E6C4F35 +:106BE000F77D7E6C0AA583B4188691972EE3A7F2F1 +:106BF0003CC0B5D14229CB38500AD91B666FEF7E15 +:106C0000744CFD5D8BB502A499961087AFF326E214 +:106C1000BDD034C1C3394A28D11A580BE77F6E6EF4 +:106C2000F55C7C4D0CC685D71EE597F42880A191B4 +:106C30003AA3B3B2444ACD5B5669DF78600CE91DD4 +:106C4000722FFB3E8DD604C79FF516E4A9902081D4 +:106C5000BBB332A2C55A4C4BD7795E68E11C680DB4 +:106C6000F33F7A2E0EE787F61CC495D52AA1A3B070 +:106C70003882B193466BCF7A5448DD59622DEB3C94 +:106C8000700EF91F8FF706E69DD414C5ABB122A094 +:106C9000B9923083C77B4E6AD5585C49E33D6A2C74 +:106CA000F11E780F683D7563620000006F70656EBD +:106CB0006D6F74652D622D323467687A00000000B4 +:106CC00043433235333800004343323533382053A1 +:106CD0006F4300004F70656E57534E200000000058 +:106CE000683D7563620000006F70656E6D6F74655E +:106CF0002D622D323467687A00000000434332353C +:106D00003338000043433235333820536F4300009B +:106D10004F70656E57534E2000000000683D75634C +:106D2000620000006F70656E6D6F74652D622D32AC +:106D30003467687A0000000043433235333800007E +:106D400043433235333820536F4300004F70656E34 +:106D500057534E2000000000683D7563620000003C +:106D60006F70656E6D6F74652D622D323467687A51 +:106D700000000000434332353338000043433235CE +:106D8000333820536F430000683D75636200000094 +:106D90006F70656E6D6F74652D622D323467687A21 +:106DA000000000004343323533380000434332359E +:106DB000333820536F430000683D75636200000064 +:106DC0006F70656E6D6F74652D622D323467687AF1 +:106DD000000000004343323533380000434332356E +:106DE000333820536F430000683D75636200000034 +:106DF0006F70656E6D6F74652D622D323467687AC1 +:106E0000000000004343323533380000434332353D +:106E1000333820536F430000683D75636200000003 +:106E20006F70656E6D6F74652D622D323467687A90 +:106E3000000000004343323533380000434332350D +:106E4000333820536F4300000007000000060000A5 +:106E50000005000000040000000300000002000024 +:106E600000010000000000000000000018ED00E03C +:106E70001CED00E020ED00E000E400E004E400E0B0 +:106E800008E400E00CE400E010E400E014E400E0BA +:106E900018E400E01CE400E020E400E024E400E06A +:106EA00028E400E02CE400E030E400E034E400E01A +:106EB00038E400E03CE400E040E400E044E400E0CA +:106EC00048E400E04CE400E050E400E054E400E07A +:106ED00058E400E05CE400E060E400E064E400E02A +:106EE00068E400E06CE400E070E400E074E400E0DA +:106EF00078E400E07CE400E080E400E084E400E08A +:106F000088E400E08CE400E090E400E000E100E0D0 +:106F100004E100E008E100E00CE100E010E100E045 +:106F200080E100E084E100E088E100E08CE100E045 +:106F300090E100E000E200E004E200E008E200E0AE +:106F40000CE200E010E200E080E200E084E200E019 +:106F500088E200E08CE200E090E200E080400D403A +:106F600084400D4088400D408C400D4090400D40C5 +:106F700094400D4098400D409C400D40A0400D4075 +:106F8000A4400D40A8400D40AC400D40B0400D4025 +:106F9000B4400D40B8400D40BC400D40C0400D40D5 +:106FA000C4400D40C8400D40CC400D40D0400D4085 +:106FB000D4400D40D8400D40DC400D40E0400D4035 +:106FC000E4400D40E8400D40EC400D40F0400D40E5 +:106FD000F4400D40F8400D40FC400D4000400D4095 +:106FE00004400D4008400D400C400D4010400D4045 +:106FF00014400D4018400D401C400D4020400D40F5 +:1070000024400D4028400D402C400D4030400D40A4 +:1070100034400D4038400D403C400D4040400D4054 +:1070200044400D4048400D404C400D4050400D4004 +:1070300054400D4058400D405C400D4060400D40B4 +:1070400064400D4068400D406C400D4070400D4064 +:1070500074400D4078400D407C400D4008200D40AC +:1070600018200D4028200D4038200D4048200D40AC +:10707000A8200D400C200D401C200D402C200D4060 +:107080003C200D404C200D40AC200D4010200D4008 +:1070900020200D4030200D4040200D4050200D405C +:1070A000B0200D4014200D4024200D4034200D4010 +:1070B00044200D4054200D4001000000000100005C +:1070C00000000100000000010100000004000000B9 +:1070D00000000000000000000000000000000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:10712000000000000000000000000000000000005F +:10713000000000000000000000000000000000004F +:10714000000000000000000000000000000000003F +:10715000000000000000000000000000000000002F +:10716000000000000000000000000000000000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C00000000000000000000000000000000000BF +:1071D00000000000000000000000000000000000AF +:1071E000000000000000000000000000000000009F +:1071F000000000000000000000000000000000008F +:10720000000000000000000000000000000000007E +:10721000000000000000000000000000000000006E +:10722000000000000000000000000000000000005E +:10723000000000000000000000000000000000004E +:10724000000000000000000000000000000000003E +:10725000000000000000000000000000000000002E +:10726000000000000000000000000000000000001E +:10727000000000000000000000000000000000000E +:1072800000000000000000000000000000000000FE +:1072900000000000000000000000000000000000EE +:1072A00000000000000000000000000000000000DE +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000000000009E +:1072F000000000000000000000000000000000008E +:10730000000000000000000000000000000000007D +:10731000000000000000000000000000000000006D +:10732000000000000000000000000000000000005D +:10733000000000000000000000000000000000004D +:10734000000000000000000000000000000000003D +:0C73500000000000000000000000000031 +:020000040027D3 +:0CFFD400FFFFFFF600000000000020000E +:0400000500202ED7D2 +:00000001FF diff --git a/mercator-opentestbed.yml b/mercator-opentestbed.yml new file mode 100644 index 0000000000..19662e8d5a --- /dev/null +++ b/mercator-opentestbed.yml @@ -0,0 +1,39 @@ +platform: + name: opentestbed + mqtt_broker: + # specify your MQTT broker and a token to use + host: mqtt-broker.example.com + port: 1883 + token: 123 + nodes: &nodes + # specify nodes in your testbed + - XX-XX-XX-XX-XX-XX-XX-XX + - XX-XX-XX-XX-XX-XX-XX-XX + firmware: + os: OpenWSN + path: firmwares/openwsn-openmote-b-24ghz.ihex + +measurement: + num_transactions: 10 + channels: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + tx_nodes: *nodes + tx_len: 100 + tx_interval_ms: 10 + tx_num_per_transaction: 100 + tx_fill_byte: 0x5a + +logging: + version: 1 + formatters: + default: + format: '%(asctime)s: [%(levelname)s] %(message)s' + handlers: + file: + class: logging.handlers.RotatingFileHandler + formatter: default + filename: mercator.log + maxBytes: 1048576 # 1MB + backupCount: 2 + root: + level: INFO + handlers: [file] diff --git a/mercator.yml b/mercator.yml new file mode 100644 index 0000000000..58f09146f7 --- /dev/null +++ b/mercator.yml @@ -0,0 +1,40 @@ +platform: + name: iotlab + experiment_duration_min: 60 + nodes: &nodes + - m3-2.grenoble.iot-lab.info + - m3-4.grenoble.iot-lab.info + - m3-5.grenoble.iot-lab.info + - m3-9.grenoble.iot-lab.info + - m3-11.grenoble.iot-lab.info + - m3-13.grenoble.iot-lab.info + - m3-14.grenoble.iot-lab.info + firmware: + os: OpenWSN + archi: M3 + path: firmwares/openwsn-iot-lab_M3.elf + +measurement: + num_transactions: 5 + channels: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] + tx_nodes: *nodes + tx_len: 100 + tx_interval_ms: 10 + tx_num_per_transaction: 100 + tx_fill_byte: 0x5a + +logging: + version: 1 + formatters: + default: + format: '%(asctime)s: [%(levelname)s] %(message)s' + handlers: + file: + class: logging.handlers.RotatingFileHandler + formatter: default + filename: mercator.log + maxBytes: 1048576 # 1MB + backupCount: 2 + root: + level: INFO + handlers: [file] diff --git a/code/software/__init__.py b/mercator/__init__.py similarity index 100% rename from code/software/__init__.py rename to mercator/__init__.py diff --git a/mercator/__main__.py b/mercator/__main__.py new file mode 100644 index 0000000000..2e63566647 --- /dev/null +++ b/mercator/__main__.py @@ -0,0 +1,297 @@ +import argparse +import datetime +from importlib import import_module +import logging +import logging.config +import math +import os +import signal +import sys +import threading +import time + +import tqdm +import yaml + +from mercator.node import NodeStatus + +from mercator.utils import MercatorHalo, Outfile, print_bold + +class SigIntException(Exception): + pass + +def _init_logger(config): + try: + logging.config.dictConfig(config) + except yaml.YAMLError as err: + print_bold('{0} is not a valid YAML file'.format(config_file_path)) + exit(1) + except ValueError as err: + print_bold('logging config is not loaded succesfully') + print(str(err)) + exit(1) + +def _parse_args(): + parser = argparse.ArgumentParser() + parser.add_argument('-C', dest='dump_sample_yml_file', + help='print sample YAML file for a specified platform', + choices=['iotlab', 'opentestbed'], + type=str) + parser.add_argument('-c', dest='config', help='path to config YAML file', + type=str, default='./mercator.yml') + parser.add_argument('-i', dest='exp_id', + help='attach to exp_id (only for iotlab)', + type=int) + parser.add_argument('-p', dest='program_firmware', + help='program firmware to nodes (only for opentestbed)', + default=False, action='store_true') + parser.add_argument('-o', dest='out_file_path', + help='path to an output file', + type=str, default='output.jsonl.gz') + parser.add_argument('-f', dest='overwrite_out_file', + help='overwrite an existing file', + default=False, action='store_true') + parser.add_argument('-s', '--only-platform-setup', + dest='only_platform_setup', + help='exit without measurements', + default=False, action='store_true') + parser.add_argument('-q', dest='quiet', + help='suppress console outputs', action='store_true') + return parser.parse_args() + +def _read_config(config_file_path): + if not os.path.exists(config_file_path): + print_bold('{0} is not found'.format(config_file_path)) + print_bold('use -c option to specify the path to your mercator.yml') + raise ValueError('mercator.yml is not found') + + with open(config_file_path, 'r') as f: + try: + config = yaml.safe_load(f) + except yaml.YAMLError as err: + config_file_name = os.path.basename(config_file_path) + print('cannot parse {0} as a YAML file'.format(config_file_name), + file=sys.stderr) + print(err, file=sys.stderr) + exit(1) + + # 'nodes' key may have a list of lists; flatten such a list + for node_id_list in [config['platform']['nodes'], + config['measurement']['tx_nodes']]: + assert node_id_list + if isinstance(node_id_list[0], list): + flattened_node_id_list = [node_id for node_id_sub_list in node_id_list + for node_id in node_id_sub_list] + if node_id_list == config['platform']['nodes']: + config['platform']['nodes'] = flattened_node_id_list + elif node_id_list == config['measurement']['tx_nodes']: + config['measurement']['tx_nodes'] = flattened_node_id_list + else: + raise NotImplementedError() + + return config + +def _setup_platform(platform_config, args): + module_name = 'mercator.platforms.{0}'.format(platform_config['name']) + platform_module = import_module(module_name) + + if platform_config['name'] == 'iotlab': + platform_args = {'exp_id': args.exp_id} + elif platform_config['name'] == 'opentestbed': + platform_args = {'program_firmware': args.program_firmware} + else: + raise NotImplementedError( + 'Platform {0} is not supported'.format(platform_config['name'])) + + return platform_module.Platform(platform_config, **platform_args) + +def _run_transactions(num_transactions, channels, nodes, outfile, quiet): + quit_now = False + + def _sigint_handler(sig, frame): + raise SigIntException() + + def _running_in_thread(): + tx_nodes = [node for node in nodes if node.tx_node] + num_tx_nodes = len(tx_nodes) + total_exec_num = num_transactions * len(channels) * num_tx_nodes + params = _get_measurement_params(num_transactions, channels, + num_tx_nodes) + + with tqdm.tqdm(total=total_exec_num, unit='meas', disable=quiet) as pbar: + for trans_ctr, channel, tx_node_idx in params: + tx_node = tx_nodes[tx_node_idx] + _beginning_of_measurement(pbar, + trans_ctr, channel, + tx_node_idx, num_tx_nodes) + try: + _do_measurement(nodes, tx_node, trans_ctr, channel, outfile) + except RuntimeError: + print_bold('RuntimeError occurs; stopping Mercator...') + break + + _end_of_measurement(pbar, + trans_ctr, channel, + tx_node_idx, num_tx_nodes) + if quit_now: + break + + signal.signal(signal.SIGINT, _sigint_handler) + thread = threading.Thread(target=_running_in_thread) + try: + thread.start() + thread.join() + except (KeyboardInterrupt, SigIntException): + quit_now = True + print_bold('KeyboardInterrupt/SIGINT is received; Mercator will stop.') + print_bold('Waiting for the current measurement to finish...') + thread.join() + +def _get_measurement_params(num_transactions, channels, num_tx_nodes): + trans_ctr = 0 + while trans_ctr < num_transactions: + for channel in channels: + for node_idx in range(num_tx_nodes): + yield trans_ctr, channel, node_idx + trans_ctr += 1 + +def _do_measurement(nodes, tx_node, trans_ctr, channel, outfile): + rx_nodes = [node for node in nodes if node != tx_node] + start_time_of_measurement = datetime.datetime.now() + + if not _is_every_node_idle(nodes): + raise RuntimeError('NodeStatus Error') + + _make_rx_nodes_start_listening(rx_nodes, + tx_node, channel, trans_ctr) + + # start TX and wait to finish + tx_node.start_tx(channel, trans_ctr) + tx_node.wait_tx_done() + + _make_rx_nodes_stop_listening(rx_nodes) + _save_data(outfile, tx_node, rx_nodes, + start_time_of_measurement, trans_ctr, channel) + + outfile.flush() + +def _beginning_of_measurement(pbar, trans_ctr, channel, node_idx, num_nodes): + logging.info('Beginning of measurement - ' + + 'trans_ctr: {0}, '.format(trans_ctr) + + 'channel: {0}, '.format(channel) + + 'tx_node: {0}/{1}'.format(node_idx+1, + num_nodes)) + + pbar.set_description('trans_ctr {0}'.format(trans_ctr)) + pbar.set_postfix(ch=channel, + tx_node='{0}/{1}'.format(node_idx+1, + num_nodes)) + +def _is_every_node_idle(nodes): + ret = True + threads = {} + for _idx, _node in enumerate(nodes): + thread = threading.Thread(target=_node.update_status) + thread.start() + threads[_idx] = thread + for _idx, _node in enumerate(nodes): + threads[_idx].join() + if _node.status != NodeStatus.IDLE: + logging.critical('Invalid NodeStatus at ' + + 'Node {0} '.format(_node.id) + + '{0}'.format(_node.status.name)) + ret = False + return ret + +def _make_rx_nodes_start_listening(rx_nodes, tx_node, channel, trans_ctr): + threads = {} + for _idx, _node in enumerate(rx_nodes): + thread = threading.Thread(target=_node.start_rx, + args=(channel, + tx_node.mac_addr, + trans_ctr)) + thread.start() + threads[_idx] = thread + for _idx, _node in enumerate(rx_nodes): + threads[_idx].join() + +def _make_rx_nodes_stop_listening(rx_nodes): + threads = {} + for _idx, _node in enumerate(rx_nodes): + thread = threading.Thread(target=_node.stop_rx) + thread.start() + threads[_idx] = thread + for _idx, _node in enumerate(rx_nodes): + threads[_idx].join() + +def _save_data(outfile, tx_node, rx_nodes, start_time, trans_ctr, channel): + outfile.write_data('tx', + {'datetime': start_time.isoformat(), + 'trans_ctr': trans_ctr, + 'channel': channel, + 'mac_addr': str(tx_node.mac_addr)}) + for rx_node in rx_nodes: + rx_data = {'mac_addr': str(rx_node.mac_addr), + 'rssi_records': rx_node.rssi_records} + outfile.write_data('rx', rx_data) + +def _end_of_measurement(pbar, trans_ctr, channel, node_idx, num_nodes): + logging.info('End of measurement - ' + + 'trans_ctr: {0}, '.format(trans_ctr) + + 'channel: {0}, '.format(channel) + + 'tx_node: {0}/{1}'.format(node_idx+1, + num_nodes)) + pbar.update() + +def main(): + args = _parse_args() + + if args.dump_sample_yml_file: + module_name = 'mercator.platforms.{0}'.format(args.dump_sample_yml_file) + platform_module = import_module(module_name) + platform_module.Platform.dump_sample_yml_file() + elif args.config: + if args.quiet: + print_bold('-q ("quiet") is specified. ' + + 'See mercator.log for mercator\'s activities.') + MercatorHalo.disable() + + config = _read_config(args.config) + _init_logger(config['logging']) + outfile = Outfile(args.out_file_path, config, args.overwrite_out_file) + + logging.info('Start Mercator at ' + + '"{0}" platform'.format(config['platform']['name'])) + + platform = _setup_platform(config['platform'], args) + nodes = platform.setup_measurement(config['measurement']) + + if args.only_platform_setup: + # done + pass + else: + channels = config['measurement']['channels'] + num_transactions = config['measurement']['num_transactions'] + + if num_transactions < 0: + # if we have a negative value, take it as an infinite + # value + num_transactions = math.inf + + # body of main + outfile.open() + outfile.write_data('start_time', + {'timestamp': datetime.datetime.now().isoformat()}) + _run_transactions(num_transactions, channels, nodes, outfile, + args.quiet) + for node_idx, node in enumerate(nodes): + outfile.write_data('node_info', {'node_index': node_idx, + 'mac_addr': str(node.mac_addr)}) + outfile.write_data('end_time', + {'timestamp': datetime.datetime.now().isoformat()}) + outfile.close() + else: + raise ValueError('Shouldn\'t come here') + +if __name__ == '__main__': + main() diff --git a/mercator/hdlc.py b/mercator/hdlc.py new file mode 100644 index 0000000000..4ff7ec7af7 --- /dev/null +++ b/mercator/hdlc.py @@ -0,0 +1,93 @@ +class HdlcException(Exception): + pass + +HDLC_MIN_BODY_LEN = 3 # DATA(>1)|CRC(2) + +HDLC_FLAG = b'\x7e' +HDLC_FLAG_ESCAPED = b'\x5e' +HDLC_ESCAPE = b'\x7d' +HDLC_ESCAPE_ESCAPED = b'\x5d' +HDLC_CRCINIT = 0xffff +HDLC_CRCGOOD = 0xf0b8 + +FCS16TAB = ( + 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, + 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, + 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, + 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, + 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, + 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, + 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c, + 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, + 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb, + 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, + 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, + 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, + 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, + 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1, + 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, + 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70, + 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, + 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff, + 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, + 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, + 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, + 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, + 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134, + 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, + 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3, + 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, + 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, + 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, + 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, + 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, + 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, + 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78, +) + +def _crc_iteration(crc, b): + return (crc >> 8) ^ FCS16TAB[((crc ^ b) & 0xff)] + +def hdlc_calc_crc(in_buf): + if not in_buf: + raise HdlcException('in_buf is empty') + + # calculate CRC + crc = HDLC_CRCINIT + for b in in_buf: + crc = _crc_iteration(crc, b) + crc = 0xffff - crc + + return crc.to_bytes(2, byteorder='little', signed=False) + +def hdlc_verify_crc(in_buf): + if not in_buf: + raise HdlcException('in_buf is empty') + + # assuming the last two bytes is CRC + crc = HDLC_CRCINIT + for b in (in_buf): + crc = _crc_iteration(crc, b) + return crc == HDLC_CRCGOOD + +def hdlc_escape(in_buf): + if not in_buf: + raise HdlcException('in_buf is empty') + + out_buf = bytearray(in_buf) + out_buf = out_buf.replace(HDLC_ESCAPE, + HDLC_ESCAPE+HDLC_ESCAPE_ESCAPED) + out_buf = out_buf.replace(HDLC_FLAG, + HDLC_ESCAPE+HDLC_FLAG_ESCAPED) + return out_buf + +def hdlc_unescape(in_buf): + if not in_buf: + raise HdlcException('in_buf is empty') + + out_buf = bytearray(in_buf) + out_buf = out_buf.replace(HDLC_ESCAPE+HDLC_FLAG_ESCAPED, + HDLC_FLAG) + out_buf = out_buf.replace(HDLC_ESCAPE+HDLC_ESCAPE_ESCAPED, + HDLC_ESCAPE) + return out_buf diff --git a/mercator/k7analyze.py b/mercator/k7analyze.py new file mode 100644 index 0000000000..14189dafa8 --- /dev/null +++ b/mercator/k7analyze.py @@ -0,0 +1,235 @@ +import argparse +import itertools +import gzip +import json +import os +from statistics import mean + +import matplotlib.pyplot as plt +import networkx as nx +import numpy as np +import pandas as pd +from pandas.plotting import register_matplotlib_converters +import seaborn as sns + +register_matplotlib_converters() + +CHART_NODE_DEGREE_FILE_NAME = 'chart-node_degree.png' +CHART_PDR_VS_CHANNEL_FILE_NAME = 'chart-pdr_vs_channel.png' +CHART_NUM_GOOD_CHANNELS_PER_NBR_FILE_NAME = 'chart-num_good_channels.png' +CHART_WATERFALL_RSSI_VS_PDR_FILE_NAME = 'chart-rssi_vs_pdr.png' +CHART_PDR_OVER_TIME_FILE_NAME = 'chart-pdr_over_time_from_{0}_to_{1}.png' + + +def _construct_bare_link_graph(df, node_count): + df_per_channel = pd.pivot_table(df, + values='pdr', + index=['src', 'dst', 'channel'], + aggfunc=np.mean) + df_per_channel = df_per_channel.reset_index() + df_overall = pd.pivot_table(df, values='pdr', index=['src', 'dst'], + aggfunc=np.mean) + df_overall = df_overall.reset_index() + df_overall['channel'] = 'overall' + df = pd.concat([df_per_channel, df_overall], sort=False) + + G = nx.MultiDiGraph() + G.add_edges_from([(src, dst, channel, {'avg_pdr': pdr if pdr else 0}) + for src, dst, channel, pdr in df.itertuples(index=False)]) + return G + +def _construct_valid_link_graph(bare_link_graph, min_pdr): + G = nx.Graph() + for u, v in itertools.combinations(bare_link_graph.nodes, 2): + link_u_v = bare_link_graph.get_edge_data(u, v, 'overall', + default={'avg_pdr': 0}) + link_v_u = bare_link_graph.get_edge_data(u, v, 'overall', + default={'avg_pdr': 0}) + + if ((link_u_v['avg_pdr'] >= min_pdr) + and (link_v_u['avg_pdr'] >= min_pdr)): + # if the both directions have enough PDR values, we + # consider the link as valid + overall_avg_pdr = (link_u_v['avg_pdr'] + link_v_u['avg_pdr']) /2 + G.add_edge(u, v, overall_avg_pdr=overall_avg_pdr) + return G + +def _plot_node_degree(valid_link_graph): + # plot node degree + print('Generate a chart of node degree') + plt.figure() + data = [degree for _, degree in valid_link_graph.degree] + ax = sns.distplot(data, bins=max(data), + kde=False, norm_hist=True, hist_kws={'cumulative': True}) + ax.set_xticks(range(0, max(data))) + ax.set_xlabel('Node Degree') + ax.set_xlim(0, max(data)) + ax.set_ylabel('Probability') + ax.set_ylim(0, 1) + plt.savefig(CHART_NODE_DEGREE_FILE_NAME) + plt.close() + +def _plot_pdr_vs_channel(df): + # plot PDR vs channel + print('Generate a chart of average PDR per channel, ' + + 'taking only PDR values > 0%') + plt.figure() + data = df[df['pdr'] > 0].copy() + data['pdr'] *= 100 + ax = sns.barplot(x='channel', y='pdr', data=data, + color=sns.xkcd_rgb["windows blue"]) + # add vertical lines for WiFi Channels 1, 6, 11 their center + # frequencies are roughly located at channel 12.5, 17.5, and 22.5 + # of IEEE 802.15.4 + ax.vlines(x=[1.5, 6.5, 11.5], ymin=0, ymax=100, + linestyles='dashed', colors='red') + ax.set_xlabel('IEEE 802.15.4 Channel (2.4GHz)') + ax.set_ylabel('Average Link PDR (%)') + ax.set_ylim(0, 100) + plt.savefig(CHART_PDR_VS_CHANNEL_FILE_NAME) + plt.close() + +def _plot_num_channels_having_valid_links(df, min_pdr, channels): + # plot number of channels with PDR >= min_pdr + print('Generate a chart of number of channels with ' + + 'PDR >= {0}% (min_pdr)'.format(min_pdr * 100)) + plt.figure() + data = pd.pivot_table(df, + values='pdr', + index=['src', 'dst', 'channel'], + aggfunc=np.mean) + data = data.reset_index() + data = data.loc[data['pdr'] >= min_pdr] + data = pd.pivot_table(data, + values='channel', + index=['src', 'dst'], + aggfunc=len) + data = data.reset_index() + data = data['channel'] + ax = sns.distplot(data, bins=len(channels), kde=False, + norm_hist=True, hist_kws={'cumulative': True}) + ax.set_xlabel('Number of Channels with PDR >= {0}%'.format(min_pdr * 100)) + ax.set_ylabel('Probability') + plt.savefig(CHART_NUM_GOOD_CHANNELS_PER_NBR_FILE_NAME) + plt.close() + +def _plot_waterfall_rssi_vs_pdr(df): + # plot waterfall + print('Generate a waterfall plot') + plt.figure() + data = df[df['pdr'] > 0].copy() + data = data[['mean_rssi', 'pdr']] + data['pdr'] *= 100 + ax = sns.scatterplot(x='mean_rssi', y='pdr', data=data, marker='+') + ax.set_xticks([i for i in range(-100, 0, 10)]) + ax.set_xlabel('Average RSSI (dB)') + ax.set_ylabel('PDR (%)') + ax.set_ylim(0, 110) + plt.savefig(CHART_WATERFALL_RSSI_VS_PDR_FILE_NAME) + plt.close() + +def _plot_pdr_over_time(df, src, dst, channels): + print('Generate a chart for PDR over time from {0} to {1}'.format(src, dst)) + fig = plt.figure() + data = df[(df['src']==src) & (df['dst']==dst)].copy() + # use relative time in minutes ax index, from the first + # measurement + data['timedelta'] = data['datetime'] - min(data['datetime']) + data['min'] = data.apply(lambda x: x['timedelta'].total_seconds() / 60, + axis=1) + data = data.set_index('min') + + data_mean_pdr = pd.pivot_table(data, values='pdr', index='channel', + aggfunc=np.mean) + data_mean_pdr['pdr'] *= 100 + data_mean_pdr = data_mean_pdr.T.to_dict() + + _data = pd.DataFrame(index=data.index, columns=channels, dtype=int) + _data.index.astype(data.index.dtype) + _data.rename_axis('') + del _data.index.name + pdr_values = {channel: None for channel in channels} + start_index = None + for index, row in data.iterrows(): + pdr_values[row['channel']] = row['pdr'] * 100 + if (not start_index) and (None not in pdr_values.values()): + start_index = index + _data.loc[index] = list(pdr_values.values()) + data = _data.loc[start_index:] + + axes = data.plot.line(ylim=(0, 110), use_index=True, subplots=True, + sharex=True, legend=False, + style=['red' if channel % 2 else 'blue' + for channel in channels]) + for channel, ax in zip(channels, axes): + ax.set_xlabel('Elapsed Time (min)') + ax.set_yticks([]) + ax.set_ylabel(channel, + rotation='horizontal', ha='right', va='center') + ax_right = ax.twinx() + ax_right.set_yticks([]) + ax_right.set_ylabel('{0}%'.format(int(data_mean_pdr[channel]['pdr'])), + rotation='horizontal', ha='left', va='center') + + fig = axes[0].figure + fig.text(0.07, 0.55, 'PDR (%) per IEEE802.15.4 Channel', + rotation='vertical', ha='center', va='center') + plt.savefig(CHART_PDR_OVER_TIME_FILE_NAME.format(src, dst)) + plt.close('all') + +def analyze_k7_file(k7_file_path, min_pdr, single_tx): + with gzip.open(k7_file_path, 'rt') as f: + config = json.loads(f.readline()) + df = pd.read_csv(f, header=0, + dtype={'datetime': str, 'src': int, 'dst': int, + 'channel': int, 'mean_rssi': float, + 'pdr': float, 'tx_count': int}, + na_values='None', + parse_dates=[0]) + + df['valid_link'] = df.apply(lambda x: 1 if x['pdr'] >= min_pdr else 0, + axis=1) + + bare_link_graph = _construct_bare_link_graph(df, config['node_count']) + valid_link_graph = _construct_valid_link_graph(bare_link_graph, min_pdr) + + if single_tx: + src_list = set(df['src']) + assert len(src_list) > 0 + if len(src_list) > 1: + print('Multiple TX nodes are found') + print('Cannot use --single-tx with such a K7 file') + exit(1) + else: + src = src_list.pop() + for dst in set(df['dst']): + _plot_pdr_over_time(df, src, dst, config['channels']) + else: + _plot_node_degree(valid_link_graph) + _plot_pdr_vs_channel(df) + _plot_num_channels_having_valid_links(df, min_pdr, config['channels']) + _plot_waterfall_rssi_vs_pdr(df) + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--min-pdr', dest='min_pdr', + help='minimum PDR(%%) of a valid link', + type=int, default=50) + parser.add_argument('--single-tx', dest='single_tx', + help='generate charts for a single TX case', + action='store_true', default=False) + parser.add_argument('k7_file_path', + help='path to a K7 file (.k7.gz) to analyze') + args = parser.parse_args() + + if (args.min_pdr < 0) or (args.min_pdr > 100): + raise ValueError('Invalid min_pdr value: {0}%'.format(args.min_pdr)) + min_pdr = args.min_pdr / 100.0 + + if not os.path.exists(args.k7_file_path): + raise ValueError('{0} doesn\'t exist'.format(args.raw_file_path)) + else: + analyze_k7_file(args.k7_file_path, min_pdr, args.single_tx) + +if __name__ == '__main__': + main() diff --git a/mercator/k7conv.py b/mercator/k7conv.py new file mode 100644 index 0000000000..c81fe8f8d5 --- /dev/null +++ b/mercator/k7conv.py @@ -0,0 +1,147 @@ +import argparse +import gzip +import json +import os +from statistics import mean + +def _find_node_list_and_end_time(raw_file_path): + node_list = {} + end_time = None + with gzip.open(raw_file_path, 'rt') as raw_file: + for line in raw_file: + line = json.loads(line) + if line['data_type'] == 'node_info': + node_list[line['data']['mac_addr']] = line['data']['node_index'] + elif line['data_type'] == 'end_time': + end_time = line['data']['timestamp'] + break + return node_list, end_time + +def _read_tx_line(line): + line = json.loads(line) + if line['data_type'] != 'tx': + raise ValueError('data_type ({0})is not "tx"'.format(line['data_type'])) + data = line['data'] + return data['mac_addr'], data['datetime'], data['channel'] + +def _read_rx_lines(lines_to_read, node_list, tx_count): + tuples_to_output = [] + for line in lines_to_read: + line = json.loads(line) + assert line['data_type'] == 'rx' + + data = line['data'] + rx_mac_addr = data['mac_addr'] + rssi_records = data['rssi_records'] + rx_node_id = node_list[rx_mac_addr] + + # compute mean RSSI and PDR + valid_rssi_values = [rssi for rssi in rssi_records if rssi] + rx_count = len(valid_rssi_values) + pdr = rx_count / tx_count + if pdr > 0: + mean_rssi = mean(valid_rssi_values) + else: + mean_rssi = None + + # save to the file + tuples_to_output.append((rx_node_id, mean_rssi, pdr)) + + return tuples_to_output + +def _generate_k7_header(location, config, start_time, end_time): + header = {} + header['location'] = location + header['tx_length'] = config['measurement']['tx_len'] + header['start_date'] = start_time + header['stop_date'] = end_time + header['node_count'] = len(config['platform']['nodes']) + header['channels'] = config['measurement']['channels'] + header['interframe_duration'] = config['measurement']['tx_interval_ms'] + return json.dumps(header) + '\n' + +def convert_raw_file(location, raw_file_path, out_file_path): + CSV_HEADER = 'datetime,src,dst,channel,mean_rssi,pdr,tx_count\n' + start_time = None + node_list, end_time = _find_node_list_and_end_time(raw_file_path) + if not end_time: + raise ValueError('Invalid raw file format {0}; '.format(raw_file_path) + + '"end_time" data is not found') + with gzip.open(out_file_path, 'wt') as out_file: + with gzip.open(raw_file_path, 'rb') as raw_file: + # read config line + line = json.loads(raw_file.readline()) + assert line['data_type'] == 'config' + config = line['data'] + + # shorthand + tx_count = config['measurement']['tx_num_per_transaction'] + num_nodes = len(config['platform']['nodes']) + + # read start time, and insert headers + line = json.loads(raw_file.readline()) + assert line['data_type'] == 'start_time' + start_time = line['data']['timestamp'] + header_line = _generate_k7_header(location, config, + start_time, end_time) + out_file.write(header_line) + out_file.write(CSV_HEADER) + + # read start of transaction + for line in raw_file: + try: + tx_mac_addr, timestamp, channel = _read_tx_line(line) + tx_node_id = node_list[tx_mac_addr] + except ValueError: + line = json.loads(line) + if line['data_type'] == 'end_time': + assert end_time == line['data']['timestamp'] + break + elif line['data_type'] == 'node_info': + # skip + continue + else: + raise ValueError('The current line should be ' + + '"tx" or "end_time"') + + # read RX records + lines_to_read = [raw_file.readline() + for _ in range(num_nodes-1)] + tuples_to_output = _read_rx_lines(lines_to_read, + node_list, + tx_count) + for dst, mean_rssi, pdr in tuples_to_output: + mean_rssi = ('{0:.2f}'.format(mean_rssi) + if mean_rssi else None) + out_file.write('{0},{1},{2},{3},'.format(timestamp, + tx_node_id, + dst, + channel) + + '{0},{1},{2}\n'.format(mean_rssi, + pdr, + tx_count)) + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('-l', dest='location', + help='specify "location" to be shown in K7 header', + type=str, required=True) + parser.add_argument('-o', dest='out_file_path', + help='path to a resulting K7 file (.k7.gz)', + default='output.k7.gz') + parser.add_argument('-f', dest='force', + help='overwrite an existing K7 file (.k7.gz)', + action='store_true') + parser.add_argument('raw_file_path', + help='path to a raw output file (.jsonl.gz) to convert') + args = parser.parse_args() + + if not os.path.exists(args.raw_file_path): + raise ValueError('{0} doesn\'t exist'.format(args.raw_file_path)) + elif (not args.force) and os.path.exists(args.out_file_path): + raise ValueError('{0} exists'.format(args.out_file_path)) + else: + convert_raw_file(args.location, args.raw_file_path, args.out_file_path) + +if __name__ == '__main__': + main() diff --git a/mercator/node.py b/mercator/node.py new file mode 100644 index 0000000000..4a6e087e96 --- /dev/null +++ b/mercator/node.py @@ -0,0 +1,619 @@ +import enum +import logging +import socket +import struct +import threading +import time + +import netaddr + +from mercator.hdlc import (hdlc_calc_crc, hdlc_verify_crc, + hdlc_escape, hdlc_unescape, + HDLC_FLAG, HDLC_MIN_BODY_LEN) +from mercator.utils import restore_xon_xoff, OSName + +class MsgType(enum.IntEnum): + REQ_ST = 1 + RESP_ST = 2 + REQ_IDLE = 3 + REQ_TX = 4 + IND_TXDONE = 5 + REQ_RX = 6 + IND_RX = 7 + IND_UP = 8 + RESP_IDLE = 10 + RESP_TX = 11 + RESP_RX = 12 + + +class RxFlag(enum.IntFlag): + GOOD_CRC = 128 + RIGHT_FRAME = 64 + EXPECTED_FLAGS = 192 # GOOD_CRC | RIGHT_FRAME + +class NodeStatus(enum.IntEnum): + STOPPING_RX = 0 # internal use + IDLE = 1 + TXDONE = 2 + TX = 3 + RX = 4 + UNKNOWN = -1 + +class Node(object): + MAX_REQUEST_RETRIES = 3 + STATUS_POLLING_INTERVAL = 0.5 + DUMMY_TX_POWER_VALUE = 0 + + def __init__(self, platform): + self.platform = platform + + # initialize variables for thread + self.keep_receiving_thread = None + self.lock = threading.Lock() + + # for serial communication + self.serial_leftover = b'' + + # for measurements + self._status = NodeStatus.UNKNOWN + self.tx_node = False + self.tx_power_dbm = None + self.tx_len = None + self.tx_num_pk = None + self.tx_ifdur_ms = None + self.tx_fill_byte = None + self.rssi_records = None + self.current_channel = None + self.current_trans_ctr = None + self.current_tx_mac_addr = None + + def setup(self, config): + # mercator related + # Note: OpenWSN doesn't support tx_power_dbm; see + # 03oos_mercator.c in openwsn-fw repository. set a dummy value + if self.platform.firmware_os_name == OSName.OpenWSN: + self.tx_power_dbm = self.DUMMY_TX_POWER_VALUE + else: + raise NotImplementedError('{0} is not supported'.format( + self.platform.firmware_os_name)) + self.tx_node = self._am_i_tx_node(config['tx_nodes']) + self.tx_len = config['tx_len'] + self.tx_num_pk = config['tx_num_per_transaction'] + self.tx_ifdur_ms = config['tx_interval_ms'] + self.tx_fill_byte = config['tx_fill_byte'] + self.rssi_records = [None] * self.tx_num_pk + + self._setup() # platform-specific setup method + + # make sure to get the node IDLE + status, self.mac_addr = self.request_status() + if status != NodeStatus.IDLE: + self.request_idle() + self._status = NodeStatus.IDLE + + @property + def status(self): + with self.lock: + return self._status + + @status.setter + def status(self, status): + with self.lock: + self._status = status + + def request_status(self): + result = self._issue_command(self._send_req_st, + self._recv_resp_st) + if result: + node_status = result[0] + mac_addr = result[1] + else: + node_status = None + mac_addr = None + return node_status, mac_addr + + def request_idle(self): + result = self._issue_command(self._send_req_idle, + self._recv_resp_idle) + # change the status to IDLE as we received RESP_IDLE + if result: + assert result[0] is True + self.status = NodeStatus.IDLE + else: + # do nothing + pass + + def update_status(self): + self.status, _ = self.request_status() + + def wait_ind_up(self): + logging.info('Wait for IND_UP from {0}'.format(self.id)) + msg = self._recv_msg() + if msg and (msg[0] == MsgType.IND_UP): + # done + pass + else: + # IND_UP is gone somewhere; this is normal especially + # running on FIT/IoT-LAB where IND_UP may be sent before + # establishing a WebSocket connection + logging.info('No IND_UP from {0}'.format(self.id)) + + def wait_until_status(self, target_node_status): + # we assume we have a thread working to change the node status + while self.status != target_node_status: + time.sleep(self.STATUS_POLLING_INTERVAL) + + def start_tx(self, channel, trans_ctr): + assert not self.current_channel + assert not self.current_trans_ctr + self.current_channel = channel + self.current_trans_ctr = trans_ctr + self.current_tx_mac_addr = self.mac_addr.value + + done = False + retry_count = 0 + while (not done) and (retry_count <= self.MAX_REQUEST_RETRIES): + if retry_count > 0: + logging.info('Retry REQ_TX to {0}'.format(self.id)) + result = self._issue_command(self._send_req_tx, + self._recv_resp_tx, + retry=False) + if result and (result[0] == MsgType.RESP_TX): + # we may receive RESP_ST for a retried REQ_ST sent + # before REQ_TX + self.status = NodeStatus.TX + done = True + else: + # no RESP_TX is received in time; check status + result = self._issue_command(self._send_req_st, + self._recv_resp_tx) + if result: + if result[0] == MsgType.RESP_TX: + # receive a delayed RESP_TX + self.status = NodeStatus.TX + done = True + elif result[0] == MsgType.IND_TXDONE: + # RESP_TX was dropped for some reason; but we + # receive an IND_TXDONE, which means the + # node's status is TX + self.status = NodeStatus.TX + done = True + else: + # RESP_TX was dropped for some reason; but we + # receive a RESP_ST + assert result[0] == MsgType.RESP_ST + if result[1] == NodeStatus.TX: + # it's in TX + self.status = NodeStatus.TX + done = True + else: + # retry REQ_TX + retry_count += 1 + else: + err_str = ('Node {0} doesn\'t respond '.format(self.id) + + 'to REQ_ST') + logging.critical(err_Str) + raise RuntimeError(err_str) + if done: + # REQ_TX succeeds + pass + else: + err_str = ('Node {0} doesn\'t respond '.format(self.id) + + 'to REQ_TX') + logging.critical(err_str) + raise RuntimeError(err_str) + + def wait_tx_done (self): + # a set of transmissions takes (tx_num_pk * tx_ifdur_ms) at + # least + logging.info('Wait for IND_TXDONE from {0}'.format(self.id)) + wait_time_seconds = self.tx_num_pk * self.tx_ifdur_ms / 1000 + time.sleep(wait_time_seconds) + + # we may receive RESP_ST, which was sent in start_tx() + done = False + while not done: + msg = self._recv_msg() + if msg: + if msg[0] == MsgType.IND_TXDONE: + done = True + elif msg[0] == MsgType.RESP_ST: + # we expect IND_TXDONE is come after; continue + # receiving + logging.info('Ignore RESP_ST from {0}'.format(self.id)) + pass + else: + err_str = ('Unexpected MsgType ' + + '{0} '.format(MsgType(msg[0]).name) + + 'from {0}'.format(self.id)) + # shouldn't happen + logging.critical(err_str) + raise RuntimeError(err_str) + else: + # IND_TXDONE seems to have been dropped for some + # reason... let's forget that response + logging.error('IND_TXDONE from {0} '.format(self.id) + + 'may be dropped') + done = True + + self.request_idle() + self.current_channel = None + self.current_trans_ctr = None + self.current_tx_mac_addr = None + + def start_rx(self, channel, src_mac, trans_ctr): + assert not self.current_channel + assert not self.current_trans_ctr + assert not self.current_tx_mac_addr + self.current_channel = channel + self.current_trans_ctr = trans_ctr + self.current_tx_mac_addr = src_mac.value + + result = self._issue_command(self._send_req_rx, self._recv_resp_rx) + if result: + assert result[0] is True + # change the node state to RX + self.status = NodeStatus.RX + else: + err_str = ('Node {0} doesn\'t respond '.format(self.id) + + 'to REQ_RX') + logging.critical(err_str) + raise RuntimeError(err_str) + + # start receiving IND_RX + thread = threading.Thread(target=self._keep_receiving, + args=(channel, src_mac, trans_ctr)) + thread.start() + self.keep_receiving_thread = thread + + def stop_rx(self): + self.status = NodeStatus.STOPPING_RX + self.keep_receiving_thread.join() + self.keep_receiving_thread = None + self.request_idle() + + assert self.status == NodeStatus.IDLE + + self.current_channel = None + self.current_trans_ctr = None + self.current_tx_mac_addr = None + + def _setup(self): + pass + + def _am_i_tx_node(self, tx_nodes): + raise NotImplementedError() + + def _issue_command(self, send_req, recv_resp, retry=True): + err = [] + result = [] + + def _proces_req_and_resp(): + retry_count = 0 + done = False + while not done: + if ((retry_count > 0) and + (retry_count <= self.MAX_REQUEST_RETRIES)): + logging.info('Retry {0} to {1}'.format(req_type.name, + self.id)) + elif retry_count > self.MAX_REQUEST_RETRIES: + err_str = ('Node {0} doesn\'t '.format(self.id) + + 'respond to {0}'.format(req_type.name)) + logging.critical(err_str) + err.append(RuntimeError(err_str)) + done = True + continue + else: + assert retry_count == 0 + + try: + req_type = send_req() + msg = self._recv_msg() + + while msg: + return_values = recv_resp(msg) + if return_values: + break + else: + # check if we have another msg in the buffer + resp_type = MsgType(msg[0]) + logging.info('Ignore {0} '.format(resp_type.name) + + 'from {0}'.format(self.id)) + msg = self._recv_msg() + + if msg: + assert return_values + # the request is successfully processed by the node + result.extend(return_values) + done = True + elif retry: + # no response from the node in time; try it again + assert not msg + retry_count += 1 + else: + # we didn't receive a response in time; but don't + # retry + assert not msg + done = True + except Exception as e: + err.append(e) + done = True + + thread = threading.Thread(target=_proces_req_and_resp) + thread.start() + thread.join() + if err: + raise err.pop() + return tuple(result) + + + def _send_req_st(self): + req = struct.pack('>B', MsgType.REQ_ST) + self._send_msg(req) + return MsgType.REQ_ST + + def _recv_resp_st(self, msg): + assert msg + if msg[0] == MsgType.RESP_ST: + _, status, _, mac_addr = struct.unpack('>BBHQ', msg) + return NodeStatus(status), netaddr.EUI(mac_addr) + else: + return None + + def _send_req_idle(self): + req = struct.pack('>B', MsgType.REQ_IDLE) + self._send_msg(req) + return MsgType.REQ_IDLE + + def _recv_resp_idle(self, msg): + if msg[0] == MsgType.RESP_IDLE: + return [True] + else: + return None + + def _send_req_tx(self): + req = struct.pack('>BBbHHHBB', + MsgType.REQ_TX, + self.current_channel, + self.tx_power_dbm, + self.current_trans_ctr, + self.tx_num_pk, + self.tx_ifdur_ms, + self.tx_len, + self.tx_fill_byte) + self._send_msg(req) + return MsgType.REQ_TX + + def _recv_resp_tx(self, msg): + assert msg + msg_type = MsgType(msg[0]) + # RESP_ST and IND_TX could be received during a REQ_TX process + if msg_type in [MsgType.RESP_TX, MsgType.IND_TXDONE]: + return [msg_type] + elif msg_type == MsgType.RESP_ST: + node_status, _ = self._recv_resp_st(msg) + return [MsgType.RESP_ST, node_status] + else: + return None + + def _send_req_rx(self): + req = struct.pack('>BBQHBB', + MsgType.REQ_RX, + self.current_channel, + self.current_tx_mac_addr, + self.current_trans_ctr, + self.tx_len, + self.tx_fill_byte) + self._send_msg(req) + return MsgType.REQ_RX + + def _recv_resp_rx(self, msg): + assert msg + if msg[0] == MsgType.RESP_RX: + self.status = NodeStatus.RX + return [True] + else: + return None + + def _recv_ind_rx(self, msg): + assert msg + msg_type = MsgType(msg[0]) + if msg_type in [MsgType.RESP_RX, MsgType.RESP_IDLE]: + # we can ignore RESP_RX, which can be seen if we retried + # REQ_RX. RESP_IDLE should be received at the end of a + # measurement + return [msg_type] + elif msg_type == MsgType.IND_RX: + _, length, rssi, flags, pkctr = (struct.unpack('>BBbBH', msg)) + return [msg_type, length, rssi, flags, pkctr] + else: + err_str = ('Unexpected MsgType {0} '.format(msg_type.name) + + 'from {0}'.format(self.id)) + logging.critical(err_str) + raise RuntimeError(err_str) + + def _send_msg(self, msg): + crc = hdlc_calc_crc(msg) + hdlc_frame = HDLC_FLAG + hdlc_escape(msg+crc) + HDLC_FLAG + logging.info('Send {0} to {1}'.format(MsgType(msg[0]).name, + self.id)) + logging.debug('Request HDLC frame to {0}: '.format(self.id) + + '{0}'.format(hdlc_frame.hex())) + self._platform_send(hdlc_frame) + + def _recv_msg(self): + if self.serial_leftover: + assert self.serial_leftover.startswith(HDLC_FLAG) + serial_bytes = self.serial_leftover + hdlc_frame_end_index = serial_bytes.find(HDLC_FLAG, 1) + self.serial_leftover = b'' + else: + serial_bytes = b'' + hdlc_frame_end_index = -1 + + # recv() until we have a complete message which should be + # surrounded by HDLC_FLAG, and larger than 2 bytes + while hdlc_frame_end_index == -1: + chunk = self._platform_recv() + + if chunk: + logging.debug('Recv serial bytes from {0}: '.format(self.id) + + '{0}'.format(chunk.hex())) + if serial_bytes or chunk.startswith(HDLC_FLAG): + serial_bytes += chunk + garbage = b'' + elif chunk.find(HDLC_FLAG) == -1: + # no HDLC_FLAG is found + garbage = serial_bytes + else: + # found at least one HDLC_FLAG in chunk + hdlc_flag_index = chunk.find(HDLC_FLAG) + garbage = chunk[:hdlc_flag_index] + serial_bytes += chunk[hdlc_flag_index:] + + if garbage: + # garbage; recv() again + logging.error('Discard chunk from ' + + '{0} '.format(self.id) + + 'since it seems garbage: ' + + '{0}'.format(chunk.hex())) + + if serial_bytes.find(HDLC_FLAG+HDLC_FLAG) == -1: + # do nothing + pass + else: + # if we have two HDLC_FLAG side by side, remove + # one of them + serial_bytes = serial_bytes.replace(HDLC_FLAG+HDLC_FLAG, + HDLC_FLAG) + else: + # no data is received + self.serial_leftover = serial_bytes + serial_bytes = b'' + break + + assert serial_bytes.startswith(HDLC_FLAG) + hdlc_frame_end_index = serial_bytes.find(HDLC_FLAG, 1) + + # returning only a complete message; the rest is set to + # serial_leftover + if serial_bytes: + assert hdlc_frame_end_index > 0 + # we will use the end of HDLC_FLAG as the start of a next + # frame + next_hdlc_frame_start_index = hdlc_frame_end_index + assert next_hdlc_frame_start_index <= len(serial_bytes) + self.serial_leftover = ( + serial_bytes[next_hdlc_frame_start_index:] + ) + hdlc_frame = serial_bytes[:next_hdlc_frame_start_index] + if self.serial_leftover.startswith(HDLC_FLAG): + _start_index = 0 + garbage = b'' # nothing + else: + # we have garbage in serial_leftover + _start_index = self.serial_leftover.find(HDLC_FLAG) + assert _start_index != 0 + + if _start_index == -1: + garbage = self.serial_leftover + else: + garbage = self.serial_leftover[:_start_index] + self.serial_leftover = self.serial_leftover[_start_index:] + logging.debug('Keep incomplete HDLC frames from ' + + '{0}, '.format(self.id) + + '{0} '.format(len(self.serial_leftover)) + + 'bytes') + if garbage: + logging.error('Discard serial bytes from ' + + '{0} '.format(self.id) + + 'since it seems garbage: ' + + '{0}'.format(garbage.hex())) + else: + hdlc_frame = b'' # an empty HDLC frame + + # retrieve a Mercator message in the HDLC frame + if hdlc_frame: + assert hdlc_frame.startswith(HDLC_FLAG) + assert not hdlc_frame.endswith(HDLC_FLAG) + if self.platform.firmware_os_name == OSName.OpenWSN: + hdlc_frame = restore_xon_xoff(hdlc_frame) + logging.debug('Recv HDLC frame(s) from {0}: '.format(self.id) + + '{0}'.format(hdlc_frame.hex())) + hdlc_body = hdlc_frame[1:] + hdlc_body = hdlc_unescape(hdlc_body) + if len(hdlc_body) < HDLC_MIN_BODY_LEN: + # invalid length + msg = b'' + if hdlc_verify_crc(hdlc_body): + assert len(hdlc_body) > 2 + msg = hdlc_body[:-2] # remove CRC + else: + msg = b'' + + if msg: + msg_type = MsgType(msg[0]) + if msg_type == MsgType.IND_RX: + # we don't want to log a reception of IND_RX, + # which will be overwhelming + pass + else: + assert msg + logging.info('Recv {0} from {1}'.format(msg_type.name, + self.id)) + else: + msg = b'' # an empty msg + + return msg + + def _platform_send(self, msg): + raise NotImplementedError() + + def _platform_recv(self): + raise NotImplementedError() + + def _keep_receiving(self, channel, src_mac, trans_ctr): + msg = bytearray() + prev_pkctr = -1 + self.rssi_records = [None] * self.tx_num_pk + while self.status == NodeStatus.RX: + msg = self._recv_msg() + while msg: + result = self._recv_ind_rx(msg) + if result[0] == MsgType.IND_RX: + length, rssi, flags, pkctr = result[1:] + logging.debug('Recv IND_RX from {0}: '.format(self.id) + + 'pkctr {0}, rssi {1}'.format(pkctr, rssi)) + assert length == self.tx_len + assert flags == RxFlag.EXPECTED_FLAGS + prev_pkctr = self._store_rx_record(rssi, pkctr, prev_pkctr) + elif result[0] == MsgType.RESP_RX: + logging.info('Ignore RESP_RX from {0}'.format(self.id)) + elif result[0] == MsgType.RESP_IDLE: + # end of this measurement + logging.info('Recv RESP_IDLE from {0}'.format(self.id)) + self.status = NodeStatus.IDLE + else: + logging.critical('Recv {0} '.format(MsgType(msg_type).name) + + 'from {0}, '.format(self.id) + + 'which is not expected') + assert False + msg = self._recv_msg() + + + def _store_rx_record(self, rssi, pkctr, prev_pkctr): + if pkctr == prev_pkctr: + logging.error('Node {0} '.format(self.id) + + 'received a duplicate packet ' + + '(pkctr:{0})'.format(pkctr)) + elif pkctr > prev_pkctr: + assert prev_pkctr < pkctr + + self.rssi_records[pkctr] = rssi + else: + logging.critical('Recv IND_RX from {0} '.format(self.id) + + 'having pkctr {0} '.format(pkctr) + + '< prev_pkctr {0}'.format(prev_pkctr)) + assert False + + return pkctr diff --git a/mercator/platforms/__init__.py b/mercator/platforms/__init__.py new file mode 100644 index 0000000000..845e84ce1d --- /dev/null +++ b/mercator/platforms/__init__.py @@ -0,0 +1,30 @@ +import yaml + +class Platform(object): + def __init__(self, config, *args): + raise NotImplementedError() + + def setup_measurement(self, config): + raise NotImplementedError() + + @classmethod + def dump_sample_yml_file(cls): + cls._dump_config_measurement() + cls._dump_config_platform() + + @staticmethod + def _dump_config_measurement(): + config = {} + config['num_transactions'] = 10 + config['channels'] = [11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26] + config['tx_len'] = 100 + config['tx_interval_ms'] = 10 + config['tx_num_per_transaction'] = 100 + config['tx_fill_byte'] = 0x5a + + print(yaml.dump({'measurement': config}, default_flow_style=False)) + + @staticmethod + def _dump_config_platform(): + raise NotImplementedError diff --git a/mercator/platforms/iotlab.py b/mercator/platforms/iotlab.py new file mode 100644 index 0000000000..3c31d9e556 --- /dev/null +++ b/mercator/platforms/iotlab.py @@ -0,0 +1,426 @@ +"""https://www.iot-lab.info +https://www.iot-lab.info/tutorials/submit-experiment-m3-clitools/ +""" + +import datetime +import hashlib +import json +import logging +import os +import re +import socket +import sys +import threading +import time + +import dateutil.parser +import dateutil.tz +import iotlabcli.auth +import iotlabcli.parser.auth +import iotlabclient.client +import websocket +import yaml + +from mercator.hdlc import HDLC_FLAG +import mercator.node +import mercator.platforms +from mercator.utils import print_bold, MercatorHalo, OSName + +LOCAL_IP_ADDRESS = '127.0.0.1' +IOT_LAB_DOMAIN_NAME = 'iot-lab.info' + +class Platform(mercator.platforms.Platform): + POOLING_INTERVAL_SECONDS = 5 + + def __init__(self, config, exp_id): + # make sure we have the user credentials saved locally + self.username, password = self._get_credentials() + + # collect nodes and identify the test site + self.nodes = [Node(self, hostname) for hostname in config['nodes']] + sites = set([node.site for node in self.nodes]) + if len(sites) == 0: + raise ValueError('Invalid format for nodes in yml file') + elif len(sites) > 1: + raise ValueError('Cannot use nodes over multiple sites') + self.site = sites.pop() + + # setup iot-lab-client instance + client_configuration = iotlabclient.client.Configuration() + client_configuration.username = self.username + client_configuration.password = password + self.api_client = iotlabclient.client.ApiClient(client_configuration) + + # collect experiment settings + self.exp_id = exp_id + self.experiment_duration_min = config['experiment_duration_min'] + self.firmware_name = self._prepare_firmware(config['firmware']) + self.firmware_os_name = OSName(config['firmware']['os'].lower()) + self.token = None + + def setup_measurement(self, config): + # make sure we don't have an active experiment of the same + # configuration + experiment_name = self._get_experiment_name() + + # submit an experiment + if self.exp_id: + if self.exp_id != self._get_exp_id(experiment_name): + print_bold('exp_id {0} is not found on the system'.format( + self.exp_id) + ) + print_bold('Retry without -i {0} option'.format(self.exp_id)) + exit(1) + else: + self.exp_id = self._submit_experiment(experiment_name, config) + + # wait until the experiment is scheduled + scheduled_date = self._get_scheduled_date() + + # wait until the experiment get started + self._wait_until_experiment_starts(scheduled_date) + + # reset the nodes + self._reset_nodes() + + # get a token for WebSocket + self.token = self._get_token() + + # setting up nodes + self._setup_nodes(config) + + return self.nodes + + @staticmethod + def _dump_config_platform(): + config = {} + config['name'] = 'iotlab' + config['duration_min'] = 60 + config['nodes'] = ['m3-x.site.iot-lab.info', + 'm3-y.site.iot-lab.info', + 'm3-z.site.iot-lab.info'] + config['firmware'] = {} + config['firmware']['os'] = 'OpenWSN' + config['firmware']['archi'] = 'M3' + config['firmware']['path'] = 'firmwares/openwsn-iot-lab_M3.elf' + + print(yaml.dump({'platform': config}, default_flow_style=False)) + + @staticmethod + def _get_credentials(): + if not os.path.exists(iotlabcli.auth.RC_FILE): + username = input('User Name of FIT/IoT-LAB: ') + sys.stdout.flush() + parser = iotlabcli.parser.auth.parse_options() + opts = parser.parse_args(['-u', username]) + try: + assert (iotlabcli.parser.auth.auth_parse_and_run(opts) + == 'Written') + except RuntimeError as err: + assert str(err) == 'Wrong login:password' + print_bold('Login failed') + print('Wrong login username and/or password') + exit(1) + + spinner = MercatorHalo(text='Identifying credentials for FIT/IoT-LAB') + username, password = iotlabcli.auth.get_user_credentials() + if not password: + spinner.stop_failure() + print_bold('Password is empty, something worng') + print('Removing {0}, and exit'.format(iotlabcli.auth.RC_FILE)) + os.remove(iotlabcli.auth.RC_FILE) + exit(1) + else: + spinner.stop_success() + + return username, password + + def _setup_nodes(self, config): + spinner = MercatorHalo(text='Setting up nodes') + + threads = [] + for node in self.nodes: + thread = threading.Thread(target=node.setup, args=(config,)) + thread.start() + threads.append(thread) + for thread in threads: + thread.join() + + # all the nodes should be IDLE + for node in self.nodes: + if node.status != mercator.node.NodeStatus.IDLE: + spinner.stop_failure() + print_bold('Node {0} has an invalid status '.format(node.id) + + '{0}'.format(node.status)) + exit(1) + spinner.stop_success() + + def _prepare_firmware(self, firmware): + archi_label = firmware['archi'].upper() + firmware_archi = getattr(iotlabclient.client.ArchiString, archi_label) + firmware_name = os.path.basename(firmware['path']) + firmware_metadata = iotlabclient.client.Firmware( + name=firmware_name, + description='Mercator Firmware for {0}'.format(archi_label), + archi=firmware_archi, + filename=firmware_name + ) + + if self.exp_id: + # if we have a concrete exp_id now, we don't need to + # upload the firmware + pass + else: + spinner = MercatorHalo( + text='Saving the firmware, "{0}", to FIT/IoT-LAB'.format( + firmware_name)) + api = iotlabclient.client.FirmwaresApi(self.api_client) + # first, check the archi + if firmware_archi == iotlabclient.client.ArchiString.A8: + # FIT/IoT-LAB doesn't support WebSocket For A8, which + # Mercator needs to run + spinner.stop_failure() + print_bold('A8 is not supported by Mercator') + exit(1) + + # second, delete a firmware having the same name if exists + try: + api.delete_firmware(firmware_name) + except iotlabclient.client.rest.ApiException as err: + assert(err.status == 500) + + # third, save the firmware to the system + try: + api.save_firmware(firmware=firmware['path'], + metadata=firmware_metadata) + spinner.stop_success() + except iotlabclient.client.rest.ApiException as err: + err_body = json.loads(err.body) + spinner.stop_failure() + print_bold('Failed to save the firmware ' + + '{0}'.format(firmware_name)) + print('{0}, {1}'.format(err.reason, err_body['message'])) + exit(1) + return firmware_name + + def _submit_experiment(self, experiment_name, config): + spinner = MercatorHalo(text='Submitting an experiment') + # make sure there is no experiment registered for the same + # config + exp_id = self._get_exp_id(experiment_name) + if exp_id: + spinner.stop_failure() + print_bold('Found a registered experiment having the same name.') + print('The name of the experiment is "{0}", its ID is {1}'.format( + experiment_name, exp_id)) + print('Check the active experiments on ' + + 'https://www.iot-lab.info/testbed/dashboard\n' + + 'To see status of the registered experiment, run:\n' + + ' $ iotlab-experiment get -i {0} -p'.format(exp_id)) + print('To stop the registered experiment:\n' + + ' $ iotlab-experiment stop -i {0}'.format(exp_id)) + exit(1) + + # experiment submission + node_list = [node.hostname for node in self.nodes] + experiment = iotlabclient.client.ExperimentPhysical( + duration=self.experiment_duration_min, + name=experiment_name, + nodes=node_list, + firmwareassociations=[ + iotlabclient.client.FirmwareAssociation( + firmwarename=self.firmware_name, + nodes=node_list)]) + api = iotlabclient.client.ExperimentsApi(self.api_client) + try: + # res is an InlineResponse200 instance + res = api.submit_experiment(experiment=experiment) + exp_id = res.id + spinner.stop_success() + print_bold('Experiment ID is {0}'.format(exp_id)) + except iotlabclient.client.rest.ApiException as err: + err_body = json.loads(err.body) + spinner_stop_failure() + print('{0}, {1}'.format(err.reason, err_body['message'])) + exit(1) + return exp_id + + def _get_scheduled_date(self): + spinner = MercatorHalo(text='Waiting to be scheduled') + api = iotlabclient.client.ExperimentApi(self.api_client) + while True: + try: + res = api.get_experiment(self.exp_id) + except iotlabclient.client.rest.ApiException as err: + spinner.stop_failure() + print_bold( + 'Cannot get info of experiment {0}'.format(self.exp_id)) + exit(1) + submission_date = dateutil.parser.parse(res.submission_date) + scheduled_date = dateutil.parser.parse(res.scheduled_date) + if ((res.state in ['Running', 'Launching', 'toLaunch']) + or (res.state == 'Waiting' + and submission_date < scheduled_date)): + spinner.stop_success() + print_bold('Scheduled at {0}'.format( + scheduled_date.astimezone(dateutil.tz.tzlocal()))) + break + elif (res.state not in + ['Running', 'Launching', 'toLaunch', 'Waiting']): + spinner.stop_failure() + message = 'Experiment {0} has an invalid state {1}'.format( + self.exp_id, res.state) + print_bold('Invalid state: {0}'.format(res.state)) + exit(1) + time.sleep(self.POOLING_INTERVAL_SECONDS) + return scheduled_date + + def _get_token(self): + spinner = MercatorHalo(text='Getting a token') + + # get a token + assert self.exp_id + api = iotlabclient.client.ExperimentApi(self.api_client) + try: + res = api.get_experiment_token(self.exp_id) + token = res.token + except iotlabclient.client.rest.ApiException as err: + err_body = json.loads(err.body) + spinner.stop_failure() + print_bold('Failed to get a token') + print('{0}, {1}'.format(err.reason, err_body['message'])) + exit(1) + + spinner.stop_success() + return token + + def _wait_until_experiment_starts(self, scheduled_date): + spinner = MercatorHalo(text='Waiting to start') + now = datetime.datetime.now(dateutil.tz.tzutc()) + if scheduled_date < now: + # the experiment should have started already + pass + else: + delta_seconds = (now - scheduled_date).seconds + time.sleep(delta_seconds) + + api = iotlabclient.client.ExperimentApi(self.api_client) + while True: + try: + res = api.get_experiment(self.exp_id) + except iotlabclient.client.rest.ApiException as err: + spinner.stop_failure() + print_bold( + 'Cannot get info of experiment {0}'.format(self.exp_id)) + exit(1) + + if res.state == 'Running': + spinner.stop_success() + break + elif res.state not in ['Launching', 'toLaunch', 'Waiting']: + # the experiment shouldn't be waiting after the + # scheduled date + spinner.stop_failure() + message = 'Experiment {0} has an invalid state {1}'.format( + self.exp_id, res.state) + print_bold('Invalid state: {0}'.format(res.state)) + exit(1) + time.sleep(self.POOLING_INTERVAL_SECONDS) + + def _reset_nodes(self): + spinner = MercatorHalo(text='Resetting nodes') + api = iotlabclient.client.ExperimentApi(self.api_client) + try: + res = api.send_cmd_nodes(self.exp_id, 'reset') + except iotlabclient.client.rest.ApiException as err: + spinner.stop_failure() + print_bold('Cannot reset the nodes for experiment ' + + '{0}'.format(self.exp_id)) + exit(1) + # not sure how to check 'res' of reset command... :( + spinner.stop_success() + + + def _get_exp_id(self, experiment_name): + api = iotlabclient.client.ExperimentsApi(self.api_client) + res = api.get_experiments(state='Running,Launching,toLaunch,Waiting') + exp_id = None + for experiment in res.items: + if experiment.name == experiment_name: + exp_id = experiment.id + + return exp_id + + def _get_experiment_name(self): + m = hashlib.sha1() + m.update(self.firmware_name.encode('utf-8')) + node_list = sorted([node.hostname for node in self.nodes]) + m.update(','.join(node_list).encode('utf-8')) + return 'Mercator_{0}'.format(m.hexdigest()[:7]) + +class Node(mercator.node.Node): + TCP_PORT_TO_SERIAL = 20000 + WS_TIMEOUT_SECONDS = 3 + + def __init__(self, platform, hostname): + super(Node, self).__init__(platform) + + # 'hostname' is a string like "m3-1.grenoble.iot-lab.info" + self.hostname = hostname + self.id, self.site = re.sub(r'\.{0}$'.format(IOT_LAB_DOMAIN_NAME), + '', self.hostname).split('.') + self.ws = None + + def _setup(self): + # open a WebSocket + self.ws = self._open_ws() + self.ws.settimeout(self.WS_TIMEOUT_SECONDS) + + def _am_i_tx_node(self, tx_nodes): + full_node_id = '{0}.{1}.{2}'.format(self.id, self.site, + IOT_LAB_DOMAIN_NAME) + return full_node_id in tx_nodes + + def _open_ws(self): + # short-hands + username = self.platform.username + exp_id = self.platform.exp_id + site = self.platform.site + token = self.platform.token + + assert username + assert exp_id + assert site + assert token + ws = websocket.WebSocket() + url = 'wss://www.iot-lab.info:443/ws/{0}/{1}/{2}/serial/raw'.format( + site, exp_id, self.id) + try: + ws.connect(url, subprotocols=[username, 'token', token]) + except websocket.WebSocketBadStatusException as err: + raise RuntimeError('{0}, {1}'.format(url, str(err))) + return ws + + def _platform_send(self, msg): + try: + self.ws.send_binary(msg) + except (websocket.WebSocketConnectionClosedException, BrokenPipeError): + self._handle_connection_lost() + + def _platform_recv(self): + try: + data = self.ws.recv() + except websocket.WebSocketTimeoutException as err: + logging.debug('Recv on WebSocket from {0} timeout'.format(self.id)) + data = b'' + except websocket.WebSocketConnectionClosedException: + self._handle_connection_lost() + data = b'' + + return data + + def _handle_connection_lost(self): + # we lost the connection; change the node's status to UNKNOWN. + logging.critical('Connection to {0} is closed'.format(self.id)) + self.status = mercator.node.NodeStatus.UNKNOWN + # Mercator will stop diff --git a/mercator/platforms/opentestbed.py b/mercator/platforms/opentestbed.py new file mode 100644 index 0000000000..287f69185d --- /dev/null +++ b/mercator/platforms/opentestbed.py @@ -0,0 +1,427 @@ +"""https://github.com/openwsn-berkeley/opentestbed +""" + +import base64 +import binascii +import json +import logging +import os +import queue +import threading +import time +import sys + +import paho.mqtt.client as mqtt +import yaml + +import mercator.node +import mercator.platforms +from mercator.utils import print_bold, MercatorHalo, OSName + +class Platform(mercator.platforms.Platform): + GET_ALL_NODES_TIMEOUT_SECONDS = 2 + + def __init__(self, config, program_firmware): + self.config = config + + # initialize MQTT client + self.mqtt = self._init_mqtt_client(config['mqtt_broker'], + config['token']) + + self.nodes = self._init_nodes(config['nodes']) + + self.firmware_os_name = OSName(config['firmware']['os'].lower()) + if program_firmware: + self._program_firmware(config['firmware']) + + # make sure all the nodes have a firmware having the same name + # as specified in config, and they booted successfully. + self._check_firmware_status(config['firmware']) + + def setup_measurement(self, config): + self._setup_nodes(config) + return self.nodes + + @staticmethod + def _dump_config_platform(): + config = {} + config['name'] = 'opentestbed' + config['mqtt_broker'] = {} + config['mqtt_broker']['host'] = 'mqtt-broker.example.com' + config['mqtt_broker']['port'] = 1883 + config['token'] = 123 + config['nodes'] = ['xx-xx-xx-xx-xx-xx-xx-xx', + 'yy-yy-yy-yy-yy-yy-yy-yy', + 'zz-zz-zz-zz-zz-zz-zz-zz'] + config['firmware'] = {} + config['firmware']['os'] = 'OpenWSN' + config['firmware']['path'] = 'firmwares/openwsn-openmote-b-24ghz.ihex' + + print(yaml.dump({'platform': config}, default_flow_style=False)) + + def _init_mqtt_client(self, mqtt_broker_config, token): + spinner = MercatorHalo(text='Initializing MQTT client') + mqtt = MQTTClient(mqtt_broker_config, token) + spinner.stop_success() + return mqtt + + def _init_nodes(self, node_id_list): + spinner = MercatorHalo(text='Initializing Mercator nodes') + + # get all the available motes in the opentestbed + available_node_list = self._get_available_node_list() + + # confirm the nodes specified in config are listed in the + # list; and create a Node object + nodes = [] + unavailable_nodes = [] + otbox_set = set() + for node_id in node_id_list: + if node_id not in available_node_list: + unavailable_nodes.append(node_id) + else: + node_info = available_node_list[node_id] + mote = node_info['mote'] + otbox_id = node_info['otbox_id'] + + node = Node(self, node_id, otbox_id) + node.update_firmware_status((mote['firmware_description'], + mote['bootload_success'])) + otbox_set.add(otbox_id) + nodes.append(node) + + if unavailable_nodes: + spinner.stop_failure() + for node_id in unavailable_nodes: + print_bold('Node {0} is not available'.format(node_id)) + print('Check the testbed status') + exit(1) + + # reset the serial connections of each otbox, which can be + # done by "discovermotes" + for otbox_id in otbox_set: + self._reset_serial_connections(otbox_id) + + spinner.stop_success() + return nodes + + def _get_available_node_list(self): + # 'dicovery' cmd doesn't work for some reason. use 'status' + # instead + cmd_topic = 'opentestbed/deviceType/box/deviceId/all/cmd/status' + resp_topic = 'opentestbed/deviceType/box/deviceId/+/resp/status' + + node_list = {} # indexed by node_id (EUI64) + + self.mqtt.subscribe(resp_topic) + self.mqtt.send(cmd_topic) + while True: + payload = self.mqtt.recv(resp_topic, + self.GET_ALL_NODES_TIMEOUT_SECONDS) + if payload: + try: + node_list.update( + { + mote['EUI64']: { + 'mote': mote, + 'otbox_id': payload['returnVal']['host_name']} + for mote in payload['returnVal']['motes']}) + except KeyError as err: + assert 'EUI64' in str(err) + # this otbox doesn't return any mote info; ignore this + continue + else: + break + self.mqtt.unsubscribe(resp_topic) + return node_list + + def _reset_serial_connections(self, otbox_id): + topic_prefix = ('opentestbed/deviceType/box/deviceId/' + + '{0}'.format(otbox_id)) + cmd_topic = topic_prefix + '/cmd/status' + resp_topic = topic_prefix + '/resp/status' + + self.mqtt.subscribe(resp_topic) + self.mqtt.send(cmd_topic) + payload = self.mqtt.recv(resp_topic) + self.mqtt.unsubscribe(resp_topic) + assert payload['success'] + + def _program_firmware(self, firmware_config): + spinner = MercatorHalo(text='Programming the firmware') + + firmware_path = firmware_config['path'] + assert os.path.exists(firmware_path) + if firmware_config['os'].lower() == OSName.OpenWSN: + assert os.path.basename(firmware_path).endswith('.ihex') + + firmware_image = b'' + with open(firmware_path, 'rb') as f: + while True: + chunk = f.read() + if chunk: + # encode chunk into Base64 + firmware_image += base64.encodebytes(chunk) + else: + break + + # json.dumps() doesn't accept bytes object; needs to convert + # to string + firmware_hex_string = firmware_image.decode('utf-8') # string + # remove all new line characters, which are inserted by + # base64.decode(), because opentestbed doesn't accept a + # firmware hex string having them + firmware_hex_string = firmware_hex_string.replace('\n', '') + firmware_name = os.path.basename(firmware_path) + threads = [] + for node in self.nodes: + thread = threading.Thread(target=node.program_firmware, + args=(firmware_name, + firmware_hex_string)) + thread.start() + threads.append(thread) + + # wait until all the thread terminate + for thread in threads: + thread.join() + + if [node for node in self.nodes if not node.boot_success]: + spinner.stop_failure() + print_bold('Programming the firmware failed; check logs') + exit(1) + spinner.stop_success() + + def _check_firmware_status(self, firmware_config): + spinner = MercatorHalo(text='Checking firmwares of the nodes') + firmware_name = os.path.basename(firmware_config['path']) + + exit_on_failure = False + for node in self.nodes: + if node.firmware_status[0] != firmware_name: + spinner.stop_failure() + print_bold( + 'Node {0} doesn\'t have the right firmware'.format(node.id)) + print_bold( + 'Its firmware is "{0}"'.format(node.firmware_status[0] + if node.firmware_status[0] + else 'unknown')) + exit_on_failure = True + elif not node.firmware_status[1]: # bootload_success + spinner.stop_failure() + print_bold( + 'Node {0} failed to boot'.format(node.id)) + exit_on_failure = True + + if exit_on_failure: + print('Try again with "-p" option to program the firmware') + exit(1) + + spinner.stop_success() + + def _setup_nodes(self, config): + spinner = MercatorHalo(text='Setting up nodes') + threads = [] + for node in self.nodes: + thread = threading.Thread(target=node.setup, args=(config,)) + thread.start() + threads.append(thread) + for thread in threads: + thread.join() + spinner.stop_success() + +class Node(mercator.node.Node): + MQTT_TOPIC_BASE='opentestbed/deviceType/mote/deviceId/' + PROGRAM_TIMEOUT_SECONDS = 30 + PROGRAM_MAX_RETRY_COUNT = 2 + PROGRAM_WAIT_SECONDS = 15 + + def __init__(self, platform, mac_addr, otbox_id): + super(Node, self).__init__(platform) + + self.platform = platform + self.id = mac_addr # use mac_addr as id + self.otbox_id = otbox_id + self.mqtt_topic_prefix = self.MQTT_TOPIC_BASE + '{0}/'.format(self.id) + self.firmware_status = (None, None) + self.boot_success = None # this is used in program_firmware() + + _prefix = 'opentestbed/deviceType/mote/deviceId/{0}'.format(self.id) + self.topic_recv_msg = (_prefix + + '/notif/frommoteserialbytes') + self.topic_send_msg = (_prefix + + '/cmd/tomoteserialbytes') + self.topic_send_msg_resp = (_prefix + + '/resp/tomoteserialbytes') + + def program_firmware(self, firmware_name, firmware_hex_image): + retry_count = 0 + self.boot_success = False + while retry_count <= self.PROGRAM_MAX_RETRY_COUNT: + logging.info('Start programming "{0}" to {1}'.format(firmware_name, + self.id)) + payload = self._send_mqtt_cmd('program', + {'description': firmware_name, + 'hex': firmware_hex_image}, + self.PROGRAM_TIMEOUT_SECONDS) + + if payload and ('returnVal' in payload): + self.update_firmware_status((firmware_name, + payload['returnVal'])) + self.boot_success = True + break + else: + logging.error('Failed to program ' + + '"{0}" to {1} '.format(firmware_name, self.id)) + print(payload, file=sys.stderr) + time.sleep(self.PROGRAM_WAIT_SECONDS) + logging.error('Retry to program ' + + '"{0}" to {1} '.format(firmware_name, self.id) + + 'in {0} '.format(self.PROGRAM_WAIT_SECONDS) + + 'seconds') + retry_count += 1 + + if self.boot_success: + logging.info('Succeed to program ' + + '"{0}" to {1}'.format(firmware_name, self.id)) + else: + logging.critical('Failed to program ' + + '"{0}" to {1}'.format(firmware_name, self.id)) + # the main program will terminate later + + def update_firmware_status(self, status): + self.firmware_status = status + + def _setup(self): + # subscribe the topic to receive serial bytes from the node + self.platform.mqtt.subscribe(self.topic_recv_msg) + self.platform.mqtt.subscribe(self.topic_send_msg_resp) + + def _am_i_tx_node(self, tx_nodes): + return self.id in tx_nodes + + def _send_mqtt_cmd(self, cmd, payload={}, timeout=None): + cmd_topic = self.mqtt_topic_prefix + 'cmd/{0}'.format(cmd) + resp_topic = self.mqtt_topic_prefix + 'resp/{0}'.format(cmd) + + self.platform.mqtt.subscribe(resp_topic) + self.platform.mqtt.send(cmd_topic, payload) + payload = self.platform.mqtt.recv(resp_topic, timeout) + self.platform.mqtt.unsubscribe(resp_topic) + return payload + + def _platform_send(self, msg): + # clear recv_queue for topic_send_msg_resp, which may have a + # delayed response for the previous command + self.platform.mqtt.clear_msg_queue(self.topic_send_msg_resp) + self.platform.mqtt.send(self.topic_send_msg, + {'serialbytes': [b for b in msg]}) + payload = self.platform.mqtt.recv(self.topic_send_msg_resp) + if payload: + assert payload['success'] is True + else: + err_str = ('No ACK from ' + + '{0}/resp/tomoteserialbytes'.format(self.id)) + logging.error(err_str) + logging.error('{0} may be busy'.format(self.otbox_id)) + + def _platform_recv(self): + payload = self.platform.mqtt.recv(self.topic_recv_msg) + if payload and ('serialbytes' in payload): + data = bytes(payload['serialbytes']) + else: + data = b'' + return data + +class MQTTClient(object): + MQTT_CLIENT_ID = 'mercator' + DEFAULT_RECV_TIMEOUT_SECONDS = 5 + + def __init__(self, mqtt_broker_config, token): + self.token = token + + self._topics_of_interest = [] + # they are indexed by topic + self._msg_queues = {} + + def _on_message(client, userdata, msg): + matched_topics = [topic + for topic in self._topics_of_interest + if mqtt.topic_matches_sub(topic, msg.topic)] + assert len(matched_topics) == 1 + topic = matched_topics[0] + assert topic in self._msg_queues + assert msg.payload + self._msg_queues[topic].put(msg.payload) + + self._client = mqtt.Client(client_id=self.MQTT_CLIENT_ID) + self._client.connect(host=mqtt_broker_config['host'], + port=mqtt_broker_config['port']) + self._client.on_message = _on_message + self._client.enable_logger() + self._client.loop_start() + + def send(self, topic, payload={}): + # subscribe first to receive results + if 'token' not in payload: + # create a new dict having token + payload = dict(token=self.token, **payload) + payload_str = json.dumps(payload) + ret = self._client.publish(topic, payload_str) + logging.debug('Publish MQTT message to {0} '.format(topic) + + '{0}'.format(payload_str)) + assert ret.rc == mqtt.MQTT_ERR_SUCCESS + + def recv(self, topic, timeout=None): + assert topic in self._topics_of_interest + assert topic in self._msg_queues + + if not timeout: + timeout = self.DEFAULT_RECV_TIMEOUT_SECONDS + + logging.debug('Wait on {0}'.format(topic)) + try: + ret_msg = self._msg_queues[topic].get(timeout=timeout) + logging.debug('Recv MQTT Payload on {0}: '.format(topic) + + '{0}'.format(ret_msg)) + ret_msg = json.loads(ret_msg) # convert to dict + except queue.Empty: + # timeout + logging.debug('Recv MQTT timeout on {0}'.format(topic)) + ret_msg = {} # return an empty dict + + return ret_msg + + def clear_msg_queue(self, topic): + while True: + try: + self._msg_queues[topic].get_nowait() + except queue.Empty: + # msg_queue is empty now + break + + def subscribe(self, topic): + assert topic not in self._topics_of_interest + assert topic not in self._msg_queues + # initialize internal variables for the topic + self._topics_of_interest.append(topic) + self._msg_queues[topic] = queue.SimpleQueue() + self._client.subscribe(topic) + logging.debug('Subscribe to {0}'.format(topic)) + + def unsubscribe(self, topic): + # initialize internal variables + self._client.unsubscribe(topic) + + # a waiting thread will end with timeout + assert topic in self._msg_queues + del self._msg_queues[topic] + + self._topics_of_interest.remove(topic) + logging.debug('Unsubscribe from {0}'.format(topic)) + + def extract_device_id(self, topic): + # topic looks like: + # opentestbed/deviceType/box/deviceId/otbox17/cmd/status + components = topic.split('/') + assert len(components) == 7 + return components[4] diff --git a/mercator/platforms/skeleton.py b/mercator/platforms/skeleton.py new file mode 100644 index 0000000000..4983db4e42 --- /dev/null +++ b/mercator/platforms/skeleton.py @@ -0,0 +1,30 @@ +import mercator.node +import mercator.platforms + +class Platform(mercator.platforms.Platform): + def __init__(self, config, *args): + # 'args' is platform-specific arguments; see iotlab.py or + # opentestbed.py for your reference + raise NotImplementedError() + + def setup_measurement(self, config): + raise NotImplementedError() + +class Node(mercator.node.Node): + def __init__(self, platform, *args): + # 'args' is platform-specific arguments; see iotlab.py or + # opentestbed.py for your reference + + # MUST BE CALLED + super(Node, self).__init__(platform) + + raise NotImplementedError() + + def _setup(self): + raise NotImplementedError() + + def _platform_send(self): + raise NotImplementedError() + + def _platform_recv(self): + raise NotImplementedError() diff --git a/mercator/utils.py b/mercator/utils.py new file mode 100644 index 0000000000..cb39acf3f8 --- /dev/null +++ b/mercator/utils.py @@ -0,0 +1,100 @@ +import enum +import gzip +import json +import logging +import os +import sys + +from colored import attr, fg, stylize +from halo import Halo + +# from openwsn-fw/bsp/boards/uart.h +UART_XON = b'\x11' +UART_XON_ESCAPED = b'\x01' +UART_XOFF = b'\x13' +UART_XOFF_ESCAPED = b'\x03' +UART_ESCAPE = b'\x12' +UART_ESCAPE_ESCAPED = b'\x02' + +class OSName(enum.Enum): + # concrete values (string) should be in lowercase + OpenWSN = 'openwsn' + +def escape_xon_xoff(message): + # This function is not used now since OpenWSN doesn't expect a + # received serial message is escaped (see uart_readByte() in + # openwsn-fw/bsp/boards/uart.c) + ret = bytearray(message) + ret = ret.replace(UART_XON, + UART_ESCAPE+UART_XON_ESCAPED) + ret = ret.replace(UART_XOFF, + UART_ESCAPE+UART_XOFF_ESCAPED) + ret = ret.replace(UART_ESCAPE, + UART_ESCAPE+UART_ESCAPE_ESCAPED) + return ret + +def restore_xon_xoff(message): + ret = bytearray(message) + ret = ret.replace(UART_ESCAPE+UART_XON_ESCAPED, + UART_XON) + ret = ret.replace(UART_ESCAPE+UART_XOFF_ESCAPED, + UART_XOFF) + ret = ret.replace(UART_ESCAPE+UART_ESCAPE_ESCAPED, + UART_ESCAPE) + return ret + +class MercatorHalo(Halo): + enabled = True + + def __init__(self, text='', color='cyan', text_color=None, spinner=None, + animation=None, placement='left', interval=-1, + stream=sys.stdout): + super(MercatorHalo, self).__init__(text, color, text_color, spinner, + animation, placement, interval, + self.enabled, stream) + self.start() + + @classmethod + def disable(cls): + cls.enabled = False + + def stop_success(self, text=None): + self.succeed(text) + self.stop() + + def stop_failure(self, text=None): + self.fail(text) + self.stop() + +def print_bold(message): + bold_message = stylize(message, attr('bold')) + print(bold_message) + +class Outfile(object): + def __init__(self, out_file_path, config, overwrite_out_file): + if not out_file_path.endswith('jsonl.gz'): + raise ValueError('Filename must end with "jsonl.gz"') + elif os.path.exists(out_file_path): + if overwrite_out_file: + print_bold('{0} will be overwritten'.format(out_file_path)) + else: + raise ValueError('{0} already exists'.format(out_file_path)) + + self.fp = None + self.out_file_path = out_file_path + self.config = config + + def open(self): + self.fp = gzip.open(self.out_file_path, 'wt') + logging.info('Outfile {0} is opened'.format(self.out_file_path)) + self.write_data('config', self.config) + + def write_data(self, data_type, data): + json_line = json.dumps({'data_type': data_type, 'data': data}) + self.fp.write(json_line + '\n') + + def close(self): + self.fp.close() + + def flush(self): + self.fp.flush() diff --git a/metas/README.md b/metas/README.md deleted file mode 100644 index 86fc18f737..0000000000 --- a/metas/README.md +++ /dev/null @@ -1,14 +0,0 @@ -This folder contains: - -* a CSV file per location, listing the location of each mote. -* `sites.csv` which lists the location files. This file is needed by the web interface. -* `gen_sites.py` which generates `sites.csv` based on the current location files. -* `update_states` that generates a states.json file with all the nodes in "Active" state -* `update_locations` that generates a locations.json file with all the nodes location - -Each location file corresponds is a CSV file which contains the following columns: - -* `mac`: TODO -* `x`: TODO -* `y`: TODO -* `z`: TODO diff --git a/metas/euratech.csv b/metas/euratech.csv deleted file mode 100644 index f12b592627..0000000000 --- a/metas/euratech.csv +++ /dev/null @@ -1,222 +0,0 @@ -mac,x,y,z -14-15-92-00-12-91-c3-21,3.6,2.5,0.0 -14-15-92-00-12-91-c2-3a,3.0,2.5,0.0 -14-15-92-00-12-91-cf-17,2.4,2.5,0.0 -14-15-92-00-12-91-bd-11,1.8,2.5,0.0 -14-15-92-00-12-91-b6-bc,1.2,2.5,0.0 -14-15-92-00-12-91-cc-aa,3.6,2.5,0.6 -14-15-92-00-12-91-b1-54,3.0,2.5,0.6 -14-15-92-00-12-91-b2-7b,2.4,2.5,0.6 -14-15-92-00-12-91-bc-2d,1.8,2.5,0.6 -14-15-92-00-12-91-bc-b6,1.2,2.5,0.6 -14-15-92-00-12-91-c3-c4,3.6,2.5,1.2 -14-15-92-00-12-91-c8-a8,3.0,2.5,1.2 -14-15-92-00-12-91-c1-5b,2.4,2.5,1.2 -14-15-92-00-12-91-b0-34,1.8,2.5,1.2 -14-15-92-00-12-91-b4-71,1.2,2.5,1.2 -14-15-92-00-12-91-bb-f0,3.6,2.5,1.8 -14-15-92-00-12-91-b9-86,3.0,2.5,1.8 -14-15-92-00-12-91-be-29,2.4,2.5,1.8 -14-15-92-00-12-91-c1-02,1.8,2.5,1.8 -14-15-92-00-12-91-b0-b4,1.2,2.5,1.8 -14-15-92-00-12-91-af-c7,3.6,2.5,2.4 -14-15-92-00-12-91-bc-13,3.0,2.5,2.4 -14-15-92-00-12-91-b2-bb,2.4,2.5,2.4 -14-15-92-00-12-91-c6-df,1.8,2.5,2.4 -14-15-92-00-12-91-c4-c8,1.2,2.5,2.4 -14-15-92-00-12-91-c2-6d,3.6,2.5,3.0 -14-15-92-00-12-91-b9-66,3.0,2.5,3.0 -14-15-92-00-12-91-cb-f3,2.4,2.5,3.0 -14-15-92-00-12-91-b5-38,1.8,2.5,3.0 -14-15-92-00-12-91-c9-46,1.2,2.5,3.0 -14-15-92-00-12-91-c4-69,3.6,2.5,3.6 -14-15-92-00-12-91-ca-fe,3.0,2.5,3.6 -14-15-92-00-12-91-c6-dc,2.4,2.5,3.6 -14-15-92-00-12-91-af-ad,1.8,2.5,3.6 -14-15-92-00-12-91-b5-4f,1.2,2.5,3.6 -14-15-92-00-12-91-c9-2c,3.6,2.5,4.2 -14-15-92-00-12-91-b4-68,3.0,2.5,4.2 -14-15-92-00-12-91-c2-b6,2.4,2.5,4.2 -14-15-92-00-12-91-c6-9d,1.8,2.5,4.2 -14-15-92-00-12-91-c0-e8,1.2,2.5,4.2 -14-15-92-00-12-91-cd-ec,3.6,2.5,4.8 -14-15-92-00-12-91-c7-21,3.0,2.5,4.8 -14-15-92-00-12-91-c7-f0,2.4,2.5,4.8 -14-15-92-00-12-91-c8-f3,1.8,2.5,4.8 -14-15-92-00-12-91-ce-61,1.2,2.5,4.8 -14-15-92-00-12-91-b2-bf,3.6,2.5,5.4 -14-15-92-00-12-91-bd-2d,3.0,2.5,5.4 -14-15-92-00-12-91-be-4d,2.4,2.5,5.4 -14-15-92-00-12-91-b8-43,1.8,2.5,5.4 -14-15-92-00-12-91-ba-95,1.2,2.5,5.4 -14-15-92-00-12-91-ba-46,3.6,2.5,6.0 -14-15-92-00-12-91-be-4b,3.0,2.5,6.0 -14-15-92-00-12-91-b9-5f,2.4,2.5,6.0 -14-15-92-00-12-91-1c-e4,1.8,2.5,6.0 -14-15-92-00-12-91-c8-7e,1.2,2.5,6.0 -14-15-92-00-12-91-c4-c2,3.0,2.5,6.6 -14-15-92-00-12-91-cb-e9,2.4,2.5,6.6 -14-15-92-00-12-91-c5-c8,1.8,2.5,6.6 -14-15-92-00-12-91-c3-d6,1.2,2.5,6.6 -14-15-92-00-12-91-c0-88,3.6,2.5,7.2 -14-15-92-00-12-91-c1-1c,3.0,2.5,7.2 -14-15-92-00-12-91-c1-1e,2.4,2.5,7.2 -14-15-92-00-12-91-bc-63,1.2,2.5,7.2 -14-15-92-00-12-91-c8-ad,3.6,2.5,7.8 -14-15-92-00-12-91-c2-86,3.0,2.5,7.8 -14-15-92-00-12-91-bc-48,2.4,2.5,7.8 -14-15-92-00-12-91-ce-d3,1.8,2.5,7.8 -14-15-92-00-12-91-c6-89,3.6,2.5,8.4 -14-15-92-00-12-91-c0-dc,3.0,2.5,8.4 -14-15-92-00-12-91-b0-1f,2.4,2.5,8.4 -14-15-92-00-12-91-bb-ea,1.8,2.5,8.4 -14-15-92-00-12-91-cb-78,1.2,2.5,8.4 -14-15-92-00-12-91-cc-ed,3.6,2.5,9.0 -14-15-92-00-12-91-cb-08,3.0,2.5,9.0 -14-15-92-00-12-91-c9-73,2.4,2.5,9.0 -14-15-92-00-12-91-c2-41,1.8,2.5,9.0 -14-15-92-00-12-91-ba-bc,1.2,2.5,9.0 -14-15-92-00-12-91-b5-f1,3.6,2.5,9.6 -14-15-92-00-12-91-c8-c8,3.0,2.5,9.6 -14-15-92-00-12-91-c6-40,2.4,2.5,9.6 -14-15-92-00-12-91-ca-25,1.8,2.5,9.6 -14-15-92-00-12-91-b6-59,1.2,2.5,9.6 -14-15-92-00-12-91-b5-cc,3.6,2.5,10.2 -14-15-92-00-12-91-b2-c1,3.0,2.5,10.2 -14-15-92-00-12-91-cd-82,2.4,2.5,10.2 -14-15-92-00-12-91-b3-25,1.8,2.5,10.2 -14-15-92-00-12-91-cc-1b,1.2,2.5,10.2 -14-15-92-00-12-91-b4-2b,3.6,2.5,10.8 -14-15-92-00-12-91-c4-ea,3.0,2.5,10.8 -14-15-92-00-12-91-b6-a3,2.4,2.5,10.8 -14-15-92-00-12-91-b3-1a,1.8,2.5,10.8 -14-15-92-00-12-91-b3-81,1.2,2.5,10.8 -14-15-92-00-12-91-c3-42,3.6,3.4,0.0 -14-15-92-00-12-91-c0-ab,3.0,3.4,0.0 -14-15-92-00-12-91-c8-3b,2.4,3.4,0.0 -14-15-92-00-12-91-b3-6b,1.8,3.4,0.0 -14-15-92-00-12-91-b4-db,1.2,3.4,0.0 -14-15-92-00-12-91-b8-71,3.6,3.4,0.6 -14-15-92-00-12-91-bd-e6,3.0,3.4,0.6 -14-15-92-00-12-91-bc-c4,2.4,3.4,0.6 -14-15-92-00-12-91-be-f4,1.8,3.4,0.6 -14-15-92-00-12-91-1c-9e,1.2,3.4,0.6 -14-15-92-00-12-91-af-78,3.6,3.4,1.2 -14-15-92-00-12-91-ca-e0,3.0,3.4,1.2 -14-15-92-00-12-91-c3-e5,2.4,3.4,1.2 -14-15-92-00-12-91-b8-3b,1.8,3.4,1.2 -14-15-92-00-12-91-bf-14,1.2,3.4,1.2 -14-15-92-00-12-91-cf-2e,3.6,3.4,1.8 -14-15-92-00-12-91-bd-f3,3.0,3.4,1.8 -14-15-92-00-12-91-b6-1a,2.4,3.4,1.8 -14-15-92-00-12-91-ce-b6,1.8,3.4,1.8 -14-15-92-00-12-91-c7-35,1.2,3.4,1.8 -14-15-92-00-12-91-bb-0a,3.6,3.4,2.4 -14-15-92-00-12-91-c4-d2,3.0,3.4,2.4 -14-15-92-00-12-91-bc-e9,2.4,3.4,2.4 -14-15-92-00-12-91-ba-9d,1.8,3.4,2.4 -14-15-92-00-12-91-ce-3a,1.2,3.4,2.4 -14-15-92-00-12-91-1b-fa,3.6,3.4,3.0 -14-15-92-00-12-91-c8-34,3.0,3.4,3.0 -14-15-92-00-12-91-1f-91,2.4,3.4,3.0 -14-15-92-00-12-91-bb-b4,1.8,3.4,3.0 -14-15-92-00-12-91-1f-9e,1.2,3.4,3.0 -14-15-92-00-12-91-c7-4d,3.6,3.4,3.6 -14-15-92-00-12-91-c6-f5,3.0,3.4,3.6 -14-15-92-00-12-91-b8-db,2.4,3.4,3.6 -14-15-92-00-12-91-1c-af,1.8,3.4,3.6 -14-15-92-00-12-91-c9-2a,1.2,3.4,3.6 -14-15-92-00-12-91-bb-a2,3.6,3.4,4.2 -14-15-92-00-12-91-c2-0a,3.0,3.4,4.2 -14-15-92-00-12-91-ca-c8,2.4,3.4,4.2 -14-15-92-00-12-91-bd-ef,1.8,3.4,4.2 -14-15-92-00-12-91-b7-98,1.2,3.4,4.2 -14-15-92-00-12-91-c1-98,3.6,3.4,4.8 -14-15-92-00-12-91-c2-d0,3.0,3.4,4.8 -14-15-92-00-12-91-bf-4d,2.4,3.4,4.8 -14-15-92-00-12-91-c3-b1,1.8,3.4,4.8 -14-15-92-00-12-91-b7-23,1.2,3.4,4.8 -14-15-92-00-12-91-b7-48,3.6,3.4,5.4 -14-15-92-00-12-91-1b-fc,3.0,3.4,5.4 -14-15-92-00-12-91-b5-84,2.4,3.4,5.4 -14-15-92-00-12-91-b1-8d,1.8,3.4,5.4 -14-15-92-00-12-91-b5-c9,1.2,3.4,5.4 -14-15-92-00-12-91-c5-06,3.6,3.4,6.0 -14-15-92-00-12-91-bc-d3,3.0,3.4,6.0 -14-15-92-00-12-91-cd-df,2.4,3.4,6.0 -14-15-92-00-12-91-bc-46,1.8,3.4,6.0 -14-15-92-00-12-91-b9-84,1.2,3.4,6.0 -14-15-92-00-12-91-ce-38,3.6,3.4,6.6 -14-15-92-00-12-91-b2-b8,3.0,3.4,6.6 -14-15-92-00-12-91-bc-12,2.4,3.4,6.6 -14-15-92-00-12-91-cb-0c,1.8,3.4,6.6 -14-15-92-00-12-91-c5-f9,1.2,3.4,6.6 -14-15-92-00-12-91-b2-46,3.6,3.4,7.2 -14-15-92-00-12-91-c2-2f,3.0,3.4,7.2 -14-15-92-00-12-91-b0-e0,2.4,3.4,7.2 -14-15-92-00-12-91-cf-07,1.8,3.4,7.2 -14-15-92-00-12-91-b8-c6,1.2,3.4,7.2 -14-15-92-00-12-91-b2-82,3.6,3.4,7.8 -14-15-92-00-12-91-c1-67,3.0,3.4,7.8 -14-15-92-00-12-91-c5-34,2.4,3.4,7.8 -14-15-92-00-12-91-b3-1c,1.8,3.4,7.8 -14-15-92-00-12-91-bc-60,1.2,3.4,7.8 -14-15-92-00-12-91-cd-ba,3.6,3.4,8.4 -14-15-92-00-12-91-c7-03,3.0,3.4,8.4 -14-15-92-00-12-91-cd-29,2.4,3.4,8.4 -14-15-92-00-12-91-c3-a3,1.8,3.4,8.4 -14-15-92-00-12-91-cc-1d,1.2,3.4,8.4 -14-15-92-00-12-91-c6-ba,3.6,3.4,9.0 -14-15-92-00-12-91-b3-20,3.0,3.4,9.0 -14-15-92-00-12-91-cc-61,2.4,3.4,9.0 -14-15-92-00-12-91-b1-f4,1.8,3.4,9.0 -14-15-92-00-12-91-b4-6b,1.2,3.4,9.0 -14-15-92-00-12-91-c7-aa,3.6,3.4,9.6 -14-15-92-00-12-91-c5-40,3.0,3.4,9.6 -14-15-92-00-12-91-ba-5e,2.4,3.4,9.6 -14-15-92-00-12-91-b3-bd,1.8,3.4,9.6 -14-15-92-00-12-91-bc-23,1.2,3.4,9.6 -14-15-92-00-12-91-c6-25,3.6,3.4,10.2 -14-15-92-00-12-91-be-d4,3.0,3.4,10.2 -14-15-92-00-12-91-1f-7a,2.4,3.4,10.2 -14-15-92-00-12-91-c1-c8,1.8,3.4,10.2 -14-15-92-00-12-91-bf-29,1.2,3.4,10.2 -14-15-92-00-12-91-c3-04,3.6,3.4,10.8 -14-15-92-00-12-91-c3-70,3.0,3.4,10.8 -14-15-92-00-12-91-c9-1c,2.4,3.4,10.8 -14-15-92-00-12-91-c0-35,1.8,3.4,10.8 -14-15-92-00-12-91-c5-fe,1.2,3.4,10.8 -14-15-92-00-12-91-c9-13,0.0,3.28,11.32 -14-15-92-00-12-91-ce-49,0.6,3.28,11.32 -14-15-92-00-12-91-bb-da,1.2,3.28,11.32 -14-15-92-00-12-91-af-f2,1.8,3.28,11.32 -14-15-92-00-12-91-ca-e8,2.4,3.28,11.32 -14-15-92-00-12-91-bd-d1,3.0,3.28,11.32 -14-15-92-00-12-91-b6-8e,3.6,3.28,11.32 -14-15-92-00-12-91-cb-6a,4.2,3.28,11.32 -14-15-92-00-12-91-cc-68,4.8,3.28,11.32 -14-15-92-00-12-91-c3-6b,0.0,2.67,11.32 -14-15-92-00-12-91-c4-16,0.6,2.67,11.32 -14-15-92-00-12-91-b8-63,1.2,2.67,11.32 -14-15-92-00-12-91-bd-65,1.8,2.67,11.32 -14-15-92-00-12-91-c2-3c,2.4,2.67,11.32 -14-15-92-00-12-91-bd-5c,3.0,2.67,11.32 -14-15-92-00-12-91-ce-56,3.6,2.67,11.32 -14-15-92-00-12-91-c4-47,4.2,2.67,11.32 -14-15-92-00-12-91-c3-3a,4.8,2.67,11.32 -14-15-92-00-12-91-ce-00,1.1,0.25,11.32 -14-15-92-00-12-91-c1-17,1.1,0.9,11.32 -14-15-92-00-12-91-1f-43,1.1,1.55,11.32 -14-15-92-00-12-91-c2-c8,1.1,2.2,11.32 -14-15-92-00-12-91-af-75,1.55,0.25,11.32 -14-15-92-00-12-91-b9-8e,1.55,0.9,11.32 -14-15-92-00-12-91-bd-00,1.55,1.55,11.32 -14-15-92-00-12-91-bb-e4,1.55,2.2,11.32 -14-15-92-00-12-91-c0-13,3.25,0.25,11.32 -14-15-92-00-12-91-1f-71,3.25,0.9,11.32 -14-15-92-00-12-91-c2-b8,3.25,1.55,11.32 -14-15-92-00-12-91-c8-39,3.25,2.2,11.32 -14-15-92-00-12-91-b2-ee,3.7,0.25,11.32 -14-15-92-00-12-91-bd-79,3.7,0.9,11.32 -14-15-92-00-12-91-b7-3b,3.7,1.55,11.32 -14-15-92-00-12-91-cd-89,3.7,2.2,11.32 diff --git a/metas/gen_sites.py b/metas/gen_sites.py deleted file mode 100644 index 2d78c5672a..0000000000 --- a/metas/gen_sites.py +++ /dev/null @@ -1,24 +0,0 @@ -import os -import re - -output = [] -output += ['site'] - -for filename in os.listdir('.'): - - m = re.search('([a-z]+)\.csv',filename) - if not m: - continue - - _site = m.group(1) - - output += [_site] - -output = '\n'.join(output) - -print output - -with open('sites.csv','w') as f: - f.write(output) - -raw_input("Script ended successfully. Press Enter to close.") diff --git a/metas/grenoble.csv b/metas/grenoble.csv deleted file mode 100644 index 1e94583037..0000000000 --- a/metas/grenoble.csv +++ /dev/null @@ -1,251 +0,0 @@ -mac,x,y,z -14-15-92-00-12-91-b2-ce,4.25,27.67,1.98 -14-15-92-00-12-91-bd-c0,4.57,27.37,2.7 -14-15-92-00-12-91-cd-f2,5.67,27.37,2.22 -14-15-92-00-12-91-c6-c0,6.36,27.37,2.8 -14-15-92-00-12-91-b2-7c,7.4,27.37,2.42 -14-15-92-00-12-91-bf-c6,8.15,27.37,2.85 -14-15-92-00-12-91-b3-9e,9.13,27.37,2.28 -14-15-92-00-12-91-b0-7f,10.4,27.37,2.37 -14-15-92-00-12-91-c7-e6,11.36,27.37,2.8 -14-15-92-00-12-91-be-ed,12.53,27.37,2.3 -14-15-92-00-12-91-bb-40,13.75,27.37,2.65 -14-15-92-00-12-91-c1-fe,3.03,28.07,2.54 -14-15-92-00-12-91-b8-07,3.83,28.07,2.54 -14-15-92-00-12-91-b2-ca,4.8,28.07,2.54 -14-15-92-00-12-91-b0-20,5.74,28.07,2.54 -14-15-92-00-12-91-b6-d8,6.76,28.07,2.54 -14-15-92-00-12-91-c6-31,7.86,28.07,2.54 -14-15-92-00-12-91-cc-8b,8.93,28.07,2.54 -14-15-92-00-12-91-b0-3d,10.13,28.07,2.54 -14-15-92-00-12-91-c2-4c,11.28,28.07,2.54 -14-15-92-00-12-91-cc-0d,12.18,28.07,2.54 -14-15-92-00-12-91-b0-47,13.18,28.07,2.54 -14-15-92-00-12-91-bc-97,14.18,28.07,2.54 -14-15-92-00-12-91-c1-3d,14.93,28.07,2.54 -14-15-92-00-12-91-be-d2,15.73,28.07,2.54 -14-15-92-00-12-91-b1-cb,1.98,29.35,3.6 -14-15-92-00-12-91-b9-4f,3.13,29.35,3.6 -14-15-92-00-12-91-c3-3e,4.08,29.35,3.6 -14-15-92-00-12-91-1c-be,5.18,29.35,3.6 -14-15-92-00-12-91-cc-c8,6.38,29.35,3.6 -14-15-92-00-12-91-b1-a5,7.45,29.35,3.6 -14-15-92-00-12-91-b6-3b,8.3,29.35,3.6 -14-15-92-00-12-91-c7-8e,8.8,29.35,3.6 -14-15-92-00-12-91-b9-02,10.17,29.35,3.6 -14-15-92-00-12-91-c4-43,11.08,29.35,3.6 -14-15-92-00-12-91-b6-15,12.12,29.35,3.6 -14-15-92-00-12-91-cf-33,12.89,29.35,3.6 -14-15-92-00-12-91-b8-bd,14.11,29.35,3.6 -14-15-92-00-12-91-b3-2d,15.13,29.35,3.6 -14-15-92-00-12-91-c2-1d,3.95,29.1,2.53 -14-15-92-00-12-91-c2-16,5.51,29.05,2.53 -14-15-92-00-12-91-ca-2d,7.53,29.22,2.53 -14-15-92-00-12-91-c7-ee,9.53,29.02,2.53 -14-15-92-00-12-91-bb-04,11.73,29.27,2.53 -14-15-92-00-12-91-c8-78,13.78,29.01,2.53 -14-15-92-00-12-91-b8-5a,15.58,28.93,2.53 -14-15-92-00-12-91-b2-f9,2.98,30.13,2.52 -14-15-92-00-12-91-bd-6f,4.33,30.21,2.52 -14-15-92-00-12-91-c2-f6,5.3,30.21,2.52 -14-15-92-00-12-91-c1-8d,6.28,30.17,2.52 -14-15-92-00-12-91-c4-74,7.51,30.17,2.52 -14-15-92-00-12-91-c4-bb,8.58,30.17,2.52 -14-15-92-00-12-91-b3-84,9.58,30.17,2.52 -14-15-92-00-12-91-b0-a8,10.45,30.17,2.52 -14-15-92-00-12-91-bf-c4,11.32,30.17,2.52 -14-15-92-00-12-91-c5-97,12.26,30.17,2.52 -14-15-92-00-12-91-c9-0d,13.28,30.17,2.52 -14-15-92-00-12-91-ca-91,14.28,30.17,2.52 -14-15-92-00-12-91-b3-5b,15.53,30.17,2.52 -14-15-92-00-12-91-bb-a0,16.53,29.72,2.5 -14-15-92-00-12-91-b3-28,3.98,30.37,3.6 -14-15-92-00-12-91-b7-a5,5.08,30.47,3.6 -14-15-92-00-12-91-c7-b0,6.18,30.47,3.6 -14-15-92-00-12-91-c8-73,7.2,30.47,3.6 -14-15-92-00-12-91-c0-4d,8.68,30.47,3.6 -14-15-92-00-12-91-c5-b5,9.58,30.47,3.6 -14-15-92-00-12-91-c1-15,10.53,30.42,3.6 -14-15-92-00-12-91-be-03,11.35,30.27,3.6 -14-15-92-00-12-91-bf-a6,12.35,30.42,3.6 -14-15-92-00-12-91-be-64,13.28,30.42,3.6 -14-15-92-00-12-91-c5-96,14.31,30.42,3.6 -14-15-92-00-12-91-c0-1c,15.21,30.42,3.6 -14-15-92-00-12-91-c8-dd,7.83,30.92,3.53 -14-15-92-00-12-91-b1-8b,4.0,31.97,3.66 -14-15-92-00-12-91-bf-c5,4.97,31.97,3.66 -14-15-92-00-12-91-b0-e9,6.0,31.97,3.66 -14-15-92-00-12-91-1f-a0,7.01,31.97,3.66 -14-15-92-00-12-91-b2-ba,8.16,31.97,3.66 -14-15-92-00-12-91-b1-ae,9.08,31.97,3.66 -14-15-92-00-12-91-b8-9a,10.1,31.99,3.66 -14-15-92-00-12-91-b4-1e,11.05,31.92,3.66 -14-15-92-00-12-91-b6-66,13.07,32.03,3.66 -14-15-92-00-12-91-bd-e3,14.26,32.05,3.66 -14-15-92-00-12-91-b0-29,15.41,32.05,3.66 -14-15-92-00-12-91-b6-5d,5.44,32.03,2.58 -14-15-92-00-12-91-c8-e0,6.4,32.03,2.58 -14-15-92-00-12-91-c1-d7,7.45,32.03,2.58 -14-15-92-00-12-91-c4-94,8.42,32.03,2.58 -14-15-92-00-12-91-b1-93,9.37,32.04,2.58 -14-15-92-00-12-91-c8-28,10.3,32.04,2.58 -14-15-92-00-12-91-cd-06,11.3,32.02,2.58 -14-15-92-00-12-91-af-ed,12.4,32.02,2.58 -14-15-92-00-12-91-ba-ea,13.36,31.97,2.58 -14-15-92-00-12-91-c1-9c,14.43,31.97,2.58 -14-15-92-00-12-91-be-7f,15.41,31.95,2.58 -14-15-92-00-12-91-be-cb,2.3,27.37,2.65 -14-15-92-00-12-91-ba-2d,17.06,33.57,2.62 -14-15-92-00-12-91-ba-a9,3.8,30.85,2.6 -14-15-92-00-12-91-ba-d5,15.58,30.97,2.6 -14-15-92-00-12-91-be-b6,4.08,32.0,0.37 -14-15-92-00-12-91-b4-de,4.82,32.0,0.37 -14-15-92-00-12-91-c7-9d,5.72,32.0,0.37 -14-15-92-00-12-91-c1-6a,6.46,32.0,0.37 -14-15-92-00-12-91-b3-23,3.98,31.72,1.07 -14-15-92-00-12-91-b3-96,4.79,31.72,1.07 -14-15-92-00-12-91-b4-c1,5.66,31.72,1.07 -14-15-92-00-12-91-be-a9,6.48,31.72,1.07 -14-15-92-00-12-91-ba-73,4.12,32.14,2.0 -14-15-92-00-12-91-b0-92,4.9,32.14,2.0 -14-15-92-00-12-91-b2-bc,5.78,32.14,2.0 -14-15-92-00-12-91-ba-62,6.5,32.19,2.0 -14-15-92-00-12-91-b3-4b,3.88,32.85,0.2 -14-15-92-00-12-91-b9-74,4.98,32.89,0.2 -14-15-92-00-12-91-b2-30,5.78,32.89,0.2 -14-15-92-00-12-91-c3-19,6.53,32.77,0.43 -14-15-92-00-12-91-cb-e5,4.1,32.66,1.04 -14-15-92-00-12-91-c6-39,4.86,32.66,1.04 -14-15-92-00-12-91-bf-ca,6.47,32.69,1.04 -14-15-92-00-12-91-c5-fb,4.07,33.08,1.82 -14-15-92-00-12-91-c5-52,5.06,33.08,1.8 -14-15-92-00-12-91-b4-13,5.95,33.08,1.83 -14-15-92-00-12-91-c3-b4,2.34,35.6,2.63 -14-15-92-00-12-91-c3-8d,8.81,27.77,3.0 -14-15-92-00-12-91-b5-d0,10.91,27.72,3.02 -14-15-92-00-12-91-c9-cd,1.98,33.64,2.6 -14-15-92-00-12-91-b4-91,2.71,33.57,2.57 -14-15-92-00-12-91-be-ab,3.73,33.57,2.57 -14-15-92-00-12-91-b0-53,4.81,33.57,2.57 -14-15-92-00-12-91-c3-49,5.72,33.57,2.58 -14-15-92-00-12-91-be-0f,6.7,33.57,2.59 -14-15-92-00-12-91-b8-a3,7.68,33.57,2.59 -14-15-92-00-12-91-c4-d1,8.7,33.57,2.6 -14-15-92-00-12-91-c6-86,9.7,33.57,2.6 -14-15-92-00-12-91-bf-ba,10.69,33.57,2.61 -14-15-92-00-12-91-ba-a2,11.71,33.57,2.61 -14-15-92-00-12-91-c5-29,12.71,33.57,2.62 -14-15-92-00-12-91-b7-c6,13.74,33.57,2.62 -14-15-92-00-12-91-cc-dc,14.75,33.57,2.62 -14-15-92-00-12-91-b7-4f,15.73,33.57,2.62 -14-15-92-00-12-91-bb-93,7.95,34.01,3.6 -14-15-92-00-12-91-20-4e,11.23,33.99,3.58 -14-15-92-00-12-91-b7-97,2.56,35.07,3.67 -14-15-92-00-12-91-b7-1f,3.36,35.07,3.67 -14-15-92-00-12-91-c9-8d,4.4,35.07,3.67 -14-15-92-00-12-91-bf-ea,5.35,35.07,3.67 -14-15-92-00-12-91-bf-cd,6.4,35.07,3.67 -14-15-92-00-12-91-af-b3,7.45,35.07,3.67 -14-15-92-00-12-91-c0-67,8.43,35.07,3.67 -14-15-92-00-12-91-bd-0c,9.75,35.07,3.67 -14-15-92-00-12-91-cc-6e,10.76,35.07,3.67 -14-15-92-00-12-91-1f-58,11.66,35.07,3.67 -14-15-92-00-12-91-c4-de,12.66,35.07,3.67 -14-15-92-00-12-91-c8-4d,13.76,35.07,3.67 -14-15-92-00-12-91-be-e7,14.76,35.07,3.67 -14-15-92-00-12-91-b5-aa,15.78,35.07,3.67 -14-15-92-00-12-91-ce-a4,1.91,35.09,2.6 -14-15-92-00-12-91-c1-d2,2.75,35.07,2.58 -14-15-92-00-12-91-b9-61,3.65,35.07,2.58 -14-15-92-00-12-91-b0-13,4.57,35.07,2.58 -14-15-92-00-12-91-c4-cf,6.55,35.07,2.58 -14-15-92-00-12-91-bf-a1,7.53,35.07,2.58 -14-15-92-00-12-91-bb-56,8.54,35.07,2.58 -14-15-92-00-12-91-ba-8c,9.56,35.07,2.58 -14-15-92-00-12-91-b8-e1,10.66,35.07,2.58 -14-15-92-00-12-91-b9-78,11.76,35.07,2.58 -14-15-92-00-12-91-ca-c7,12.8,35.07,2.58 -14-15-92-00-12-91-b6-c1,2.52,36.37,3.67 -14-15-92-00-12-91-b9-c2,3.37,36.37,3.67 -14-15-92-00-12-91-af-8d,4.44,36.37,3.67 -14-15-92-00-12-91-b1-05,5.39,36.37,3.67 -14-15-92-00-12-91-ba-a8,6.55,36.37,3.67 -14-15-92-00-12-91-b6-50,7.46,36.37,3.67 -14-15-92-00-12-91-b0-97,8.53,36.37,3.67 -14-15-92-00-12-91-c1-fd,9.56,36.37,3.67 -14-15-92-00-12-91-c0-ce,10.51,36.37,3.67 -14-15-92-00-12-91-bf-9c,11.66,36.37,3.67 -14-15-92-00-12-91-c9-38,12.55,36.37,3.67 -14-15-92-00-12-91-b2-d8,13.55,36.37,3.67 -14-15-92-00-12-91-b0-1d,14.61,36.37,3.67 -14-15-92-00-12-91-c4-32,15.65,36.37,3.67 -14-15-92-00-12-91-20-30,1.93,36.37,2.56 -14-15-92-00-12-91-b3-1e,2.91,36.37,2.55 -14-15-92-00-12-91-cb-9b,3.91,36.37,2.55 -14-15-92-00-12-91-ba-2e,4.91,36.37,2.55 -14-15-92-00-12-91-b1-b2,5.91,36.37,2.55 -14-15-92-00-12-91-b9-16,6.91,36.37,2.55 -14-15-92-00-12-91-c1-5f,7.92,36.34,2.55 -14-15-92-00-12-91-1f-69,8.92,36.37,2.55 -14-15-92-00-12-91-b8-df,10.02,36.34,2.55 -14-15-92-00-12-91-cd-e9,11.07,36.37,2.55 -14-15-92-00-12-91-b3-55,12.06,36.37,2.55 -14-15-92-00-12-91-ce-d8,13.18,36.37,2.55 -14-15-92-00-12-91-cb-46,7.16,37.6,3.37 -14-15-92-00-12-91-c8-63,12.23,37.55,3.37 -14-15-92-00-12-91-bf-1e,13.25,37.55,3.37 -14-15-92-00-12-91-c3-11,14.26,37.55,3.37 -14-15-92-00-12-91-b4-f0,15.26,37.55,3.37 -14-15-92-00-12-91-ce-be,16.26,37.55,3.37 -14-15-92-00-12-91-b6-b3,3.23,37.82,2.8 -14-15-92-00-12-91-b5-d5,4.23,37.82,2.95 -14-15-92-00-12-91-c8-fd,5.03,37.82,3.1 -14-15-92-00-12-91-b8-f3,4.78,37.82,2.3 -14-15-92-00-12-91-ca-86,6.13,37.82,2.55 -14-15-92-00-12-91-b9-a2,6.91,38.07,3.2 -14-15-92-00-12-91-cf-50,6.91,38.07,2.18 -14-15-92-00-12-91-bf-b3,6.91,38.87,2.13 -14-15-92-00-12-91-b7-2f,12.23,37.77,2.43 -14-15-92-00-12-91-c0-8f,12.98,37.77,2.37 -14-15-92-00-12-91-b7-e4,13.93,37.77,2.48 -14-15-92-00-12-91-c0-0a,14.96,37.77,2.6 -14-15-92-00-12-91-cd-fc,16.06,37.77,2.7 -14-15-92-00-12-91-b4-51,17.08,37.77,2.2 -14-15-92-00-12-91-b4-8c,7.84,38.59,3.35 -14-15-92-00-12-91-c3-ee,7.84,39.55,3.35 -14-15-92-00-12-91-b8-c3,7.86,40.55,3.35 -14-15-92-00-12-91-b7-b6,7.86,41.45,3.35 -14-15-92-00-12-91-b1-5e,9.96,38.54,3.6 -14-15-92-00-12-91-b4-34,9.98,39.49,3.6 -14-15-92-00-12-91-cc-b0,9.98,40.51,3.6 -14-15-92-00-12-91-cc-9f,9.98,41.41,3.6 -14-15-92-00-12-91-c8-36,9.96,42.41,3.6 -14-15-92-00-12-91-ca-8a,11.34,38.57,3.35 -14-15-92-00-12-91-cd-71,11.36,39.57,3.35 -14-15-92-00-12-91-b2-c4,11.36,40.57,3.35 -14-15-92-00-12-91-b3-3f,11.36,41.47,3.35 -14-15-92-00-12-91-c3-1a,8.53,37.32,2.57 -14-15-92-00-12-91-b5-65,8.53,38.43,2.57 -14-15-92-00-12-91-b7-00,8.53,39.45,2.57 -14-15-92-00-12-91-c6-3c,10.24,37.34,2.57 -14-15-92-00-12-91-c5-cc,10.24,38.24,2.57 -14-15-92-00-12-91-ce-e7,10.24,39.47,2.57 -14-15-92-00-12-91-c5-43,6.91,39.77,3.5 -14-15-92-00-12-91-ce-47,8.83,40.28,2.66 -14-15-92-00-12-91-c1-08,6.91,41.77,3.25 -14-15-92-00-12-91-bc-0f,9.51,42.8,3.34 -14-15-92-00-12-91-ca-22,8.56,40.05,3.7 -14-15-92-00-12-91-c6-c4,6.91,40.87,3.53 -14-15-92-00-12-91-b1-4d,9.51,41.87,3.34 -14-15-92-00-12-91-b8-c8,10.36,40.09,3.7 -14-15-92-00-12-91-ce-6c,10.51,38.42,3.37 -14-15-92-00-12-91-bd-f0,11.41,42.95,3.63 -14-15-92-00-12-91-c8-19,12.23,41.31,3.65 -14-15-92-00-12-91-b4-e4,10.24,40.28,2.6 -14-15-92-00-12-91-c9-4e,12.23,41.91,3.27 -14-15-92-00-12-91-c8-fb,12.23,40.57,3.53 -14-15-92-00-12-91-be-2e,7.31,42.95,3.62 -14-15-92-00-12-91-c4-ed,8.12,42.95,3.63 -14-15-92-00-12-91-b6-69,8.88,42.95,3.63 -14-15-92-00-12-91-cd-4c,7.69,41.9,3.35 -14-15-92-00-12-91-b8-06,5.7,32.68,1.04 diff --git a/metas/lille.json b/metas/lille.json deleted file mode 100644 index 4553a05f8a..0000000000 --- a/metas/lille.json +++ /dev/null @@ -1,2087 +0,0 @@ -[ - { - "archi": "m3:at86rf231", - "network_address": "m3-6.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-12-55", - "state": "Alive", - "y": "0.1", - "x": "3.22", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-9.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-10-55", - "state": "Alive", - "y": "0.1", - "x": "5.62", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-10.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-21-56", - "state": "Alive", - "y": "0.1", - "x": "5.62", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-11.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-14-57", - "state": "Alive", - "y": "0.1", - "x": "6.82", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-14.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b5-88", - "state": "Alive", - "y": "0.1", - "x": "8.02", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-15.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-21-50", - "state": "Alive", - "y": "0.1", - "x": "9.22", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-18.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-18-54", - "state": "Alive", - "y": "0.1", - "x": "10.42", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-19.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-24-55", - "state": "Alive", - "y": "0.1", - "x": "11.62", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-23.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-34-54", - "state": "Alive", - "y": "0.1", - "x": "14.02", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-24.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-10-58", - "state": "Alive", - "y": "0.1", - "x": "14.02", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-26.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-91-70", - "state": "Alive", - "y": "0.1", - "x": "15.22", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-27.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-99-73", - "state": "Alive", - "y": "0.3", - "x": "0.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-28.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-11-55", - "state": "Alive", - "y": "0.3", - "x": "0.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-32.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-17-59", - "state": "Alive", - "y": "0.3", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-33.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-17-58", - "state": "Alive", - "y": "0.3", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-34.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b3-73", - "state": "Alive", - "y": "0.3", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-38.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-21-51", - "state": "Alive", - "y": "0.3", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-39.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b2-71", - "state": "Alive", - "y": "0.3", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-40.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b3-70", - "state": "Alive", - "y": "0.3", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-42.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-17-57", - "state": "Alive", - "y": "0.3", - "x": "16.1", - "z": "2.4" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-47.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-a1-73", - "state": "Alive", - "y": "1.5", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-49.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-b5-72", - "state": "Alive", - "y": "1.5", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-51.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b0-71", - "state": "Alive", - "y": "1.5", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-52.lille.iot-lab.info", - "mac": "05-43-32-ff-03-df-b4-73", - "state": "Alive", - "y": "1.5", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-54.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-97-73", - "state": "Alive", - "y": "1.5", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-56.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-a6-89", - "state": "Alive", - "y": "1.5", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-57.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-27-55", - "state": "Alive", - "y": "1.5", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-63.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a6-73", - "state": "Alive", - "y": "2.7", - "x": "0.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-64.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a2-73", - "state": "Alive", - "y": "2.7", - "x": "0.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-65.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-97-77", - "state": "Alive", - "y": "2.7", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-66.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a3-90", - "state": "Alive", - "y": "2.7", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-67.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-85-74", - "state": "Alive", - "y": "2.7", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-70.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-87-74", - "state": "Alive", - "y": "2.7", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-71.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d6-86-74", - "state": "Alive", - "y": "2.7", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-72.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a0-77", - "state": "Alive", - "y": "2.7", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-73.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-17-56", - "state": "Alive", - "y": "2.7", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-74.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-28-52", - "state": "Alive", - "y": "2.7", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-76.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-25-50", - "state": "Alive", - "y": "2.7", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-82.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b0-89", - "state": "Alive", - "y": "3.9", - "x": "0.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-83.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-14-59", - "state": "Alive", - "y": "3.9", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-85.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b6-71", - "state": "Alive", - "y": "3.9", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-87.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-22-58", - "state": "Alive", - "y": "3.9", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-88.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-27-50", - "state": "Alive", - "y": "3.9", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-89.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-35-54", - "state": "Alive", - "y": "3.9", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-90.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-09-56", - "state": "Alive", - "y": "3.9", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-91.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-c1-70", - "state": "Alive", - "y": "3.9", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-92.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-99-89", - "state": "Alive", - "y": "3.9", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-94.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b2-72", - "state": "Alive", - "y": "3.9", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-95.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-24-59", - "state": "Alive", - "y": "3.9", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-97.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-25-55", - "state": "Alive", - "y": "3.9", - "x": "16.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-100.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-89-73", - "state": "Alive", - "y": "5.1", - "x": "0.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-102.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a4-73", - "state": "Alive", - "y": "5.1", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-104.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-06-60", - "state": "Alive", - "y": "5.1", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-106.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-35-59", - "state": "Alive", - "y": "5.1", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-108.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-b1-72", - "state": "Alive", - "y": "5.1", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-110.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-28-53", - "state": "Alive", - "y": "5.1", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-111.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-38-58", - "state": "Alive", - "y": "5.1", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-113.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-19-57", - "state": "Alive", - "y": "5.1", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-114.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b8-72", - "state": "Alive", - "y": "5.1", - "x": "16.1", - "z": "2.4" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-115.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-a8-90", - "state": "Alive", - "y": "5.1", - "x": "16.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-116.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b4-88", - "state": "Alive", - "y": "5.1", - "x": "16.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-118.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-25-56", - "state": "Alive", - "y": "5.45", - "x": "5.42", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-121.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-10-61", - "state": "Alive", - "y": "5.1", - "x": "14.18", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-122.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-31-54", - "state": "Alive", - "y": "5.1", - "x": "14.18", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-125.lille.iot-lab.info", - "mac": "05-43-32-ff-03-de-95-70", - "state": "Alive", - "y": "6.3", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-127.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-35-58", - "state": "Alive", - "y": "6.3", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-130.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-19-54", - "state": "Alive", - "y": "6.3", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-131.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b3-88", - "state": "Alive", - "y": "6.3", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-132.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b9-73", - "state": "Alive", - "y": "6.3", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-133.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-24-51", - "state": "Alive", - "y": "6.3", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-134.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-b6-70", - "state": "Alive", - "y": "6.3", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-135.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-09-57", - "state": "Alive", - "y": "6.3", - "x": "14.18", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-136.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-05-61", - "state": "Alive", - "y": "6.3", - "x": "14.18", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-138.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d4-18-56", - "state": "Alive", - "y": "7.5", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-140.lille.iot-lab.info", - "mac": "05-43-32-ff-03-de-90-73", - "state": "Alive", - "y": "7.5", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-142.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-92-70", - "state": "Alive", - "y": "7.5", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-143.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-87-73", - "state": "Alive", - "y": "7.5", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-144.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-a1-89", - "state": "Alive", - "y": "7.5", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-145.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-a1-70", - "state": "Alive", - "y": "7.5", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-148.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-c2-73", - "state": "Alive", - "y": "7.5", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-149.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d6-90-74", - "state": "Alive", - "y": "7.5", - "x": "14.18", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-156.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-29-55", - "state": "Alive", - "y": "8.7", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-157.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-23-50", - "state": "Alive", - "y": "8.7", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-159.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-20-50", - "state": "Alive", - "y": "8.7", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-161.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-18-55", - "state": "Alive", - "y": "8.7", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-163.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-17-54", - "state": "Alive", - "y": "8.7", - "x": "14.18", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-169.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-29-51", - "state": "Alive", - "y": "9.16", - "x": "3.22", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-170.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-17-51", - "state": "Alive", - "y": "9.16", - "x": "3.22", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-173.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-11-56", - "state": "Alive", - "y": "9.16", - "x": "6.82", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-174.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-20-55", - "state": "Alive", - "y": "9.16", - "x": "6.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-177.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-b3-89", - "state": "Alive", - "y": "9.16", - "x": "9.22", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-179.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-33-55", - "state": "Alive", - "y": "9.9", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-181.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-27-54", - "state": "Alive", - "y": "9.9", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-182.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-84-74", - "state": "Alive", - "y": "9.9", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-184.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-31-58", - "state": "Alive", - "y": "9.9", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-187.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-91-73", - "state": "Alive", - "y": "9.9", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-188.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-13-58", - "state": "Alive", - "y": "9.9", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-190.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-34-53", - "state": "Alive", - "y": "9.9", - "x": "14.18", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-193.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-38-59", - "state": "Alive", - "y": "11.1", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-194.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-95-73", - "state": "Alive", - "y": "11.1", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-195.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-21-52", - "state": "Alive", - "y": "11.1", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-196.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-25-59", - "state": "Alive", - "y": "11.1", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-197.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b2-73", - "state": "Alive", - "y": "11.1", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-200.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-97-70", - "state": "Alive", - "y": "11.1", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-202.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-27-51", - "state": "Alive", - "y": "11.1", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-203.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-85-73", - "state": "Alive", - "y": "11.1", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-204.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-20-52", - "state": "Alive", - "y": "11.1", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-209.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d6-b5-71", - "state": "Alive", - "y": "12.3", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-210.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-12-54", - "state": "Alive", - "y": "12.3", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-211.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-27-59", - "state": "Alive", - "y": "12.3", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-212.lille.iot-lab.info", - "mac": "05-43-32-ff-03-de-b2-70", - "state": "Alive", - "y": "12.3", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-213.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-18-59", - "state": "Alive", - "y": "12.3", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-214.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-23-52", - "state": "Alive", - "y": "12.3", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-215.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-34-58", - "state": "Alive", - "y": "12.3", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-217.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-31-52", - "state": "Alive", - "y": "12.3", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-218.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-93-73", - "state": "Alive", - "y": "13.5", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-219.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-23-59", - "state": "Alive", - "y": "13.5", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-220.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-c2-70", - "state": "Alive", - "y": "13.5", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-221.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-b8-73", - "state": "Alive", - "y": "13.5", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-223.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-25-52", - "state": "Alive", - "y": "13.5", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-226.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-24-50", - "state": "Alive", - "y": "13.5", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-228.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-b0-73", - "state": "Alive", - "y": "13.5", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-229.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-a7-90", - "state": "Alive", - "y": "13.5", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-230.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-12-58", - "state": "Alive", - "y": "13.5", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-232.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-28-51", - "state": "Alive", - "y": "14.7", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-233.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-12-56", - "state": "Alive", - "y": "14.7", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-238.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-31-53", - "state": "Alive", - "y": "14.7", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-239.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-33-58", - "state": "Alive", - "y": "14.7", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-241.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-20-51", - "state": "Alive", - "y": "14.7", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-243.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-15-52", - "state": "Alive", - "y": "14.7", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-244.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-26-59", - "state": "Alive", - "y": "15.9", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-245.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-31-51", - "state": "Alive", - "y": "15.9", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-246.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-24-54", - "state": "Alive", - "y": "15.9", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-248.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-24-58", - "state": "Alive", - "y": "15.9", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-250.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-b8-71", - "state": "Alive", - "y": "15.9", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-253.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-12-57", - "state": "Alive", - "y": "15.9", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-254.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b3-71", - "state": "Alive", - "y": "15.9", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-255.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-28-58", - "state": "Alive", - "y": "15.9", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-256.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-25-54", - "state": "Alive", - "y": "15.9", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-2.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-30-51", - "state": "Alive", - "y": "0.1", - "x": "0.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-4.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-32-59", - "state": "Alive", - "y": "0.1", - "x": "2.02", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-5.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-14-53", - "state": "Alive", - "y": "0.1", - "x": "3.22", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-7.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d4-a5-90", - "state": "Alive", - "y": "0.1", - "x": "4.42", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-12.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-11-58", - "state": "Alive", - "y": "0.1", - "x": "6.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-13.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-34-55", - "state": "Alive", - "y": "0.1", - "x": "8.02", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-16.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-26-55", - "state": "Alive", - "y": "0.1", - "x": "9.22", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-17.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-23-55", - "state": "Alive", - "y": "0.1", - "x": "10.42", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-20.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-33-53", - "state": "Alive", - "y": "0.1", - "x": "11.62", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-21.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-26-52", - "state": "Alive", - "y": "0.1", - "x": "12.82", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-22.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-27-58", - "state": "Alive", - "y": "0.1", - "x": "12.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-25.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d4-16-56", - "state": "Alive", - "y": "0.1", - "x": "15.22", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-30.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-38-62", - "state": "Alive", - "y": "0.3", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-31.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-07-61", - "state": "Alive", - "y": "0.3", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-35.lille.iot-lab.info", - "state": "Alive", - "y": "0.3", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-36.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b1-89", - "state": "Alive", - "y": "0.3", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-37.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-a4-89", - "state": "Alive", - "y": "0.3", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-43.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-c4-73", - "state": "Alive", - "y": "0.3", - "x": "16.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-45.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-11-61", - "state": "Alive", - "y": "1.5", - "x": "0.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-46.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-a0-90", - "state": "Alive", - "y": "1.5", - "x": "0.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-48.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-16-51", - "state": "Alive", - "y": "1.5", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-50.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-c0-70", - "state": "Alive", - "y": "1.5", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-53.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b3-72", - "state": "Alive", - "y": "1.5", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-58.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-18-52", - "state": "Alive", - "y": "1.5", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-59.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-21-54", - "state": "Alive", - "y": "1.5", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-60.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-09-61", - "state": "Alive", - "y": "1.5", - "x": "16.1", - "z": "2.4" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-61.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d4-16-57", - "state": "Alive", - "y": "1.5", - "x": "16.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-62.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-37-58", - "state": "Alive", - "y": "1.5", - "x": "16.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-69.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-93-70", - "state": "Alive", - "y": "2.7", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-77.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-99-77", - "state": "Alive", - "y": "2.7", - "x": "15.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-78.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-30-52", - "state": "Alive", - "y": "2.7", - "x": "16.1", - "z": "2.4" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-81.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-14-54", - "state": "Alive", - "y": "3.9", - "x": "0.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-84.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-15-56", - "state": "Alive", - "y": "3.9", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-86.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b7-71", - "state": "Alive", - "y": "3.9", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-93.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-92-73", - "state": "Alive", - "y": "3.9", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-96.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-08-57", - "state": "Alive", - "y": "3.9", - "x": "16.1", - "z": "2.4" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-98.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-98-73", - "state": "Alive", - "y": "3.9", - "x": "16.1", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-99.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-90-70", - "state": "Alive", - "y": "5.1", - "x": "0.1", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-103.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-16-54", - "state": "Alive", - "y": "5.1", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-105.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-28-55", - "state": "Alive", - "y": "5.1", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-107.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b2-89", - "state": "Alive", - "y": "5.1", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-109.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-09-58", - "state": "Alive", - "y": "5.1", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-112.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-a2-70", - "state": "Alive", - "y": "5.1", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-117.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-11-54", - "state": "Alive", - "y": "5.45", - "x": "5.42", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-119.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-13-56", - "state": "Alive", - "y": "5.45", - "x": "10.82", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-120.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-07-58", - "state": "Alive", - "y": "5.45", - "x": "10.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-123.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-84-73", - "state": "Alive", - "y": "6.3", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-124.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d4-b4-71", - "state": "Alive", - "y": "6.3", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-126.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-19-56", - "state": "Alive", - "y": "6.3", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-137.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-26-50", - "state": "Alive", - "y": "7.5", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-139.lille.iot-lab.info", - "state": "Alive", - "y": "7.5", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-141.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-31-55", - "state": "Alive", - "y": "7.5", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-146.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-98-77", - "state": "Alive", - "y": "7.5", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-147.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d4-13-59", - "state": "Alive", - "y": "7.5", - "x": "12.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-151.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-b1-73", - "state": "Alive", - "y": "8.7", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-152.lille.iot-lab.info", - "mac": "05-43-32-ff-03-e0-c0-73", - "state": "Alive", - "y": "8.7", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-153.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d7-28-50", - "state": "Alive", - "y": "8.7", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-154.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-32-54", - "state": "Alive", - "y": "8.7", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-155.lille.iot-lab.info", - "state": "Alive", - "y": "8.7", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-158.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b4-72", - "state": "Alive", - "y": "8.7", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-162.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d6-22-57", - "state": "Alive", - "y": "8.7", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-164.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-86-73", - "state": "Alive", - "y": "8.7", - "x": "14.18", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-165.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a0-70", - "state": "Alive", - "y": "9.16", - "x": "0.82", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-166.lille.iot-lab.info", - "mac": "05-43-32-ff-03-df-c3-73", - "state": "Alive", - "y": "9.16", - "x": "0.82", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-167.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-13-55", - "state": "Alive", - "y": "9.16", - "x": "2.02", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-168.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-31-59", - "state": "Alive", - "y": "9.16", - "x": "2.02", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-171.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-29-59", - "state": "Alive", - "y": "9.16", - "x": "4.42", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-172.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-a7-71", - "state": "Alive", - "y": "9.16", - "x": "4.42", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-175.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-39-62", - "state": "Alive", - "y": "9.16", - "x": "8.02", - "z": "1.5" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-176.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-b9-70", - "state": "Alive", - "y": "9.16", - "x": "8.02", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-180.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d5-24-56", - "state": "Alive", - "y": "9.9", - "x": "2.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-183.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-a8-73", - "state": "Alive", - "y": "9.9", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-185.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-30-59", - "state": "Alive", - "y": "9.9", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-186.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-a3-73", - "state": "Alive", - "y": "9.9", - "x": "10.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-189.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-a2-89", - "state": "Alive", - "y": "9.9", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-191.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-a4-90", - "state": "Alive", - "y": "9.9", - "x": "14.18", - "z": "0.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-192.lille.iot-lab.info", - "mac": "05-43-32-ff-03-db-a5-73", - "state": "Alive", - "y": "11.1", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-198.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-14-55", - "state": "Alive", - "y": "11.1", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-199.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-16-52", - "state": "Alive", - "y": "11.1", - "x": "9.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-201.lille.iot-lab.info", - "mac": "05-43-32-ff-03-da-a8-71", - "state": "Alive", - "y": "11.1", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-205.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d8-18-57", - "state": "Alive", - "y": "12.3", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-207.lille.iot-lab.info", - "mac": "05-43-32-ff-02-db-26-51", - "state": "Alive", - "y": "12.3", - "x": "3.22", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-208.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d9-88-73", - "state": "Alive", - "y": "12.3", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-222.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b2-88", - "state": "Alive", - "y": "13.5", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-224.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b0-70", - "state": "Alive", - "y": "13.5", - "x": "8.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-227.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d0-09-59", - "state": "Alive", - "y": "13.5", - "x": "11.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-231.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d2-21-59", - "state": "Alive", - "y": "14.7", - "x": "0.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-234.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-22-51", - "state": "Alive", - "y": "14.7", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-235.lille.iot-lab.info", - "mac": "05-43-32-ff-03-d6-a8-89", - "state": "Alive", - "y": "14.7", - "x": "5.62", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-242.lille.iot-lab.info", - "mac": "05-43-32-ff-02-dc-20-54", - "state": "Alive", - "y": "14.7", - "x": "14.02", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-247.lille.iot-lab.info", - "mac": "05-43-32-ff-02-d9-15-54", - "state": "Alive", - "y": "15.9", - "x": "4.42", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-249.lille.iot-lab.info", - "mac": "05-43-32-ff-03-dc-b7-70", - "state": "Alive", - "y": "15.9", - "x": "6.82", - "z": "2.6" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-252.lille.iot-lab.info", - "mac": "05-43-32-ff-02-da-23-58", - "state": "Alive", - "y": "15.9", - "x": "10.42", - "z": "2.6" - } -] \ No newline at end of file diff --git a/metas/lille_eui64.csv b/metas/lille_eui64.csv deleted file mode 100644 index d994ae598b..0000000000 --- a/metas/lille_eui64.csv +++ /dev/null @@ -1,231 +0,0 @@ -05-43-32-ff-02-d9-21-56,m3-10 -05-43-32-ff-03-d8-89-73,m3-100 -05-43-32-ff-03-dd-a4-73,m3-102 -05-43-32-ff-02-d6-16-54,m3-103 -05-43-32-ff-02-da-06-60,m3-104 -05-43-32-ff-02-db-28-55,m3-105 -05-43-32-ff-02-d9-35-59,m3-106 -05-43-32-ff-03-db-b2-89,m3-107 -05-43-32-ff-03-da-b1-72,m3-108 -05-43-32-ff-02-da-09-58,m3-109 -05-43-32-ff-02-d8-14-57,m3-11 -05-43-32-ff-02-d5-28-53,m3-110 -05-43-32-ff-02-d7-38-58,m3-111 -05-43-32-ff-03-da-a2-70,m3-112 -05-43-32-ff-02-d5-19-57,m3-113 -05-43-32-ff-03-db-b8-72,m3-114 -05-43-32-ff-03-d7-a8-90,m3-115 -05-43-32-ff-03-db-b4-88,m3-116 -05-43-32-ff-02-db-11-54,m3-117 -05-43-32-ff-02-d7-25-56,m3-118 -05-43-32-ff-02-d5-13-56,m3-119 -05-43-32-ff-02-d6-11-58,m3-12 -05-43-32-ff-02-d7-07-58,m3-120 -05-43-32-ff-02-dc-10-61,m3-121 -05-43-32-ff-02-da-31-54,m3-122 -05-43-32-ff-03-da-84-73,m3-123 -05-43-32-ff-03-d4-b4-71,m3-124 -05-43-32-ff-03-de-95-70,m3-125 -05-43-32-ff-02-d9-19-56,m3-126 -05-43-32-ff-02-d5-35-58,m3-127 -05-43-32-ff-02-db-34-55,m3-13 -05-43-32-ff-02-d8-19-54,m3-130 -05-43-32-ff-03-db-b3-88,m3-131 -05-43-32-ff-03-d9-b9-73,m3-132 -05-43-32-ff-02-d9-24-51,m3-133 -05-43-32-ff-03-dd-b6-70,m3-134 -05-43-32-ff-02-da-09-57,m3-135 -05-43-32-ff-02-d9-05-61,m3-136 -05-43-32-ff-02-d8-26-50,m3-137 -05-43-32-ff-02-d4-18-56,m3-138 -05-43-32-ff-03-d7-b5-88,m3-14 -05-43-32-ff-03-de-90-73,m3-140 -05-43-32-ff-02-d8-31-55,m3-141 -05-43-32-ff-03-d8-92-70,m3-142 -05-43-32-ff-03-d7-87-73,m3-143 -05-43-32-ff-03-d8-a1-89,m3-144 -05-43-32-ff-03-dc-a1-70,m3-145 -05-43-32-ff-03-da-98-77,m3-146 -05-43-32-ff-02-d4-13-59,m3-147 -05-43-32-ff-03-dc-c2-73,m3-148 -05-43-32-ff-03-d6-90-74,m3-149 -05-43-32-ff-02-da-21-50,m3-15 -05-43-32-ff-03-db-b1-73,m3-151 -05-43-32-ff-03-e0-c0-73,m3-152 -05-43-32-ff-02-d7-28-50,m3-153 -05-43-32-ff-02-da-32-54,m3-154 -05-43-32-ff-02-d9-29-55,m3-156 -05-43-32-ff-02-da-23-50,m3-157 -05-43-32-ff-03-d8-b4-72,m3-158 -05-43-32-ff-02-d8-20-50,m3-159 -05-43-32-ff-02-d7-26-55,m3-16 -05-43-32-ff-02-da-18-55,m3-161 -05-43-32-ff-02-d6-22-57,m3-162 -05-43-32-ff-02-da-17-54,m3-163 -05-43-32-ff-03-d9-86-73,m3-164 -05-43-32-ff-03-dd-a0-70,m3-165 -05-43-32-ff-03-df-c3-73,m3-166 -05-43-32-ff-02-da-13-55,m3-167 -05-43-32-ff-02-da-31-59,m3-168 -05-43-32-ff-02-d7-29-51,m3-169 -05-43-32-ff-02-d6-23-55,m3-17 -05-43-32-ff-02-d9-17-51,m3-170 -05-43-32-ff-02-db-29-59,m3-171 -05-43-32-ff-03-da-a7-71,m3-172 -05-43-32-ff-02-d7-11-56,m3-173 -05-43-32-ff-02-d7-20-55,m3-174 -05-43-32-ff-02-d8-39-62,m3-175 -05-43-32-ff-03-da-b9-70,m3-176 -05-43-32-ff-03-dc-b3-89,m3-177 -05-43-32-ff-02-d9-33-55,m3-179 -05-43-32-ff-02-d9-18-54,m3-18 -05-43-32-ff-02-d5-24-56,m3-180 -05-43-32-ff-02-d9-27-54,m3-181 -05-43-32-ff-03-d8-84-74,m3-182 -05-43-32-ff-03-db-a8-73,m3-183 -05-43-32-ff-02-da-31-58,m3-184 -05-43-32-ff-02-d8-30-59,m3-185 -05-43-32-ff-03-da-a3-73,m3-186 -05-43-32-ff-03-d9-91-73,m3-187 -05-43-32-ff-02-d7-13-58,m3-188 -05-43-32-ff-03-d8-a2-89,m3-189 -05-43-32-ff-02-da-24-55,m3-19 -05-43-32-ff-02-d7-34-53,m3-190 -05-43-32-ff-03-da-a4-90,m3-191 -05-43-32-ff-03-db-a5-73,m3-192 -05-43-32-ff-02-d8-38-59,m3-193 -05-43-32-ff-03-db-95-73,m3-194 -05-43-32-ff-02-dc-21-52,m3-195 -05-43-32-ff-02-d6-25-59,m3-196 -05-43-32-ff-03-d8-b2-73,m3-197 -05-43-32-ff-02-da-14-55,m3-198 -05-43-32-ff-02-dc-16-52,m3-199 -05-43-32-ff-02-d9-30-51,m3-2 -05-43-32-ff-02-dc-33-53,m3-20 -05-43-32-ff-03-d9-97-70,m3-200 -05-43-32-ff-03-da-a8-71,m3-201 -05-43-32-ff-02-d8-27-51,m3-202 -05-43-32-ff-03-d8-85-73,m3-203 -05-43-32-ff-02-d6-20-52,m3-204 -05-43-32-ff-02-d8-18-57,m3-205 -05-43-32-ff-02-db-26-51,m3-207 -05-43-32-ff-03-d9-88-73,m3-208 -05-43-32-ff-03-d6-b5-71,m3-209 -05-43-32-ff-02-d6-26-52,m3-21 -05-43-32-ff-02-db-12-54,m3-210 -05-43-32-ff-02-d9-27-59,m3-211 -05-43-32-ff-03-de-b2-70,m3-212 -05-43-32-ff-02-da-18-59,m3-213 -05-43-32-ff-02-d7-23-52,m3-214 -05-43-32-ff-02-db-34-58,m3-215 -05-43-32-ff-02-db-31-52,m3-217 -05-43-32-ff-03-dc-93-73,m3-218 -05-43-32-ff-02-d8-23-59,m3-219 -05-43-32-ff-02-d9-27-58,m3-22 -05-43-32-ff-03-d9-c2-70,m3-220 -05-43-32-ff-03-dc-b8-73,m3-221 -05-43-32-ff-03-d8-b2-88,m3-222 -05-43-32-ff-02-db-25-52,m3-223 -05-43-32-ff-03-d8-b0-70,m3-224 -05-43-32-ff-02-db-24-50,m3-226 -05-43-32-ff-02-d0-09-59,m3-227 -05-43-32-ff-03-dd-b0-73,m3-228 -05-43-32-ff-03-db-a7-90,m3-229 -05-43-32-ff-02-d7-34-54,m3-23 -05-43-32-ff-02-d5-12-58,m3-230 -05-43-32-ff-02-d2-21-59,m3-231 -05-43-32-ff-02-da-28-51,m3-232 -05-43-32-ff-02-d7-12-56,m3-233 -05-43-32-ff-02-da-22-51,m3-234 -05-43-32-ff-03-d6-a8-89,m3-235 -05-43-32-ff-02-d9-31-53,m3-238 -05-43-32-ff-02-d9-33-58,m3-239 -05-43-32-ff-02-da-10-58,m3-24 -05-43-32-ff-02-d7-20-51,m3-241 -05-43-32-ff-02-dc-20-54,m3-242 -05-43-32-ff-02-d8-15-52,m3-243 -05-43-32-ff-02-db-26-59,m3-244 -05-43-32-ff-02-da-31-51,m3-245 -05-43-32-ff-02-d7-24-54,m3-246 -05-43-32-ff-02-d9-15-54,m3-247 -05-43-32-ff-02-d7-24-58,m3-248 -05-43-32-ff-03-dc-b7-70,m3-249 -05-43-32-ff-02-d4-16-56,m3-25 -05-43-32-ff-03-dc-b8-71,m3-250 -05-43-32-ff-02-da-23-58,m3-252 -05-43-32-ff-02-d9-12-57,m3-253 -05-43-32-ff-03-d8-b3-71,m3-254 -05-43-32-ff-02-da-28-58,m3-255 -05-43-32-ff-02-d6-25-54,m3-256 -05-43-32-ff-02-d9-08-5,m3-257 -05-43-32-ff-03-da-a9-71,m3-258 -05-43-32-ff-03-da-91-70,m3-26 -05-43-32-ff-03-da-99-73,m3-27 -05-43-32-ff-02-d9-11-55,m3-28 -05-43-32-ff-02-db-38-62,m3-30 -05-43-32-ff-02-d9-07-61,m3-31 -05-43-32-ff-02-d9-17-59,m3-32 -05-43-32-ff-02-d8-17-58,m3-33 -05-43-32-ff-03-db-b3-73,m3-34 -05-43-32-ff-03-d7-b1-89,m3-36 -05-43-32-ff-03-d7-a4-89,m3-37 -05-43-32-ff-02-d9-21-51,m3-38 -05-43-32-ff-03-db-b2-71,m3-39 -05-43-32-ff-02-db-32-59,m3-4 -05-43-32-ff-03-d9-b3-70,m3-40 -05-43-32-ff-02-d6-17-57,m3-42 -05-43-32-ff-03-dd-c4-73,m3-43 -05-43-32-ff-02-d6-11-61,m3-45 -05-43-32-ff-03-dc-a0-90,m3-46 -05-43-32-ff-03-db-a1-73,m3-47 -05-43-32-ff-02-db-16-51,m3-48 -05-43-32-ff-03-da-b5-72,m3-49 -05-43-32-ff-02-db-14-53,m3-5 -05-43-32-ff-03-d8-c0-70,m3-50 -05-43-32-ff-03-d7-b0-71,m3-51 -05-43-32-ff-03-df-b4-73,m3-52 -05-43-32-ff-03-d7-b3-72,m3-53 -05-43-32-ff-03-d7-97-73,m3-54 -05-43-32-ff-03-d8-a6-89,m3-56 -05-43-32-ff-02-da-27-55,m3-57 -05-43-32-ff-02-db-18-52,m3-58 -05-43-32-ff-02-d8-21-54,m3-59 -05-43-32-ff-02-d5-12-55,m3-6 -05-43-32-ff-02-d6-09-61,m3-60 -05-43-32-ff-02-d4-16-57,m3-61 -05-43-32-ff-02-da-37-58,m3-62 -05-43-32-ff-03-d9-a6-73,m3-63 -05-43-32-ff-03-dd-a2-73,m3-64 -05-43-32-ff-03-d9-97-77,m3-65 -05-43-32-ff-03-d9-a3-90,m3-66 -05-43-32-ff-03-d8-85-74,m3-67 -05-43-32-ff-03-da-93-70,m3-69 -05-43-32-ff-03-d4-a5-90,m3-7 -05-43-32-ff-03-d9-87-74,m3-70 -05-43-32-ff-03-d6-86-74,m3-71 -05-43-32-ff-03-d9-a0-77,m3-72 -05-43-32-ff-02-da-17-56,m3-73 -05-43-32-ff-02-dc-28-52,m3-74 -05-43-32-ff-02-d7-25-50,m3-76 -05-43-32-ff-03-db-99-77,m3-77 -05-43-32-ff-02-d8-30-52,m3-78 -05-43-32-ff-02-d8-14-54,m3-81 -05-43-32-ff-03-d9-b0-89,m3-82 -05-43-32-ff-02-dc-14-59,m3-83 -05-43-32-ff-02-d5-15-56,m3-84 -05-43-32-ff-03-d8-b6-71,m3-85 -05-43-32-ff-03-db-b7-71,m3-86 -05-43-32-ff-02-db-22-58,m3-87 -05-43-32-ff-02-d7-27-50,m3-88 -05-43-32-ff-02-da-35-54,m3-89 -05-43-32-ff-02-da-10-55,m3-9 -05-43-32-ff-02-d8-09-56,m3-90 -05-43-32-ff-03-d8-c1-70,m3-91 -05-43-32-ff-03-d7-99-89,m3-92 -05-43-32-ff-03-db-92-73,m3-93 -05-43-32-ff-03-d9-b2-72,m3-94 -05-43-32-ff-02-d7-24-59,m3-95 -05-43-32-ff-02-da-08-57,m3-96 -05-43-32-ff-02-dc-25-55,m3-97 -05-43-32-ff-03-dd-98-73,m3-98 -05-43-32-ff-03-dc-90-70,m3-99 diff --git a/metas/locations.json b/metas/locations.json deleted file mode 100644 index ffa971b29d..0000000000 --- a/metas/locations.json +++ /dev/null @@ -1,11259 +0,0 @@ -[ - { - "nodes": [ - { - "y": "2.1", - "x": "1.31", - "z": "2.78", - "network_address": "a8-1.lyon.iot-lab.info" - }, - { - "y": "2.51", - "x": "1.31", - "z": "2.78", - "network_address": "a8-2.lyon.iot-lab.info" - }, - { - "y": "1.6", - "x": "3.1", - "z": "2.78", - "network_address": "a8-3.lyon.iot-lab.info" - }, - { - "y": "1.6", - "x": "3.82", - "z": "2.78", - "network_address": "a8-4.lyon.iot-lab.info" - }, - { - "y": "2.70", - "x": "4.5", - "z": "2.78", - "network_address": "a8-5.lyon.iot-lab.info" - }, - { - "y": "3.92", - "x": "4.5", - "z": "2.78", - "network_address": "a8-6.lyon.iot-lab.info" - }, - { - "y": "4.56", - "x": "4.5", - "z": "2.78", - "network_address": "a8-7.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "6.94", - "z": "2.78", - "network_address": "a8-8.lyon.iot-lab.info" - }, - { - "y": "4.22", - "x": "8.35", - "z": "2.78", - "network_address": "a8-10.lyon.iot-lab.info" - }, - { - "y": "4", - "x": "1.31", - "z": "2.78", - "network_address": "m3-1.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "3.2", - "z": "2.78", - "network_address": "m3-2.lyon.iot-lab.info" - }, - { - "y": "2.02", - "x": "4.5", - "z": "2.78", - "network_address": "m3-4.lyon.iot-lab.info" - }, - { - "y": "2.65", - "x": "4.5", - "z": "2.78", - "network_address": "m3-5.lyon.iot-lab.info" - }, - { - "y": "1.6", - "x": "5.11", - "z": "2.78", - "network_address": "m3-6.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "5.19", - "z": "2.78", - "network_address": "m3-7.lyon.iot-lab.info" - }, - { - "y": "1.6", - "x": "5.8", - "z": "2.78", - "network_address": "m3-8.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "5.88", - "z": "2.78", - "network_address": "m3-9.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "7.33", - "z": "2.78", - "network_address": "m3-10.lyon.iot-lab.info" - }, - { - "y": "3.81", - "x": "8.35", - "z": "2.78", - "network_address": "m3-11.lyon.iot-lab.info" - }, - { - "y": "5.19", - "x": "8.35", - "z": "2.78", - "network_address": "m3-12.lyon.iot-lab.info" - }, - { - "y": "5.61", - "x": "8.35", - "z": "2.78", - "network_address": "m3-13.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "8.33", - "z": "2.78", - "network_address": "m3-14.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "8.96", - "z": "2.78", - "network_address": "m3-15.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "9.60", - "z": "2.78", - "network_address": "m3-16.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "10.4", - "z": "2.78", - "network_address": "m3-17.lyon.iot-lab.info" - }, - { - "y": "6.2", - "x": "11.42", - "z": "2.78", - "network_address": "m3-18.lyon.iot-lab.info" - } - ], - "location": "lyon" - }, - { - "nodes": [ - { - "y": "9.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-1.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-2.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-3.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-4.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-5.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-6.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-7.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-8.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-9.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-10.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-11.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-12.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-13.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-14.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-15.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-16.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-17.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-18.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-19.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-20.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-21.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-22.strasbourg.iot-lab.info" - }, - { - "y": "9.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-23.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-25.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-26.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-27.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-28.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-29.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-30.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-31.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-32.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-33.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-34.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-35.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-36.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-37.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-38.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-39.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-40.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-41.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-42.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-43.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-44.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-45.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-46.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-47.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-48.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-49.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-50.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-51.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-52.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-53.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-54.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-55.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-56.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-57.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-58.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-60.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-61.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-62.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-63.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-64.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-65.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-66.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-67.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-68.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-69.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-70.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-71.strasbourg.iot-lab.info" - }, - { - "y": "7.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-72.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-73.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-74.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-75.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-76.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-77.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-78.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-79.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-80.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-81.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-82.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-83.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-84.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-85.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-86.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-87.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-88.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-89.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-90.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-91.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-92.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-93.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-94.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-95.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-96.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-97.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-98.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-99.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-100.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-101.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-102.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-103.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-104.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-105.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-106.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-107.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-108.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-109.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-110.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-111.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-112.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-113.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-114.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-115.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-116.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-117.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-118.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-119.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-120.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-121.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-122.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-123.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-124.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-125.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-126.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-127.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-128.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-129.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-130.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-131.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-132.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-133.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-134.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-135.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-136.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-138.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-139.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-140.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-141.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-142.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-143.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-144.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-145.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-146.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-147.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-148.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-149.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-150.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-151.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-152.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-153.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-154.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-155.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-156.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-157.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-158.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-159.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-160.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-161.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-162.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-163.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-164.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-165.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-166.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-167.strasbourg.iot-lab.info" - }, - { - "y": "3.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-168.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-169.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-170.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-171.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-172.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-173.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-174.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-175.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-176.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-177.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-178.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-179.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-180.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-181.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-182.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-183.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-184.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-185.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-186.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-187.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-188.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-189.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-190.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-191.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-192.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-193.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-194.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-195.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-196.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-197.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-198.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-199.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-200.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-201.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-202.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-203.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-204.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-205.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-206.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-207.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-208.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-209.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-210.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-211.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-212.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-213.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-214.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-215.strasbourg.iot-lab.info" - }, - { - "y": "1.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-216.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "0.00", - "z": "0.50", - "network_address": "wsn430-217.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "0.00", - "z": "1.50", - "network_address": "wsn430-218.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "0.00", - "z": "2.50", - "network_address": "wsn430-219.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "1.00", - "z": "0.50", - "network_address": "wsn430-220.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "1.00", - "z": "1.50", - "network_address": "wsn430-221.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "1.00", - "z": "2.50", - "network_address": "wsn430-222.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "2.00", - "z": "0.50", - "network_address": "wsn430-223.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "2.00", - "z": "1.50", - "network_address": "wsn430-224.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "2.00", - "z": "2.50", - "network_address": "wsn430-225.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "3.00", - "z": "0.50", - "network_address": "wsn430-226.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "3.00", - "z": "1.50", - "network_address": "wsn430-227.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "3.00", - "z": "2.50", - "network_address": "wsn430-228.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "4.00", - "z": "0.50", - "network_address": "wsn430-229.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "4.00", - "z": "1.50", - "network_address": "wsn430-230.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "4.00", - "z": "2.50", - "network_address": "wsn430-231.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "5.00", - "z": "0.50", - "network_address": "wsn430-232.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "5.00", - "z": "1.50", - "network_address": "wsn430-233.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "5.00", - "z": "2.50", - "network_address": "wsn430-234.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "6.00", - "z": "0.50", - "network_address": "wsn430-235.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "6.00", - "z": "1.50", - "network_address": "wsn430-236.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "6.00", - "z": "2.50", - "network_address": "wsn430-237.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "7.00", - "z": "0.50", - "network_address": "wsn430-238.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "7.00", - "z": "1.50", - "network_address": "wsn430-239.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "7.00", - "z": "2.50", - "network_address": "wsn430-240.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "2.00", - "z": "1.20", - "network_address": "a8-1.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "2.00", - "z": "2.10", - "network_address": "a8-2.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "6.00", - "z": "1.20", - "network_address": "a8-3.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "6.00", - "z": "2.10", - "network_address": "a8-4.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "10.00", - "z": "1.20", - "network_address": "a8-5.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "14.00", - "z": "1.20", - "network_address": "a8-7.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "14.00", - "z": "2.10", - "network_address": "a8-8.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "2.00", - "z": "2.10", - "network_address": "a8-10.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "6.00", - "z": "1.20", - "network_address": "a8-11.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "6.00", - "z": "2.10", - "network_address": "a8-12.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "10.00", - "z": "1.20", - "network_address": "a8-13.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "10.00", - "z": "2.10", - "network_address": "a8-14.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "0.00", - "z": "1.20", - "mac": "05-43-32-ff-03-d2-96-87", - "network_address": "m3-1.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "2.00", - "z": "1.20", - "mac": "05-43-32-ff-03-d4-97-89", - "network_address": "m3-3.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "4.00", - "z": "1.20", - "mac": "05-43-32-ff-03-d5-90-84", - "network_address": "m3-5.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "4.00", - "z": "2.10", - "network_address": "m3-6.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "6.00", - "z": "1.20", - "network_address": "m3-7.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "6.00", - "z": "2.10", - "network_address": "m3-8.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "8.00", - "z": "1.20", - "network_address": "m3-9.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "10.00", - "z": "1.20", - "network_address": "m3-11.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "12.00", - "z": "1.20", - "network_address": "m3-13.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "12.00", - "z": "2.10", - "network_address": "m3-14.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "14.00", - "z": "1.20", - "network_address": "m3-15.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "14.00", - "z": "2.10", - "network_address": "m3-16.strasbourg.iot-lab.info" - }, - { - "y": "8.00", - "x": "16.00", - "z": "1.20", - "network_address": "m3-17.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "0.00", - "z": "2.10", - "network_address": "m3-20.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "4.00", - "z": "1.20", - "network_address": "m3-21.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "4.00", - "z": "2.10", - "network_address": "m3-22.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "8.00", - "z": "1.20", - "network_address": "m3-23.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "8.00", - "z": "2.10", - "network_address": "m3-24.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "12.00", - "z": "1.20", - "network_address": "m3-25.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "16.00", - "z": "1.20", - "network_address": "m3-27.strasbourg.iot-lab.info" - }, - { - "y": "6.00", - "x": "16.00", - "z": "2.10", - "network_address": "m3-28.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "0.00", - "z": "1.20", - "network_address": "m3-29.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "2.00", - "z": "1.20", - "network_address": "m3-31.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "2.00", - "z": "2.10", - "network_address": "m3-32.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "4.00", - "z": "2.10", - "network_address": "m3-34.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "6.00", - "z": "1.20", - "network_address": "m3-35.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "6.00", - "z": "2.10", - "network_address": "m3-36.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "8.00", - "z": "1.20", - "network_address": "m3-37.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "8.00", - "z": "2.10", - "network_address": "m3-38.strasbourg.iot-lab.info" - }, - { - "y": "4.00", - "x": "10.00", - "z": "1.20", - "network_address": "m3-39.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "12.00", - "z": "1.20", - "network_address": "m3-41.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "12.00", - "z": "2.10", - "network_address": "m3-42.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "14.00", - "z": "1.20", - "network_address": "m3-43.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "14.00", - "z": "2.10", - "network_address": "m3-44.strasbourg.iot-lab.info" - }, - { - "y": "5.00", - "x": "16.00", - "z": "2.10", - "network_address": "m3-46.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "0.00", - "z": "1.20", - "network_address": "m3-47.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "4.00", - "z": "1.20", - "network_address": "m3-49.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "4.00", - "z": "2.10", - "network_address": "m3-50.strasbourg.iot-lab.info" - }, - { - "y": "2.00", - "x": "8.00", - "z": "2.10", - "network_address": "m3-52.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "0.00", - "z": "1.20", - "network_address": "m3-53.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "0.00", - "z": "2.10", - "network_address": "m3-54.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "2.00", - "z": "2.10", - "network_address": "m3-56.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "4.00", - "z": "2.10", - "network_address": "m3-58.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "6.00", - "z": "1.20", - "network_address": "m3-59.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "6.00", - "z": "2.10", - "network_address": "m3-60.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "8.00", - "z": "1.20", - "network_address": "m3-61.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "8.00", - "z": "2.10", - "network_address": "m3-62.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "10.00", - "z": "1.20", - "network_address": "m3-63.strasbourg.iot-lab.info" - }, - { - "y": "0.00", - "x": "10.00", - "z": "2.10", - "network_address": "m3-64.strasbourg.iot-lab.info" - }, - { - "y": " ", - "x": " ", - "z": " ", - "network_address": "m3-96.strasbourg.iot-lab.info" - }, - { - "y": " ", - "x": " ", - "z": " ", - "network_address": "m3-97.strasbourg.iot-lab.info" - } - ], - "location": "strasbourg" - }, - { - "nodes": [ - { - "y": "0.1", - "x": "3.22", - "z": "0.6", - "network_address": "m3-6.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "5.62", - "z": "1.5", - "network_address": "m3-9.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "8.02", - "z": "0.6", - "network_address": "m3-14.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "9.22", - "z": "1.5", - "network_address": "m3-15.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "10.42", - "z": "0.6", - "network_address": "m3-18.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "11.62", - "z": "1.5", - "network_address": "m3-19.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "14.02", - "z": "1.5", - "network_address": "m3-23.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "14.02", - "z": "0.6", - "network_address": "m3-24.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "15.22", - "z": "0.6", - "network_address": "m3-26.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "0.1", - "z": "1.5", - "network_address": "m3-27.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "0.1", - "z": "0.6", - "network_address": "m3-28.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "4.42", - "z": "2.6", - "network_address": "m3-32.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "5.62", - "z": "2.6", - "network_address": "m3-33.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "6.82", - "z": "2.6", - "network_address": "m3-34.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "11.62", - "z": "2.6", - "network_address": "m3-38.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "12.82", - "z": "2.6", - "network_address": "m3-39.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "14.02", - "z": "2.6", - "network_address": "m3-40.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "16.1", - "z": "2.4", - "network_address": "m3-42.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "0.82", - "z": "2.6", - "network_address": "m3-47.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "3.22", - "z": "2.6", - "network_address": "m3-49.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "5.62", - "z": "2.6", - "network_address": "m3-51.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "6.82", - "z": "2.6", - "network_address": "m3-52.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "9.22", - "z": "2.6", - "network_address": "m3-54.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "11.62", - "z": "2.6", - "network_address": "m3-56.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "12.82", - "z": "2.6", - "network_address": "m3-57.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "0.1", - "z": "1.5", - "network_address": "m3-63.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "0.1", - "z": "0.6", - "network_address": "m3-64.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "0.82", - "z": "2.6", - "network_address": "m3-65.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "2.02", - "z": "2.6", - "network_address": "m3-66.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "3.22", - "z": "2.6", - "network_address": "m3-67.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "6.82", - "z": "2.6", - "network_address": "m3-70.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "8.02", - "z": "2.6", - "network_address": "m3-71.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "9.22", - "z": "2.6", - "network_address": "m3-72.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "10.42", - "z": "2.6", - "network_address": "m3-73.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "11.62", - "z": "2.6", - "network_address": "m3-74.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "14.02", - "z": "2.6", - "network_address": "m3-76.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "0.1", - "z": "0.6", - "network_address": "m3-82.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "0.82", - "z": "2.6", - "network_address": "m3-83.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "3.22", - "z": "2.6", - "network_address": "m3-85.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "5.62", - "z": "2.6", - "network_address": "m3-87.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "6.82", - "z": "2.6", - "network_address": "m3-88.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "8.02", - "z": "2.6", - "network_address": "m3-89.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "9.22", - "z": "2.6", - "network_address": "m3-90.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "10.42", - "z": "2.6", - "network_address": "m3-91.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "11.62", - "z": "2.6", - "network_address": "m3-92.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "14.02", - "z": "2.6", - "network_address": "m3-94.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "15.22", - "z": "2.6", - "network_address": "m3-95.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "16.1", - "z": "1.5", - "network_address": "m3-97.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "0.1", - "z": "0.6", - "network_address": "m3-100.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "2.02", - "z": "2.6", - "network_address": "m3-102.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "4.42", - "z": "2.6", - "network_address": "m3-104.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "6.82", - "z": "2.6", - "network_address": "m3-106.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "9.22", - "z": "2.6", - "network_address": "m3-108.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "11.62", - "z": "2.6", - "network_address": "m3-110.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "12.82", - "z": "2.6", - "network_address": "m3-111.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "15.22", - "z": "2.6", - "network_address": "m3-113.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "16.1", - "z": "2.4", - "network_address": "m3-114.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "16.1", - "z": "1.5", - "network_address": "m3-115.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "16.1", - "z": "0.6", - "network_address": "m3-116.lille.iot-lab.info" - }, - { - "y": "5.45", - "x": "5.42", - "z": "0.6", - "network_address": "m3-118.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "14.18", - "z": "1.5", - "network_address": "m3-121.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "14.18", - "z": "0.6", - "network_address": "m3-122.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "3.22", - "z": "2.6", - "network_address": "m3-125.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "5.62", - "z": "2.6", - "network_address": "m3-127.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "9.22", - "z": "2.6", - "network_address": "m3-130.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "10.42", - "z": "2.6", - "network_address": "m3-131.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "11.62", - "z": "2.6", - "network_address": "m3-132.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "12.82", - "z": "2.6", - "network_address": "m3-133.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "14.02", - "z": "2.6", - "network_address": "m3-134.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "14.18", - "z": "1.5", - "network_address": "m3-135.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "14.18", - "z": "0.6", - "network_address": "m3-136.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "2.02", - "z": "2.6", - "network_address": "m3-138.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "4.42", - "z": "2.6", - "network_address": "m3-140.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "6.82", - "z": "2.6", - "network_address": "m3-142.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "8.02", - "z": "2.6", - "network_address": "m3-143.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "9.22", - "z": "2.6", - "network_address": "m3-144.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "10.42", - "z": "2.6", - "network_address": "m3-145.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "14.02", - "z": "2.6", - "network_address": "m3-148.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "14.18", - "z": "1.5", - "network_address": "m3-149.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "6.82", - "z": "2.6", - "network_address": "m3-156.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "8.02", - "z": "2.6", - "network_address": "m3-157.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "10.42", - "z": "2.6", - "network_address": "m3-159.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "12.82", - "z": "2.6", - "network_address": "m3-161.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "14.18", - "z": "1.5", - "network_address": "m3-163.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "3.22", - "z": "1.5", - "network_address": "m3-169.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "3.22", - "z": "0.6", - "network_address": "m3-170.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "6.82", - "z": "1.5", - "network_address": "m3-173.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "6.82", - "z": "0.6", - "network_address": "m3-174.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "9.22", - "z": "1.5", - "network_address": "m3-177.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "0.82", - "z": "2.6", - "network_address": "m3-179.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "3.22", - "z": "2.6", - "network_address": "m3-181.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "4.42", - "z": "2.6", - "network_address": "m3-182.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "8.02", - "z": "2.6", - "network_address": "m3-184.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "11.62", - "z": "2.6", - "network_address": "m3-187.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "12.82", - "z": "2.6", - "network_address": "m3-188.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "14.18", - "z": "1.5", - "network_address": "m3-190.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "2.02", - "z": "2.6", - "network_address": "m3-193.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "3.22", - "z": "2.6", - "network_address": "m3-194.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "4.42", - "z": "2.6", - "network_address": "m3-195.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "5.62", - "z": "2.6", - "network_address": "m3-196.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "6.82", - "z": "2.6", - "network_address": "m3-197.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "10.42", - "z": "2.6", - "network_address": "m3-200.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "12.82", - "z": "2.6", - "network_address": "m3-202.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "14.02", - "z": "2.6", - "network_address": "m3-203.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "15.22", - "z": "2.6", - "network_address": "m3-204.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "5.62", - "z": "2.6", - "network_address": "m3-209.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "6.82", - "z": "2.6", - "network_address": "m3-210.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "8.02", - "z": "2.6", - "network_address": "m3-211.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "9.22", - "z": "2.6", - "network_address": "m3-212.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "10.42", - "z": "2.6", - "network_address": "m3-213.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "11.62", - "z": "2.6", - "network_address": "m3-214.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "12.82", - "z": "2.6", - "network_address": "m3-215.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "15.22", - "z": "2.6", - "network_address": "m3-217.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "0.82", - "z": "2.6", - "network_address": "m3-218.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "2.02", - "z": "2.6", - "network_address": "m3-219.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "3.22", - "z": "2.6", - "network_address": "m3-220.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "4.42", - "z": "2.6", - "network_address": "m3-221.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "6.82", - "z": "2.6", - "network_address": "m3-223.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "10.42", - "z": "2.6", - "network_address": "m3-226.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "12.82", - "z": "2.6", - "network_address": "m3-228.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "14.02", - "z": "2.6", - "network_address": "m3-229.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "15.22", - "z": "2.6", - "network_address": "m3-230.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "2.02", - "z": "2.6", - "network_address": "m3-232.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "3.22", - "z": "2.6", - "network_address": "m3-233.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "6.82", - "z": "2.6", - "network_address": "m3-236.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "9.22", - "z": "2.6", - "network_address": "m3-238.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "10.42", - "z": "2.6", - "network_address": "m3-239.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "11.62", - "z": "2.6", - "network_address": "m3-240.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "12.82", - "z": "2.6", - "network_address": "m3-241.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "15.22", - "z": "2.6", - "network_address": "m3-243.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "0.82", - "z": "2.6", - "network_address": "m3-244.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "2.02", - "z": "2.6", - "network_address": "m3-245.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "3.22", - "z": "2.6", - "network_address": "m3-246.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "5.62", - "z": "2.6", - "network_address": "m3-248.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "8.02", - "z": "2.6", - "network_address": "m3-250.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "11.62", - "z": "2.6", - "network_address": "m3-253.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "12.82", - "z": "2.6", - "network_address": "m3-254.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "14.02", - "z": "2.6", - "network_address": "m3-255.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "15.22", - "z": "2.6", - "network_address": "m3-256.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "0.82", - "z": "0.6", - "network_address": "m3-2.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "2.02", - "z": "0.6", - "network_address": "m3-4.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "3.22", - "z": "1.5", - "network_address": "m3-5.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "4.42", - "z": "1.5", - "network_address": "m3-7.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "8.02", - "z": "1.5", - "network_address": "m3-13.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "9.22", - "z": "0.6", - "network_address": "m3-16.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "10.42", - "z": "1.5", - "network_address": "m3-17.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "11.62", - "z": "0.6", - "network_address": "m3-20.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "12.82", - "z": "1.5", - "network_address": "m3-21.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "12.82", - "z": "0.6", - "network_address": "m3-22.lille.iot-lab.info" - }, - { - "y": "0.1", - "x": "15.22", - "z": "1.5", - "network_address": "m3-25.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "2.02", - "z": "2.6", - "network_address": "m3-30.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "3.22", - "z": "2.6", - "network_address": "m3-31.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "8.02", - "z": "2.6", - "network_address": "m3-35.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "9.22", - "z": "2.6", - "network_address": "m3-36.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "10.42", - "z": "2.6", - "network_address": "m3-37.lille.iot-lab.info" - }, - { - "y": "0.3", - "x": "16.1", - "z": "1.5", - "network_address": "m3-43.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "0.1", - "z": "1.5", - "network_address": "m3-45.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "0.1", - "z": "0.6", - "network_address": "m3-46.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "2.02", - "z": "2.6", - "network_address": "m3-48.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "4.42", - "z": "2.6", - "network_address": "m3-50.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "8.02", - "z": "2.6", - "network_address": "m3-53.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "14.02", - "z": "2.6", - "network_address": "m3-58.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "15.22", - "z": "2.6", - "network_address": "m3-59.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "16.1", - "z": "2.4", - "network_address": "m3-60.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "16.1", - "z": "1.5", - "network_address": "m3-61.lille.iot-lab.info" - }, - { - "y": "1.5", - "x": "16.1", - "z": "0.6", - "network_address": "m3-62.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "5.62", - "z": "2.6", - "network_address": "m3-69.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "12.82", - "z": "2.6", - "network_address": "m3-75.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "15.22", - "z": "2.6", - "network_address": "m3-77.lille.iot-lab.info" - }, - { - "y": "2.7", - "x": "16.1", - "z": "2.4", - "network_address": "m3-78.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "0.1", - "z": "1.5", - "network_address": "m3-81.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "2.02", - "z": "2.6", - "network_address": "m3-84.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "4.42", - "z": "2.6", - "network_address": "m3-86.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "12.82", - "z": "2.6", - "network_address": "m3-93.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "16.1", - "z": "2.4", - "network_address": "m3-96.lille.iot-lab.info" - }, - { - "y": "3.9", - "x": "16.1", - "z": "0.6", - "network_address": "m3-98.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "0.1", - "z": "1.5", - "network_address": "m3-99.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "3.22", - "z": "2.6", - "network_address": "m3-103.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "5.62", - "z": "2.6", - "network_address": "m3-105.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "8.02", - "z": "2.6", - "network_address": "m3-107.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "10.42", - "z": "2.6", - "network_address": "m3-109.lille.iot-lab.info" - }, - { - "y": "5.1", - "x": "14.02", - "z": "2.6", - "network_address": "m3-112.lille.iot-lab.info" - }, - { - "y": "5.45", - "x": "5.42", - "z": "1.5", - "network_address": "m3-117.lille.iot-lab.info" - }, - { - "y": "5.45", - "x": "10.82", - "z": "1.5", - "network_address": "m3-119.lille.iot-lab.info" - }, - { - "y": "5.45", - "x": "10.82", - "z": "0.6", - "network_address": "m3-120.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "0.82", - "z": "2.6", - "network_address": "m3-123.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "2.02", - "z": "2.6", - "network_address": "m3-124.lille.iot-lab.info" - }, - { - "y": "6.3", - "x": "4.42", - "z": "2.6", - "network_address": "m3-126.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "0.82", - "z": "2.6", - "network_address": "m3-137.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "3.22", - "z": "2.6", - "network_address": "m3-139.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "5.62", - "z": "2.6", - "network_address": "m3-141.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "11.62", - "z": "2.6", - "network_address": "m3-146.lille.iot-lab.info" - }, - { - "y": "7.5", - "x": "12.82", - "z": "2.6", - "network_address": "m3-147.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "0.82", - "z": "2.6", - "network_address": "m3-151.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "2.02", - "z": "2.6", - "network_address": "m3-152.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "3.22", - "z": "2.6", - "network_address": "m3-153.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "4.42", - "z": "2.6", - "network_address": "m3-154.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "5.62", - "z": "2.6", - "network_address": "m3-155.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "9.22", - "z": "2.6", - "network_address": "m3-158.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "14.02", - "z": "2.6", - "network_address": "m3-162.lille.iot-lab.info" - }, - { - "y": "8.7", - "x": "14.18", - "z": "0.6", - "network_address": "m3-164.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "0.82", - "z": "1.5", - "network_address": "m3-165.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "0.82", - "z": "0.6", - "network_address": "m3-166.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "2.02", - "z": "1.5", - "network_address": "m3-167.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "2.02", - "z": "0.6", - "network_address": "m3-168.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "4.42", - "z": "1.5", - "network_address": "m3-171.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "4.42", - "z": "0.6", - "network_address": "m3-172.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "8.02", - "z": "1.5", - "network_address": "m3-175.lille.iot-lab.info" - }, - { - "y": "9.16", - "x": "8.02", - "z": "0.6", - "network_address": "m3-176.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "2.02", - "z": "2.6", - "network_address": "m3-180.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "6.82", - "z": "2.6", - "network_address": "m3-183.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "9.22", - "z": "2.6", - "network_address": "m3-185.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "10.42", - "z": "2.6", - "network_address": "m3-186.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "14.02", - "z": "2.6", - "network_address": "m3-189.lille.iot-lab.info" - }, - { - "y": "9.9", - "x": "14.18", - "z": "0.6", - "network_address": "m3-191.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "0.82", - "z": "2.6", - "network_address": "m3-192.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "8.02", - "z": "2.6", - "network_address": "m3-198.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "9.22", - "z": "2.6", - "network_address": "m3-199.lille.iot-lab.info" - }, - { - "y": "11.1", - "x": "11.62", - "z": "2.6", - "network_address": "m3-201.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "0.82", - "z": "2.6", - "network_address": "m3-205.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "3.22", - "z": "2.6", - "network_address": "m3-207.lille.iot-lab.info" - }, - { - "y": "12.3", - "x": "4.42", - "z": "2.6", - "network_address": "m3-208.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "5.62", - "z": "2.6", - "network_address": "m3-222.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "8.02", - "z": "2.6", - "network_address": "m3-224.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "9.22", - "z": "2.6", - "network_address": "m3-225.lille.iot-lab.info" - }, - { - "y": "13.5", - "x": "11.62", - "z": "2.6", - "network_address": "m3-227.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "0.82", - "z": "2.6", - "network_address": "m3-231.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "4.42", - "z": "2.6", - "network_address": "m3-234.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "5.62", - "z": "2.6", - "network_address": "m3-235.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "8.02", - "z": "2.6", - "network_address": "m3-237.lille.iot-lab.info" - }, - { - "y": "14.7", - "x": "14.02", - "z": "2.6", - "network_address": "m3-242.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "4.42", - "z": "2.6", - "network_address": "m3-247.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "6.82", - "z": "2.6", - "network_address": "m3-249.lille.iot-lab.info" - }, - { - "y": "15.9", - "x": "10.42", - "z": "2.6", - "network_address": "m3-252.lille.iot-lab.info" - }, - { - "y": " ", - "x": " ", - "z": " ", - "network_address": "m3-258.lille.iot-lab.info" - }, - { - "y": " ", - "x": " ", - "z": " ", - "network_address": "m3-259.lille.iot-lab.info" - } - ], - "location": "lille" - }, - { - "nodes": [ - { - "y": "1.82", - "x": "0", - "z": "1.71", - "network_address": "m3-1.paris.iot-lab.info" - }, - { - "y": "1.82", - "x": "0", - "z": "0.55", - "network_address": "m3-2.paris.iot-lab.info" - }, - { - "y": "1.22", - "x": "0", - "z": "2.33", - "network_address": "m3-3.paris.iot-lab.info" - }, - { - "y": "1.22", - "x": "0", - "z": "1.12", - "network_address": "m3-4.paris.iot-lab.info" - }, - { - "y": "0.6", - "x": "0", - "z": "1.71", - "network_address": "m3-5.paris.iot-lab.info" - }, - { - "y": "0.6", - "x": "0", - "z": "0.55", - "network_address": "m3-6.paris.iot-lab.info" - }, - { - "y": "0", - "x": "0", - "z": "2.33", - "network_address": "m3-7.paris.iot-lab.info" - }, - { - "y": "0", - "x": "0", - "z": "1.12", - "network_address": "m3-8.paris.iot-lab.info" - }, - { - "y": "0", - "x": "1.02", - "z": "1.12", - "network_address": "m3-9.paris.iot-lab.info" - }, - { - "y": "0", - "x": "1.63", - "z": "0.55", - "network_address": "m3-10.paris.iot-lab.info" - }, - { - "y": "0", - "x": "2.28", - "z": "1.12", - "network_address": "m3-11.paris.iot-lab.info" - }, - { - "y": "0", - "x": "2.86", - "z": "0.55", - "network_address": "m3-12.paris.iot-lab.info" - }, - { - "y": "0", - "x": "3.47", - "z": "1.12", - "network_address": "m3-13.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.08", - "z": "0.55", - "network_address": "m3-14.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.67", - "z": "2.33", - "network_address": "m3-15.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.67", - "z": "0.55", - "network_address": "m3-16.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.3", - "z": "2.33", - "network_address": "m3-17.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.3", - "z": "0.55", - "network_address": "m3-18.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.9", - "z": "2.33", - "network_address": "m3-19.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.9", - "z": "0.55", - "network_address": "m3-20.paris.iot-lab.info" - }, - { - "y": "0", - "x": "6.52", - "z": "2.33", - "network_address": "m3-21.paris.iot-lab.info" - }, - { - "y": "0", - "x": "6.52", - "z": "0.55", - "network_address": "m3-22.paris.iot-lab.info" - }, - { - "y": "0.43", - "x": "6.92", - "z": "2.33", - "network_address": "m3-23.paris.iot-lab.info" - }, - { - "y": "0.43", - "x": "6.92", - "z": "1.12", - "network_address": "m3-24.paris.iot-lab.info" - }, - { - "y": "1.05", - "x": "6.92", - "z": "1.71", - "network_address": "m3-25.paris.iot-lab.info" - }, - { - "y": "1.05", - "x": "6.92", - "z": "0.55", - "network_address": "m3-26.paris.iot-lab.info" - }, - { - "y": "1.65", - "x": "6.92", - "z": "2.33", - "network_address": "m3-27.paris.iot-lab.info" - }, - { - "y": "1.65", - "x": "6.92", - "z": "1.12", - "network_address": "m3-28.paris.iot-lab.info" - }, - { - "y": "2.27", - "x": "6.92", - "z": "1.71", - "network_address": "m3-29.paris.iot-lab.info" - }, - { - "y": "2.27", - "x": "6.92", - "z": "0.55", - "network_address": "m3-30.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "6.39", - "z": "2.33", - "network_address": "m3-31.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "6.39", - "z": "1.12", - "network_address": "m3-32.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.82", - "z": "1.71", - "network_address": "m3-33.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.18", - "z": "2.33", - "network_address": "m3-35.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.18", - "z": "1.12", - "network_address": "m3-36.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "4.59", - "z": "1.71", - "network_address": "m3-37.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "4.59", - "z": "0.55", - "network_address": "m3-38.paris.iot-lab.info" - }, - { - "y": "2.76", - "x": "4.41", - "z": "1.99", - "network_address": "m3-39.paris.iot-lab.info" - }, - { - "y": "2.76", - "x": "4.41", - "z": "1.4", - "network_address": "m3-40.paris.iot-lab.info" - }, - { - "y": "2.76", - "x": "4.41", - "z": "0.8", - "network_address": "m3-41.paris.iot-lab.info" - }, - { - "y": "3.24", - "x": "4.41", - "z": "2.34", - "network_address": "m3-42.paris.iot-lab.info" - }, - { - "y": "3.92", - "x": "4.41", - "z": "2.07", - "network_address": "m3-43.paris.iot-lab.info" - }, - { - "y": "4.35", - "x": "4.41", - "z": "0.55", - "network_address": "m3-45.paris.iot-lab.info" - }, - { - "y": "4.97", - "x": "4.41", - "z": "1.12", - "network_address": "m3-46.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "4.05", - "z": "1.71", - "network_address": "m3-47.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "4.05", - "z": "0.55", - "network_address": "m3-48.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "3.47", - "z": "2.33", - "network_address": "m3-49.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "3.47", - "z": "1.12", - "network_address": "m3-50.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.85", - "z": "1.71", - "network_address": "m3-51.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.85", - "z": "0.55", - "network_address": "m3-52.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.25", - "z": "2.33", - "network_address": "m3-53.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.25", - "z": "1.12", - "network_address": "m3-54.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.62", - "z": "1.71", - "network_address": "m3-55.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.62", - "z": "0.55", - "network_address": "m3-56.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.02", - "z": "2.33", - "network_address": "m3-57.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.02", - "z": "1.12", - "network_address": "m3-58.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "0.37", - "z": "1.71", - "network_address": "m3-59.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "0.37", - "z": "0.55", - "network_address": "m3-60.paris.iot-lab.info" - }, - { - "y": "4.98", - "x": "0", - "z": "2.33", - "network_address": "m3-61.paris.iot-lab.info" - }, - { - "y": "4.98", - "x": "0", - "z": "1.12", - "network_address": "m3-62.paris.iot-lab.info" - }, - { - "y": "4.37", - "x": "0", - "z": "1.71", - "network_address": "m3-63.paris.iot-lab.info" - }, - { - "y": "4.37", - "x": "0", - "z": "0.55", - "network_address": "m3-64.paris.iot-lab.info" - }, - { - "y": "3.7", - "x": "0", - "z": "2.33", - "network_address": "m3-65.paris.iot-lab.info" - }, - { - "y": "3.7", - "x": "0", - "z": "1.12", - "network_address": "m3-66.paris.iot-lab.info" - }, - { - "y": "3.13", - "x": "0", - "z": "1.71", - "network_address": "m3-67.paris.iot-lab.info" - }, - { - "y": "3.13", - "x": "0", - "z": "0.55", - "network_address": "m3-68.paris.iot-lab.info" - }, - { - "y": "2.47", - "x": "0", - "z": "2.33", - "network_address": "m3-69.paris.iot-lab.info" - }, - { - "y": "1.82", - "x": "0", - "z": "2.33", - "network_address": "a8-1.paris.iot-lab.info" - }, - { - "y": "1.82", - "x": "0", - "z": "1.12", - "network_address": "a8-2.paris.iot-lab.info" - }, - { - "y": "1.22", - "x": "0", - "z": "1.71", - "network_address": "a8-3.paris.iot-lab.info" - }, - { - "y": "1.22", - "x": "0", - "z": "0.55", - "network_address": "a8-4.paris.iot-lab.info" - }, - { - "y": "0.6", - "x": "0", - "z": "2.33", - "network_address": "a8-5.paris.iot-lab.info" - }, - { - "y": "0.6", - "x": "0", - "z": "1.12", - "network_address": "a8-6.paris.iot-lab.info" - }, - { - "y": "0", - "x": "0", - "z": "1.71", - "network_address": "a8-7.paris.iot-lab.info" - }, - { - "y": "0", - "x": "0", - "z": "0.55", - "network_address": "a8-8.paris.iot-lab.info" - }, - { - "y": "0", - "x": "1.02", - "z": "0.55", - "network_address": "a8-9.paris.iot-lab.info" - }, - { - "y": "0", - "x": "1.63", - "z": "1.12", - "network_address": "a8-10.paris.iot-lab.info" - }, - { - "y": "0", - "x": "2.28", - "z": "0.55", - "network_address": "a8-11.paris.iot-lab.info" - }, - { - "y": "0", - "x": "2.86", - "z": "1.12", - "network_address": "a8-12.paris.iot-lab.info" - }, - { - "y": "0", - "x": "3.47", - "z": "0.55", - "network_address": "a8-13.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.08", - "z": "1.12", - "network_address": "a8-14.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.67", - "z": "1.71", - "network_address": "a8-15.paris.iot-lab.info" - }, - { - "y": "0", - "x": "4.67", - "z": "1.12", - "network_address": "a8-16.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.3", - "z": "1.71", - "network_address": "a8-17.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.3", - "z": "1.12", - "network_address": "a8-18.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.9", - "z": "1.71", - "network_address": "a8-19.paris.iot-lab.info" - }, - { - "y": "0", - "x": "5.9", - "z": "1.12", - "network_address": "a8-20.paris.iot-lab.info" - }, - { - "y": "0", - "x": "6.52", - "z": "1.71", - "network_address": "a8-21.paris.iot-lab.info" - }, - { - "y": "0", - "x": "6.52", - "z": "1.12", - "network_address": "a8-22.paris.iot-lab.info" - }, - { - "y": "0.43", - "x": "6.92", - "z": "1.71", - "network_address": "a8-23.paris.iot-lab.info" - }, - { - "y": "0.43", - "x": "6.92", - "z": "0.55", - "network_address": "a8-24.paris.iot-lab.info" - }, - { - "y": "1.05", - "x": "6.92", - "z": "2.33", - "network_address": "a8-25.paris.iot-lab.info" - }, - { - "y": "1.05", - "x": "6.92", - "z": "1.12", - "network_address": "a8-26.paris.iot-lab.info" - }, - { - "y": "1.65", - "x": "6.92", - "z": "1.71", - "network_address": "a8-27.paris.iot-lab.info" - }, - { - "y": "1.65", - "x": "6.92", - "z": "0.55", - "network_address": "a8-28.paris.iot-lab.info" - }, - { - "y": "2.27", - "x": "6.92", - "z": "2.33", - "network_address": "a8-29.paris.iot-lab.info" - }, - { - "y": "2.27", - "x": "6.92", - "z": "1.12", - "network_address": "a8-30.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "6.39", - "z": "1.71", - "network_address": "a8-31.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "6.39", - "z": "0.55", - "network_address": "a8-32.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.82", - "z": "2.33", - "network_address": "a8-33.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.82", - "z": "1.12", - "network_address": "a8-34.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.18", - "z": "1.71", - "network_address": "a8-35.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "5.18", - "z": "0.55", - "network_address": "a8-36.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "4.59", - "z": "2.33", - "network_address": "a8-37.paris.iot-lab.info" - }, - { - "y": "2.58", - "x": "4.59", - "z": "1.12", - "network_address": "a8-38.paris.iot-lab.info" - }, - { - "y": "4.35", - "x": "4.41", - "z": "1.12", - "network_address": "a8-39.paris.iot-lab.info" - }, - { - "y": "4.97", - "x": "4.41", - "z": "0.55", - "network_address": "a8-40.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "4.05", - "z": "2.33", - "network_address": "a8-41.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "4.05", - "z": "1.12", - "network_address": "a8-42.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "3.47", - "z": "1.71", - "network_address": "a8-43.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "3.47", - "z": "0.55", - "network_address": "a8-44.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.85", - "z": "2.33", - "network_address": "a8-45.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.85", - "z": "1.12", - "network_address": "a8-46.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.25", - "z": "1.71", - "network_address": "a8-47.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "2.25", - "z": "0.55", - "network_address": "a8-48.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.62", - "z": "2.33", - "network_address": "a8-49.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.62", - "z": "1.12", - "network_address": "a8-50.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.02", - "z": "1.71", - "network_address": "a8-51.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "1.02", - "z": "0.55", - "network_address": "a8-52.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "0.37", - "z": "2.33", - "network_address": "a8-53.paris.iot-lab.info" - }, - { - "y": "5.44", - "x": "0.37", - "z": "1.12", - "network_address": "a8-54.paris.iot-lab.info" - }, - { - "y": "4.98", - "x": "0", - "z": "1.71", - "network_address": "a8-55.paris.iot-lab.info" - }, - { - "y": "4.98", - "x": "0", - "z": "0.55", - "network_address": "a8-56.paris.iot-lab.info" - }, - { - "y": "4.37", - "x": "0", - "z": "2.33", - "network_address": "a8-57.paris.iot-lab.info" - }, - { - "y": "4.37", - "x": "0", - "z": "1.12", - "network_address": "a8-58.paris.iot-lab.info" - }, - { - "y": "3.7", - "x": "0", - "z": "1.71", - "network_address": "a8-59.paris.iot-lab.info" - }, - { - "y": "3.7", - "x": "0", - "z": "0.55", - "network_address": "a8-60.paris.iot-lab.info" - }, - { - "y": "3.13", - "x": "0", - "z": "2.33", - "network_address": "a8-61.paris.iot-lab.info" - }, - { - "y": "3.13", - "x": "0", - "z": "1.12", - "network_address": "a8-62.paris.iot-lab.info" - } - ], - "location": "paris" - }, - { - "nodes": [ - { - "y": "2.5", - "x": "3.6", - "z": "0.0", - "network_address": "wsn430-1.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "0.0", - "network_address": "wsn430-2.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "0.0", - "network_address": "wsn430-3.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "0.0", - "network_address": "wsn430-4.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "0.0", - "network_address": "wsn430-5.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "0.6", - "network_address": "wsn430-6.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "0.6", - "network_address": "wsn430-7.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "0.6", - "network_address": "wsn430-8.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "0.6", - "network_address": "wsn430-9.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "0.6", - "network_address": "wsn430-10.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "1.2", - "network_address": "wsn430-11.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "1.2", - "network_address": "wsn430-12.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "1.2", - "network_address": "wsn430-13.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "1.2", - "network_address": "wsn430-14.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "1.2", - "network_address": "wsn430-15.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "1.8", - "network_address": "wsn430-18.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "1.8", - "network_address": "wsn430-19.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "1.8", - "network_address": "wsn430-20.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "2.4", - "network_address": "wsn430-21.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "2.4", - "network_address": "wsn430-22.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "2.4", - "network_address": "wsn430-23.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "2.4", - "network_address": "wsn430-24.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "2.4", - "network_address": "wsn430-25.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "3.0", - "network_address": "wsn430-26.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "3.0", - "network_address": "wsn430-27.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "3.0", - "network_address": "wsn430-28.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "3.0", - "network_address": "wsn430-29.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "3.0", - "network_address": "wsn430-30.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "3.6", - "network_address": "wsn430-31.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "3.6", - "network_address": "wsn430-32.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "3.6", - "network_address": "wsn430-33.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "3.6", - "network_address": "wsn430-34.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "3.6", - "network_address": "wsn430-35.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "4.2", - "network_address": "wsn430-36.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "4.2", - "network_address": "wsn430-37.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "4.2", - "network_address": "wsn430-38.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "4.2", - "network_address": "wsn430-39.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "4.2", - "network_address": "wsn430-40.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "4.8", - "network_address": "wsn430-41.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "4.8", - "network_address": "wsn430-42.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "4.8", - "network_address": "wsn430-43.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "4.8", - "network_address": "wsn430-44.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "5.4", - "network_address": "wsn430-46.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "5.4", - "network_address": "wsn430-47.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "5.4", - "network_address": "wsn430-48.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "5.4", - "network_address": "wsn430-49.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "5.4", - "network_address": "wsn430-50.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "6.0", - "network_address": "wsn430-51.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "6.0", - "network_address": "wsn430-52.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "6.0", - "network_address": "wsn430-53.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "6.0", - "network_address": "wsn430-54.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "6.0", - "network_address": "wsn430-55.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "6.6", - "network_address": "wsn430-56.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "6.6", - "network_address": "wsn430-57.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "6.6", - "network_address": "wsn430-58.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "6.6", - "network_address": "wsn430-59.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "6.6", - "network_address": "wsn430-60.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "7.2", - "network_address": "wsn430-61.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "7.2", - "network_address": "wsn430-62.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "7.2", - "network_address": "wsn430-63.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "7.2", - "network_address": "wsn430-64.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "7.2", - "network_address": "wsn430-65.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "7.8", - "network_address": "wsn430-66.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "7.8", - "network_address": "wsn430-67.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "7.8", - "network_address": "wsn430-68.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "7.8", - "network_address": "wsn430-69.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "7.8", - "network_address": "wsn430-70.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "8.4", - "network_address": "wsn430-71.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "8.4", - "network_address": "wsn430-72.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "8.4", - "network_address": "wsn430-73.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "8.4", - "network_address": "wsn430-74.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "8.4", - "network_address": "wsn430-75.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "9.0", - "network_address": "wsn430-76.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "9.0", - "network_address": "wsn430-77.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "9.0", - "network_address": "wsn430-78.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "9.0", - "network_address": "wsn430-79.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "9.0", - "network_address": "wsn430-80.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "9.6", - "network_address": "wsn430-81.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "9.6", - "network_address": "wsn430-82.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "9.6", - "network_address": "wsn430-83.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "9.6", - "network_address": "wsn430-84.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "9.6", - "network_address": "wsn430-85.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "10.2", - "network_address": "wsn430-86.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "10.2", - "network_address": "wsn430-87.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "10.2", - "network_address": "wsn430-88.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "10.2", - "network_address": "wsn430-89.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "10.2", - "network_address": "wsn430-90.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.6", - "z": "10.8", - "network_address": "wsn430-91.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "3.0", - "z": "10.8", - "network_address": "wsn430-92.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.4", - "z": "10.8", - "network_address": "wsn430-93.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.8", - "z": "10.8", - "network_address": "wsn430-94.euratech.iot-lab.info" - }, - { - "y": "2.5", - "x": "1.2", - "z": "10.8", - "network_address": "wsn430-95.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "0.0", - "network_address": "wsn430-96.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "0.0", - "network_address": "wsn430-97.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "0.0", - "network_address": "wsn430-98.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "0.0", - "network_address": "wsn430-99.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "0.0", - "network_address": "wsn430-100.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "0.6", - "network_address": "wsn430-101.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "0.6", - "network_address": "wsn430-102.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "0.6", - "network_address": "wsn430-103.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "0.6", - "network_address": "wsn430-104.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "0.6", - "network_address": "wsn430-105.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "1.2", - "network_address": "wsn430-106.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "1.2", - "network_address": "wsn430-107.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "1.2", - "network_address": "wsn430-108.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "1.2", - "network_address": "wsn430-109.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "1.2", - "network_address": "wsn430-110.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "1.8", - "network_address": "wsn430-111.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "1.8", - "network_address": "wsn430-112.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "1.8", - "network_address": "wsn430-113.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "1.8", - "network_address": "wsn430-114.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "1.8", - "network_address": "wsn430-115.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "2.4", - "network_address": "wsn430-116.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "2.4", - "network_address": "wsn430-117.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "2.4", - "network_address": "wsn430-118.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "2.4", - "network_address": "wsn430-119.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "2.4", - "network_address": "wsn430-120.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "3.0", - "network_address": "wsn430-121.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "3.0", - "network_address": "wsn430-122.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "3.0", - "network_address": "wsn430-123.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "3.0", - "network_address": "wsn430-124.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "3.0", - "network_address": "wsn430-125.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "3.6", - "network_address": "wsn430-127.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "3.6", - "network_address": "wsn430-128.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "3.6", - "network_address": "wsn430-129.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "3.6", - "network_address": "wsn430-130.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "4.2", - "network_address": "wsn430-131.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "4.2", - "network_address": "wsn430-132.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "4.2", - "network_address": "wsn430-133.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "4.2", - "network_address": "wsn430-134.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "4.2", - "network_address": "wsn430-135.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "4.8", - "network_address": "wsn430-136.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "4.8", - "network_address": "wsn430-137.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "4.8", - "network_address": "wsn430-138.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "4.8", - "network_address": "wsn430-139.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "4.8", - "network_address": "wsn430-140.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "5.4", - "network_address": "wsn430-141.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "5.4", - "network_address": "wsn430-142.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "5.4", - "network_address": "wsn430-143.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "5.4", - "network_address": "wsn430-144.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "5.4", - "network_address": "wsn430-145.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "6.0", - "network_address": "wsn430-146.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "6.0", - "network_address": "wsn430-147.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "6.0", - "network_address": "wsn430-148.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "6.0", - "network_address": "wsn430-149.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "6.0", - "network_address": "wsn430-150.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "6.6", - "network_address": "wsn430-151.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "6.6", - "network_address": "wsn430-152.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "6.6", - "network_address": "wsn430-153.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "6.6", - "network_address": "wsn430-154.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "6.6", - "network_address": "wsn430-155.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "7.2", - "network_address": "wsn430-156.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "7.2", - "network_address": "wsn430-157.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "7.2", - "network_address": "wsn430-158.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "7.2", - "network_address": "wsn430-159.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "7.2", - "network_address": "wsn430-160.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "7.8", - "network_address": "wsn430-161.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "7.8", - "network_address": "wsn430-162.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "7.8", - "network_address": "wsn430-163.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "7.8", - "network_address": "wsn430-164.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "7.8", - "network_address": "wsn430-165.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "8.4", - "network_address": "wsn430-166.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "8.4", - "network_address": "wsn430-167.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "8.4", - "network_address": "wsn430-168.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "8.4", - "network_address": "wsn430-169.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "8.4", - "network_address": "wsn430-170.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "9.0", - "network_address": "wsn430-171.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "9.0", - "network_address": "wsn430-172.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "9.0", - "network_address": "wsn430-173.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "9.0", - "network_address": "wsn430-174.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "9.0", - "network_address": "wsn430-175.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "9.6", - "network_address": "wsn430-176.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "9.6", - "network_address": "wsn430-177.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "9.6", - "network_address": "wsn430-178.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "9.6", - "network_address": "wsn430-179.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "9.6", - "network_address": "wsn430-180.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "10.2", - "network_address": "wsn430-181.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "10.2", - "network_address": "wsn430-182.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "10.2", - "network_address": "wsn430-183.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "10.2", - "network_address": "wsn430-184.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.2", - "z": "10.2", - "network_address": "wsn430-185.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.6", - "z": "10.8", - "network_address": "wsn430-186.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "3.0", - "z": "10.8", - "network_address": "wsn430-187.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "2.4", - "z": "10.8", - "network_address": "wsn430-188.euratech.iot-lab.info" - }, - { - "y": "3.4", - "x": "1.8", - "z": "10.8", - "network_address": "wsn430-189.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "0.0", - "z": "11.32", - "network_address": "wsn430-191.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "0.6", - "z": "11.32", - "network_address": "wsn430-192.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "1.2", - "z": "11.32", - "network_address": "wsn430-193.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "1.8", - "z": "11.32", - "network_address": "wsn430-194.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "2.4", - "z": "11.32", - "network_address": "wsn430-195.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "3.0", - "z": "11.32", - "network_address": "wsn430-196.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "3.6", - "z": "11.32", - "network_address": "wsn430-197.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "4.2", - "z": "11.32", - "network_address": "wsn430-198.euratech.iot-lab.info" - }, - { - "y": "3.28", - "x": "4.8", - "z": "11.32", - "network_address": "wsn430-199.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "0.0", - "z": "11.32", - "network_address": "wsn430-200.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "1.2", - "z": "11.32", - "network_address": "wsn430-202.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "1.8", - "z": "11.32", - "network_address": "wsn430-203.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "2.4", - "z": "11.32", - "network_address": "wsn430-204.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "3.0", - "z": "11.32", - "network_address": "wsn430-205.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "3.6", - "z": "11.32", - "network_address": "wsn430-206.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "4.2", - "z": "11.32", - "network_address": "wsn430-207.euratech.iot-lab.info" - }, - { - "y": "2.67", - "x": "4.8", - "z": "11.32", - "network_address": "wsn430-208.euratech.iot-lab.info" - }, - { - "y": "0.25", - "x": "1.1", - "z": "11.32", - "network_address": "wsn430-209.euratech.iot-lab.info" - }, - { - "y": "0.9", - "x": "1.1", - "z": "11.32", - "network_address": "wsn430-210.euratech.iot-lab.info" - }, - { - "y": "1.55", - "x": "1.1", - "z": "11.32", - "network_address": "wsn430-211.euratech.iot-lab.info" - }, - { - "y": "2.2", - "x": "1.1", - "z": "11.32", - "network_address": "wsn430-212.euratech.iot-lab.info" - }, - { - "y": "0.25", - "x": "1.55", - "z": "11.32", - "network_address": "wsn430-213.euratech.iot-lab.info" - }, - { - "y": "0.9", - "x": "1.55", - "z": "11.32", - "network_address": "wsn430-214.euratech.iot-lab.info" - }, - { - "y": "1.55", - "x": "1.55", - "z": "11.32", - "network_address": "wsn430-215.euratech.iot-lab.info" - }, - { - "y": "2.2", - "x": "1.55", - "z": "11.32", - "network_address": "wsn430-216.euratech.iot-lab.info" - }, - { - "y": "0.25", - "x": "3.25", - "z": "11.32", - "network_address": "wsn430-217.euratech.iot-lab.info" - }, - { - "y": "0.9", - "x": "3.25", - "z": "11.32", - "network_address": "wsn430-218.euratech.iot-lab.info" - }, - { - "y": "1.55", - "x": "3.25", - "z": "11.32", - "network_address": "wsn430-219.euratech.iot-lab.info" - }, - { - "y": "2.2", - "x": "3.25", - "z": "11.32", - "network_address": "wsn430-220.euratech.iot-lab.info" - }, - { - "y": "0.25", - "x": "3.7", - "z": "11.32", - "network_address": "wsn430-221.euratech.iot-lab.info" - }, - { - "y": "0.9", - "x": "3.7", - "z": "11.32", - "network_address": "wsn430-222.euratech.iot-lab.info" - }, - { - "y": "1.55", - "x": "3.7", - "z": "11.32", - "network_address": "wsn430-223.euratech.iot-lab.info" - }, - { - "y": "2.2", - "x": "3.7", - "z": "11.32", - "network_address": "wsn430-224.euratech.iot-lab.info" - } - ], - "location": "euratech" - }, - { - "nodes": [ - { - "y": "55.8", - "x": "1", - "z": "4", - "network_address": "m3-1.saclay.iot-lab.info" - }, - { - "y": "55.8", - "x": "1.8", - "z": "4", - "network_address": "m3-2.saclay.iot-lab.info" - }, - { - "y": "55.8", - "x": "2.6", - "z": "4", - "network_address": "m3-3.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "1", - "z": "4", - "network_address": "m3-4.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "1.8", - "z": "4", - "network_address": "m3-5.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "2.6", - "z": "4", - "network_address": "m3-6.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "1", - "z": "4", - "network_address": "m3-7.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "1.8", - "z": "4", - "network_address": "m3-8.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "2.6", - "z": "4", - "network_address": "m3-9.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "1", - "z": "4", - "network_address": "m3-10.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "1.8", - "z": "4", - "network_address": "m3-11.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "2.6", - "z": "4", - "network_address": "m3-12.saclay.iot-lab.info" - }, - { - "y": "2.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-1.saclay.iot-lab.info" - }, - { - "y": "2.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-2.saclay.iot-lab.info" - }, - { - "y": "2.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-3.saclay.iot-lab.info" - }, - { - "y": "2.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-5.saclay.iot-lab.info" - }, - { - "y": "2.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-6.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-7.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-8.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-9.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-10.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-11.saclay.iot-lab.info" - }, - { - "y": "5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-12.saclay.iot-lab.info" - }, - { - "y": "7.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-13.saclay.iot-lab.info" - }, - { - "y": "7.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-14.saclay.iot-lab.info" - }, - { - "y": "7.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-16.saclay.iot-lab.info" - }, - { - "y": "7.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-17.saclay.iot-lab.info" - }, - { - "y": "10", - "x": "2.5", - "z": "2.5", - "network_address": "a8-19.saclay.iot-lab.info" - }, - { - "y": "10", - "x": "11.5", - "z": "2.5", - "network_address": "a8-21.saclay.iot-lab.info" - }, - { - "y": "10", - "x": "15.5", - "z": "2.5", - "network_address": "a8-22.saclay.iot-lab.info" - }, - { - "y": "10", - "x": "20.5", - "z": "2.5", - "network_address": "a8-23.saclay.iot-lab.info" - }, - { - "y": "10", - "x": "24.5", - "z": "2.5", - "network_address": "a8-24.saclay.iot-lab.info" - }, - { - "y": "12.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-25.saclay.iot-lab.info" - }, - { - "y": "12.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-26.saclay.iot-lab.info" - }, - { - "y": "12.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-27.saclay.iot-lab.info" - }, - { - "y": "12.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-28.saclay.iot-lab.info" - }, - { - "y": "12.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-29.saclay.iot-lab.info" - }, - { - "y": "15", - "x": "2.5", - "z": "2.5", - "network_address": "a8-30.saclay.iot-lab.info" - }, - { - "y": "15", - "x": "8.5", - "z": "2.5", - "network_address": "a8-31.saclay.iot-lab.info" - }, - { - "y": "15", - "x": "11.5", - "z": "2.5", - "network_address": "a8-32.saclay.iot-lab.info" - }, - { - "y": "15", - "x": "15.5", - "z": "2.5", - "network_address": "a8-33.saclay.iot-lab.info" - }, - { - "y": "17.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-35.saclay.iot-lab.info" - }, - { - "y": "17.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-36.saclay.iot-lab.info" - }, - { - "y": "17.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-37.saclay.iot-lab.info" - }, - { - "y": "17.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-38.saclay.iot-lab.info" - }, - { - "y": "17.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-39.saclay.iot-lab.info" - }, - { - "y": "20", - "x": "2.5", - "z": "2.5", - "network_address": "a8-40.saclay.iot-lab.info" - }, - { - "y": "20", - "x": "8.5", - "z": "2.5", - "network_address": "a8-41.saclay.iot-lab.info" - }, - { - "y": "20", - "x": "11.5", - "z": "2.5", - "network_address": "a8-42.saclay.iot-lab.info" - }, - { - "y": "20", - "x": "15.5", - "z": "2.5", - "network_address": "a8-43.saclay.iot-lab.info" - }, - { - "y": "20", - "x": "20.5", - "z": "2.5", - "network_address": "a8-44.saclay.iot-lab.info" - }, - { - "y": "22.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-45.saclay.iot-lab.info" - }, - { - "y": "22.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-46.saclay.iot-lab.info" - }, - { - "y": "22.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-47.saclay.iot-lab.info" - }, - { - "y": "22.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-49.saclay.iot-lab.info" - }, - { - "y": "22.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-50.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "2.5", - "z": "2.5", - "network_address": "a8-51.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "8.5", - "z": "2.5", - "network_address": "a8-52.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "11.5", - "z": "2.5", - "network_address": "a8-53.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "15.5", - "z": "2.5", - "network_address": "a8-54.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "20.5", - "z": "2.5", - "network_address": "a8-55.saclay.iot-lab.info" - }, - { - "y": "25", - "x": "24.5", - "z": "2.5", - "network_address": "a8-56.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-57.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-58.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-59.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-60.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-61.saclay.iot-lab.info" - }, - { - "y": "27.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-62.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "2.5", - "z": "2.5", - "network_address": "a8-63.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "8.5", - "z": "2.5", - "network_address": "a8-64.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "11.5", - "z": "2.5", - "network_address": "a8-65.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "15.5", - "z": "2.5", - "network_address": "a8-66.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "20.5", - "z": "2.5", - "network_address": "a8-67.saclay.iot-lab.info" - }, - { - "y": "30", - "x": "24.5", - "z": "2.5", - "network_address": "a8-68.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-69.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-70.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-71.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-72.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-73.saclay.iot-lab.info" - }, - { - "y": "32.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-74.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "2.5", - "z": "2.5", - "network_address": "a8-75.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "8.5", - "z": "2.5", - "network_address": "a8-76.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "11.5", - "z": "2.5", - "network_address": "a8-77.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "15.5", - "z": "2.5", - "network_address": "a8-78.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "20.5", - "z": "2.5", - "network_address": "a8-79.saclay.iot-lab.info" - }, - { - "y": "35", - "x": "24.5", - "z": "2.5", - "network_address": "a8-80.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-81.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-82.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-83.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-84.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-85.saclay.iot-lab.info" - }, - { - "y": "37.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-86.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "2.5", - "z": "2.5", - "network_address": "a8-87.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "8.5", - "z": "2.5", - "network_address": "a8-88.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "11.5", - "z": "2.5", - "network_address": "a8-89.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "15.5", - "z": "2.5", - "network_address": "a8-90.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "20.5", - "z": "2.5", - "network_address": "a8-91.saclay.iot-lab.info" - }, - { - "y": "40.0", - "x": "24.5", - "z": "2.5", - "network_address": "a8-92.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "2.5", - "z": "2.5", - "network_address": "a8-93.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "8.5", - "z": "2.5", - "network_address": "a8-94.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "11.5", - "z": "2.5", - "network_address": "a8-95.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "15.5", - "z": "2.5", - "network_address": "a8-96.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "20.5", - "z": "2.5", - "network_address": "a8-97.saclay.iot-lab.info" - }, - { - "y": "42.5", - "x": "24.5", - "z": "2.5", - "network_address": "a8-98.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "2.5", - "z": "2.5", - "network_address": "a8-99.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "8.5", - "z": "2.5", - "network_address": "a8-100.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "11.5", - "z": "2.5", - "network_address": "a8-101.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "15.5", - "z": "2.5", - "network_address": "a8-102.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "20.5", - "z": "2.5", - "network_address": "a8-103.saclay.iot-lab.info" - }, - { - "y": "45", - "x": "24.5", - "z": "2.5", - "network_address": "a8-104.saclay.iot-lab.info" - }, - { - "y": "47", - "x": "15.5", - "z": "2.5", - "network_address": "a8-105.saclay.iot-lab.info" - }, - { - "y": "47", - "x": "20.5", - "z": "2.5", - "network_address": "a8-106.saclay.iot-lab.info" - }, - { - "y": "47", - "x": "24.5", - "z": "2.5", - "network_address": "a8-107.saclay.iot-lab.info" - }, - { - "y": "50", - "x": "15.5", - "z": "2.5", - "network_address": "a8-108.saclay.iot-lab.info" - }, - { - "y": "50", - "x": "20.5", - "z": "2.5", - "network_address": "a8-109.saclay.iot-lab.info" - }, - { - "y": "50", - "x": "24.5", - "z": "2.5", - "network_address": "a8-110.saclay.iot-lab.info" - }, - { - "y": "52", - "x": "15.5", - "z": "2.5", - "network_address": "a8-111.saclay.iot-lab.info" - }, - { - "y": "52", - "x": "20.5", - "z": "2.5", - "network_address": "a8-112.saclay.iot-lab.info" - }, - { - "y": "52", - "x": "24.5", - "z": "2.5", - "network_address": "a8-113.saclay.iot-lab.info" - }, - { - "y": "54", - "x": "20.5", - "z": "2.5", - "network_address": "a8-114.saclay.iot-lab.info" - }, - { - "y": "54", - "x": "24.5", - "z": "2.5", - "network_address": "a8-115.saclay.iot-lab.info" - }, - { - "y": "46.8", - "x": "1", - "z": "5", - "network_address": "a8-116.saclay.iot-lab.info" - }, - { - "y": "46.8", - "x": "1.8", - "z": "5", - "network_address": "a8-117.saclay.iot-lab.info" - }, - { - "y": "48.3", - "x": "1", - "z": "5", - "network_address": "a8-119.saclay.iot-lab.info" - }, - { - "y": "48.3", - "x": "1.8", - "z": "5", - "network_address": "a8-120.saclay.iot-lab.info" - }, - { - "y": "48.3", - "x": "2.6", - "z": "5", - "network_address": "a8-121.saclay.iot-lab.info" - }, - { - "y": "51.8", - "x": "1", - "z": "5", - "network_address": "a8-122.saclay.iot-lab.info" - }, - { - "y": "51.8", - "x": "2.6", - "z": "5", - "network_address": "a8-124.saclay.iot-lab.info" - }, - { - "y": "52.8", - "x": "1", - "z": "5", - "network_address": "a8-125.saclay.iot-lab.info" - }, - { - "y": "52.8", - "x": "1.8", - "z": "5", - "network_address": "a8-126.saclay.iot-lab.info" - }, - { - "y": "52.8", - "x": "2.6", - "z": "5", - "network_address": "a8-127.saclay.iot-lab.info" - }, - { - "y": "53.8", - "x": "1", - "z": "5", - "network_address": "a8-128.saclay.iot-lab.info" - }, - { - "y": "53.8", - "x": "2.6", - "z": "5", - "network_address": "a8-130.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "1", - "z": "5", - "network_address": "a8-131.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "1.8", - "z": "5", - "network_address": "a8-132.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "2.6", - "z": "5", - "network_address": "a8-133.saclay.iot-lab.info" - }, - { - "y": "55.8", - "x": "1.8", - "z": "5", - "network_address": "a8-135.saclay.iot-lab.info" - }, - { - "y": "55.8", - "x": "2.6", - "z": "5", - "network_address": "a8-136.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "1", - "z": "5", - "network_address": "a8-137.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "1.8", - "z": "5", - "network_address": "a8-138.saclay.iot-lab.info" - }, - { - "y": "56.8", - "x": "2.6", - "z": "5", - "network_address": "a8-139.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "1", - "z": "5", - "network_address": "a8-140.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "1.8", - "z": "5", - "network_address": "a8-141.saclay.iot-lab.info" - }, - { - "y": "57.8", - "x": "2.6", - "z": "5", - "network_address": "a8-142.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "1", - "z": "5", - "network_address": "a8-143.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "1.8", - "z": "5", - "network_address": "a8-144.saclay.iot-lab.info" - }, - { - "y": "58.8", - "x": "2.6", - "z": "5", - "network_address": "a8-145.saclay.iot-lab.info" - }, - { - "y": "64.3", - "x": "0.8", - "z": "5", - "network_address": "a8-146.saclay.iot-lab.info" - }, - { - "y": "64.3", - "x": "2", - "z": "5", - "network_address": "a8-147.saclay.iot-lab.info" - }, - { - "y": "64.3", - "x": "3", - "z": "5", - "network_address": "a8-148.saclay.iot-lab.info" - }, - { - "y": "64.3", - "x": "4", - "z": "5", - "network_address": "a8-149.saclay.iot-lab.info" - }, - { - "y": "64.3", - "x": "5", - "z": "5", - "network_address": "a8-150.saclay.iot-lab.info" - }, - { - "y": "65.3", - "x": "0.8", - "z": "5", - "network_address": "a8-151.saclay.iot-lab.info" - }, - { - "y": "65.3", - "x": "2", - "z": "5", - "network_address": "a8-152.saclay.iot-lab.info" - }, - { - "y": "65.3", - "x": "3", - "z": "5", - "network_address": "a8-153.saclay.iot-lab.info" - }, - { - "y": "65.3", - "x": "4", - "z": "5", - "network_address": "a8-154.saclay.iot-lab.info" - }, - { - "y": "65.3", - "x": "5", - "z": "5", - "network_address": "a8-155.saclay.iot-lab.info" - }, - { - "y": "66.3", - "x": "0.8", - "z": "5", - "network_address": "a8-156.saclay.iot-lab.info" - }, - { - "y": "66.3", - "x": "2", - "z": "5", - "network_address": "a8-157.saclay.iot-lab.info" - }, - { - "y": "66.3", - "x": "3", - "z": "5", - "network_address": "a8-158.saclay.iot-lab.info" - }, - { - "y": "66.3", - "x": "4", - "z": "5", - "network_address": "a8-159.saclay.iot-lab.info" - }, - { - "y": "66.3", - "x": "5", - "z": "5", - "network_address": "a8-160.saclay.iot-lab.info" - }, - { - "y": "67.3", - "x": "2", - "z": "5", - "network_address": "a8-162.saclay.iot-lab.info" - }, - { - "y": "67.3", - "x": "3", - "z": "5", - "network_address": "a8-163.saclay.iot-lab.info" - }, - { - "y": "67.3", - "x": "4", - "z": "5", - "network_address": "a8-164.saclay.iot-lab.info" - }, - { - "y": "67.3", - "x": "5", - "z": "5", - "network_address": "a8-165.saclay.iot-lab.info" - }, - { - "y": "68.3", - "x": "1", - "z": "5", - "network_address": "a8-166.saclay.iot-lab.info" - }, - { - "y": "68.3", - "x": "2", - "z": "5", - "network_address": "a8-167.saclay.iot-lab.info" - }, - { - "y": "68.3", - "x": "3", - "z": "5", - "network_address": "a8-168.saclay.iot-lab.info" - }, - { - "y": "68.3", - "x": "4", - "z": "5", - "network_address": "a8-169.saclay.iot-lab.info" - }, - { - "y": "68.3", - "x": "5", - "z": "5", - "network_address": "a8-170.saclay.iot-lab.info" - }, - { - "y": "69.3", - "x": "1", - "z": "5", - "network_address": "a8-171.saclay.iot-lab.info" - }, - { - "y": "69.3", - "x": "2", - "z": "5", - "network_address": "a8-172.saclay.iot-lab.info" - }, - { - "y": "69.3", - "x": "3", - "z": "5", - "network_address": "a8-173.saclay.iot-lab.info" - }, - { - "y": "69.3", - "x": "4", - "z": "5", - "network_address": "a8-174.saclay.iot-lab.info" - }, - { - "y": "69.3", - "x": "5", - "z": "5", - "network_address": "a8-175.saclay.iot-lab.info" - }, - { - "y": "53.8", - "x": "1", - "z": "4", - "network_address": "custom-1.saclay.iot-lab.info" - }, - { - "y": "53.8", - "x": "1.8", - "z": "4", - "network_address": "custom-2.saclay.iot-lab.info" - }, - { - "y": "53.8", - "x": "2.6", - "z": "4", - "network_address": "custom-3.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "1", - "z": "4", - "network_address": "custom-4.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "1.8", - "z": "4", - "network_address": "custom-5.saclay.iot-lab.info" - }, - { - "y": "54.8", - "x": "2.6", - "z": "4", - "network_address": "custom-6.saclay.iot-lab.info" - }, - { - "y": "63.3", - "x": "0.8", - "z": "4", - "network_address": "custom-7.saclay.iot-lab.info" - }, - { - "y": "63.3", - "x": "0.8", - "z": "5", - "network_address": "custom-8.saclay.iot-lab.info" - } - ], - "location": "saclay" - }, - { - "nodes": [ - { - "y": "0.744", - "x": "-4.62", - "z": "2.912", - "network_address": "wsn430-2.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-4.62", - "z": "2.911", - "network_address": "wsn430-3.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-4.62", - "z": "2.911", - "network_address": "wsn430-5.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-4.62", - "z": "2.91", - "network_address": "wsn430-6.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "-4.62", - "z": "2.91", - "network_address": "wsn430-7.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-4.62", - "z": "2.91", - "network_address": "wsn430-8.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "-4.62", - "z": "2.91", - "network_address": "wsn430-9.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "-4.62", - "z": "2.909", - "network_address": "wsn430-10.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "-4.62", - "z": "2.909", - "network_address": "wsn430-11.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "-4.62", - "z": "2.909", - "network_address": "wsn430-12.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-4.62", - "z": "2.908", - "network_address": "wsn430-13.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-4.62", - "z": "2.908", - "network_address": "wsn430-14.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-4.62", - "z": "2.908", - "network_address": "wsn430-15.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-4.62", - "z": "2.907", - "network_address": "wsn430-16.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "-4.62", - "z": "2.907", - "network_address": "wsn430-17.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-4.62", - "z": "2.907", - "network_address": "wsn430-18.rennes.iot-lab.info" - }, - { - "y": "11.014", - "x": "-4.62", - "z": "2.907", - "network_address": "wsn430-19.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-4.62", - "z": "2.906", - "network_address": "wsn430-20.rennes.iot-lab.info" - }, - { - "y": "12.222", - "x": "-4.62", - "z": "2.906", - "network_address": "wsn430-21.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-4.62", - "z": "2.906", - "network_address": "wsn430-22.rennes.iot-lab.info" - }, - { - "y": "13.431", - "x": "-4.62", - "z": "2.905", - "network_address": "wsn430-23.rennes.iot-lab.info" - }, - { - "y": "14.035", - "x": "-4.62", - "z": "2.905", - "network_address": "wsn430-24.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "-3.796", - "z": "2.912", - "network_address": "wsn430-25.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "-3.796", - "z": "2.912", - "network_address": "wsn430-26.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-3.796", - "z": "2.911", - "network_address": "wsn430-27.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "-3.796", - "z": "2.911", - "network_address": "wsn430-28.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-3.796", - "z": "2.911", - "network_address": "wsn430-29.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-3.796", - "z": "2.91", - "network_address": "wsn430-30.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "-3.796", - "z": "2.91", - "network_address": "wsn430-31.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-3.796", - "z": "2.91", - "network_address": "wsn430-32.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "-3.796", - "z": "2.909", - "network_address": "wsn430-34.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "-3.796", - "z": "2.909", - "network_address": "wsn430-35.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "-3.796", - "z": "2.909", - "network_address": "wsn430-36.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-3.796", - "z": "2.908", - "network_address": "wsn430-37.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-3.796", - "z": "2.908", - "network_address": "wsn430-38.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-3.796", - "z": "2.908", - "network_address": "wsn430-39.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-3.796", - "z": "2.907", - "network_address": "wsn430-40.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "-3.796", - "z": "2.907", - "network_address": "wsn430-41.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-3.796", - "z": "2.907", - "network_address": "wsn430-42.rennes.iot-lab.info" - }, - { - "y": "11.014", - "x": "-3.796", - "z": "2.907", - "network_address": "wsn430-43.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-3.796", - "z": "2.906", - "network_address": "wsn430-44.rennes.iot-lab.info" - }, - { - "y": "12.222", - "x": "-3.796", - "z": "2.906", - "network_address": "wsn430-45.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-3.796", - "z": "2.906", - "network_address": "wsn430-46.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "-2.972", - "z": "2.912", - "network_address": "wsn430-49.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "-2.972", - "z": "2.912", - "network_address": "wsn430-50.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-2.972", - "z": "2.911", - "network_address": "wsn430-51.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "-2.972", - "z": "2.911", - "network_address": "wsn430-52.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-2.972", - "z": "2.911", - "network_address": "wsn430-53.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-2.972", - "z": "2.91", - "network_address": "wsn430-54.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "-2.972", - "z": "2.91", - "network_address": "wsn430-55.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-2.972", - "z": "2.91", - "network_address": "wsn430-56.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "-2.972", - "z": "2.91", - "network_address": "wsn430-57.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "-2.972", - "z": "2.909", - "network_address": "wsn430-58.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "-2.972", - "z": "2.909", - "network_address": "wsn430-59.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "-2.972", - "z": "2.909", - "network_address": "wsn430-60.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-2.972", - "z": "2.908", - "network_address": "wsn430-61.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-2.972", - "z": "2.908", - "network_address": "wsn430-62.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-2.972", - "z": "2.908", - "network_address": "wsn430-63.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-2.972", - "z": "2.907", - "network_address": "wsn430-64.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "-2.972", - "z": "2.907", - "network_address": "wsn430-65.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-2.972", - "z": "2.907", - "network_address": "wsn430-66.rennes.iot-lab.info" - }, - { - "y": "11.014", - "x": "-2.972", - "z": "2.907", - "network_address": "wsn430-67.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-2.972", - "z": "2.906", - "network_address": "wsn430-68.rennes.iot-lab.info" - }, - { - "y": "12.222", - "x": "-2.972", - "z": "2.906", - "network_address": "wsn430-69.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-2.972", - "z": "2.906", - "network_address": "wsn430-70.rennes.iot-lab.info" - }, - { - "y": "13.431", - "x": "-2.972", - "z": "2.905", - "network_address": "wsn430-71.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "-2.148", - "z": "2.912", - "network_address": "wsn430-73.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "-2.148", - "z": "2.912", - "network_address": "wsn430-74.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-2.148", - "z": "2.911", - "network_address": "wsn430-75.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "-2.148", - "z": "2.911", - "network_address": "wsn430-76.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-2.148", - "z": "2.911", - "network_address": "wsn430-77.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-2.148", - "z": "2.91", - "network_address": "wsn430-78.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-2.148", - "z": "2.91", - "network_address": "wsn430-80.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "-2.148", - "z": "2.91", - "network_address": "wsn430-81.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "-2.148", - "z": "2.909", - "network_address": "wsn430-82.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "-2.148", - "z": "2.909", - "network_address": "wsn430-83.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "-2.148", - "z": "2.909", - "network_address": "wsn430-84.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-2.148", - "z": "2.908", - "network_address": "wsn430-85.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-2.148", - "z": "2.908", - "network_address": "wsn430-86.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-2.148", - "z": "2.908", - "network_address": "wsn430-87.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-2.148", - "z": "2.907", - "network_address": "wsn430-88.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "-2.148", - "z": "2.907", - "network_address": "wsn430-89.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-2.148", - "z": "2.907", - "network_address": "wsn430-90.rennes.iot-lab.info" - }, - { - "y": "11.014", - "x": "-2.148", - "z": "2.907", - "network_address": "wsn430-91.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-2.148", - "z": "2.906", - "network_address": "wsn430-92.rennes.iot-lab.info" - }, - { - "y": "12.222", - "x": "-2.148", - "z": "2.906", - "network_address": "wsn430-93.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-2.148", - "z": "2.906", - "network_address": "wsn430-94.rennes.iot-lab.info" - }, - { - "y": "13.431", - "x": "-2.148", - "z": "2.905", - "network_address": "wsn430-95.rennes.iot-lab.info" - }, - { - "y": "14.035", - "x": "-2.148", - "z": "2.905", - "network_address": "wsn430-96.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "-1.324", - "z": "2.912", - "network_address": "wsn430-97.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-1.324", - "z": "2.911", - "network_address": "wsn430-99.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-1.324", - "z": "2.911", - "network_address": "wsn430-101.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-1.324", - "z": "2.91", - "network_address": "wsn430-102.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-1.324", - "z": "2.91", - "network_address": "wsn430-104.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "-1.324", - "z": "2.909", - "network_address": "wsn430-106.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-1.324", - "z": "2.908", - "network_address": "wsn430-109.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-1.324", - "z": "2.908", - "network_address": "wsn430-110.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-1.324", - "z": "2.908", - "network_address": "wsn430-111.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-1.324", - "z": "2.907", - "network_address": "wsn430-112.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "-1.324", - "z": "2.907", - "network_address": "wsn430-113.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-1.324", - "z": "2.907", - "network_address": "wsn430-114.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-1.324", - "z": "2.906", - "network_address": "wsn430-116.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-1.324", - "z": "2.906", - "network_address": "wsn430-118.rennes.iot-lab.info" - }, - { - "y": "13.431", - "x": "-1.324", - "z": "2.905", - "network_address": "wsn430-119.rennes.iot-lab.info" - }, - { - "y": "14.035", - "x": "-1.324", - "z": "2.905", - "network_address": "wsn430-120.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "-0.5", - "z": "2.912", - "network_address": "wsn430-121.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "-0.5", - "z": "2.912", - "network_address": "wsn430-122.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "-0.5", - "z": "2.911", - "network_address": "wsn430-123.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "-0.5", - "z": "2.911", - "network_address": "wsn430-125.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "-0.5", - "z": "2.91", - "network_address": "wsn430-126.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "-0.5", - "z": "2.91", - "network_address": "wsn430-127.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "-0.5", - "z": "2.91", - "network_address": "wsn430-128.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "-0.5", - "z": "2.91", - "network_address": "wsn430-129.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "-0.5", - "z": "2.908", - "network_address": "wsn430-133.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "-0.5", - "z": "2.908", - "network_address": "wsn430-134.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "-0.5", - "z": "2.908", - "network_address": "wsn430-135.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "-0.5", - "z": "2.907", - "network_address": "wsn430-136.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "-0.5", - "z": "2.907", - "network_address": "wsn430-138.rennes.iot-lab.info" - }, - { - "y": "11.014", - "x": "-0.5", - "z": "2.907", - "network_address": "wsn430-139.rennes.iot-lab.info" - }, - { - "y": "11.618", - "x": "-0.5", - "z": "2.906", - "network_address": "wsn430-140.rennes.iot-lab.info" - }, - { - "y": "12.222", - "x": "-0.5", - "z": "2.906", - "network_address": "wsn430-141.rennes.iot-lab.info" - }, - { - "y": "12.826", - "x": "-0.5", - "z": "2.906", - "network_address": "wsn430-142.rennes.iot-lab.info" - }, - { - "y": "13.431", - "x": "-0.5", - "z": "2.905", - "network_address": "wsn430-143.rennes.iot-lab.info" - }, - { - "y": "14.035", - "x": "-0.5", - "z": "2.905", - "network_address": "wsn430-144.rennes.iot-lab.info" - }, - { - "y": "0.51", - "x": "0.66", - "z": "2.66", - "network_address": "wsn430-145.rennes.iot-lab.info" - }, - { - "y": "1.46", - "x": "0.66", - "z": "2.8", - "network_address": "wsn430-146.rennes.iot-lab.info" - }, - { - "y": "2.51", - "x": "0.66", - "z": "2.69", - "network_address": "wsn430-147.rennes.iot-lab.info" - }, - { - "y": "3.11", - "x": "0.66", - "z": "2.7", - "network_address": "wsn430-148.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "2.26", - "z": "2.912", - "network_address": "wsn430-150.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "2.26", - "z": "2.911", - "network_address": "wsn430-152.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "2.26", - "z": "2.91", - "network_address": "wsn430-153.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "2.26", - "z": "2.91", - "network_address": "wsn430-154.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "2.26", - "z": "2.91", - "network_address": "wsn430-155.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "2.26", - "z": "2.909", - "network_address": "wsn430-156.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "2.26", - "z": "2.909", - "network_address": "wsn430-157.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "2.26", - "z": "2.908", - "network_address": "wsn430-158.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "2.26", - "z": "2.908", - "network_address": "wsn430-159.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "2.26", - "z": "2.907", - "network_address": "wsn430-160.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "2.26", - "z": "2.907", - "network_address": "wsn430-161.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "2.26", - "z": "2.907", - "network_address": "wsn430-162.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "2.26", - "z": "2.906", - "network_address": "wsn430-163.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "2.26", - "z": "2.906", - "network_address": "wsn430-164.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "2.26", - "z": "2.905", - "network_address": "wsn430-165.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "2.26", - "z": "2.905", - "network_address": "wsn430-166.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "3.084", - "z": "2.912", - "network_address": "wsn430-167.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "3.084", - "z": "2.912", - "network_address": "wsn430-168.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "3.084", - "z": "2.911", - "network_address": "wsn430-169.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "3.084", - "z": "2.911", - "network_address": "wsn430-170.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "3.084", - "z": "2.91", - "network_address": "wsn430-171.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "3.084", - "z": "2.91", - "network_address": "wsn430-172.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "3.084", - "z": "2.91", - "network_address": "wsn430-173.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "3.084", - "z": "2.909", - "network_address": "wsn430-174.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "3.084", - "z": "2.909", - "network_address": "wsn430-175.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "3.084", - "z": "2.908", - "network_address": "wsn430-176.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "3.084", - "z": "2.908", - "network_address": "wsn430-177.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "3.084", - "z": "2.907", - "network_address": "wsn430-178.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "3.084", - "z": "2.907", - "network_address": "wsn430-179.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "3.084", - "z": "2.907", - "network_address": "wsn430-180.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "3.084", - "z": "2.906", - "network_address": "wsn430-181.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "3.084", - "z": "2.906", - "network_address": "wsn430-182.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "3.084", - "z": "2.905", - "network_address": "wsn430-183.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "3.084", - "z": "2.905", - "network_address": "wsn430-184.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "3.908", - "z": "2.912", - "network_address": "wsn430-185.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "3.908", - "z": "2.912", - "network_address": "wsn430-186.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "3.908", - "z": "2.911", - "network_address": "wsn430-187.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "3.908", - "z": "2.911", - "network_address": "wsn430-188.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "3.908", - "z": "2.91", - "network_address": "wsn430-189.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "3.908", - "z": "2.91", - "network_address": "wsn430-190.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "3.908", - "z": "2.91", - "network_address": "wsn430-191.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "3.908", - "z": "2.909", - "network_address": "wsn430-193.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "3.908", - "z": "2.908", - "network_address": "wsn430-194.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "3.908", - "z": "2.908", - "network_address": "wsn430-195.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "3.908", - "z": "2.907", - "network_address": "wsn430-196.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "3.908", - "z": "2.907", - "network_address": "wsn430-197.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "3.908", - "z": "2.907", - "network_address": "wsn430-198.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "3.908", - "z": "2.906", - "network_address": "wsn430-199.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "3.908", - "z": "2.906", - "network_address": "wsn430-200.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "3.908", - "z": "2.905", - "network_address": "wsn430-201.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "3.908", - "z": "2.905", - "network_address": "wsn430-202.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "4.732", - "z": "2.912", - "network_address": "wsn430-203.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "4.732", - "z": "2.912", - "network_address": "wsn430-204.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "4.732", - "z": "2.911", - "network_address": "wsn430-205.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "4.732", - "z": "2.911", - "network_address": "wsn430-206.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "4.732", - "z": "2.91", - "network_address": "wsn430-207.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "4.732", - "z": "2.91", - "network_address": "wsn430-208.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "4.732", - "z": "2.91", - "network_address": "wsn430-209.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "4.732", - "z": "2.909", - "network_address": "wsn430-210.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "4.732", - "z": "2.909", - "network_address": "wsn430-211.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "4.732", - "z": "2.908", - "network_address": "wsn430-212.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "4.732", - "z": "2.908", - "network_address": "wsn430-213.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "4.732", - "z": "2.907", - "network_address": "wsn430-214.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "4.732", - "z": "2.907", - "network_address": "wsn430-215.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "4.732", - "z": "2.907", - "network_address": "wsn430-216.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "4.732", - "z": "2.906", - "network_address": "wsn430-217.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "4.732", - "z": "2.906", - "network_address": "wsn430-218.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "4.732", - "z": "2.905", - "network_address": "wsn430-219.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "4.732", - "z": "2.905", - "network_address": "wsn430-220.rennes.iot-lab.info" - }, - { - "y": "0.14", - "x": "5.556", - "z": "2.912", - "network_address": "wsn430-221.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "5.556", - "z": "2.912", - "network_address": "wsn430-222.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "5.556", - "z": "2.911", - "network_address": "wsn430-223.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "5.556", - "z": "2.91", - "network_address": "wsn430-225.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "5.556", - "z": "2.91", - "network_address": "wsn430-226.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "5.556", - "z": "2.91", - "network_address": "wsn430-227.rennes.iot-lab.info" - }, - { - "y": "4.369", - "x": "5.556", - "z": "2.909", - "network_address": "wsn430-228.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "5.556", - "z": "2.909", - "network_address": "wsn430-229.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "5.556", - "z": "2.908", - "network_address": "wsn430-230.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "5.556", - "z": "2.908", - "network_address": "wsn430-231.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "5.556", - "z": "2.907", - "network_address": "wsn430-232.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "5.556", - "z": "2.907", - "network_address": "wsn430-233.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "5.556", - "z": "2.907", - "network_address": "wsn430-234.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "5.556", - "z": "2.906", - "network_address": "wsn430-235.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "5.556", - "z": "2.906", - "network_address": "wsn430-236.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "5.556", - "z": "2.905", - "network_address": "wsn430-237.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "5.556", - "z": "2.905", - "network_address": "wsn430-238.rennes.iot-lab.info" - }, - { - "y": "0.744", - "x": "6.38", - "z": "2.912", - "network_address": "wsn430-240.rennes.iot-lab.info" - }, - { - "y": "1.348", - "x": "6.38", - "z": "2.911", - "network_address": "wsn430-241.rennes.iot-lab.info" - }, - { - "y": "1.952", - "x": "6.38", - "z": "2.911", - "network_address": "wsn430-242.rennes.iot-lab.info" - }, - { - "y": "2.556", - "x": "6.38", - "z": "2.91", - "network_address": "wsn430-243.rennes.iot-lab.info" - }, - { - "y": "3.161", - "x": "6.38", - "z": "2.91", - "network_address": "wsn430-244.rennes.iot-lab.info" - }, - { - "y": "3.765", - "x": "6.38", - "z": "2.91", - "network_address": "wsn430-245.rennes.iot-lab.info" - }, - { - "y": "4.973", - "x": "6.38", - "z": "2.909", - "network_address": "wsn430-247.rennes.iot-lab.info" - }, - { - "y": "5.577", - "x": "6.38", - "z": "2.908", - "network_address": "wsn430-248.rennes.iot-lab.info" - }, - { - "y": "6.181", - "x": "6.38", - "z": "2.908", - "network_address": "wsn430-249.rennes.iot-lab.info" - }, - { - "y": "6.785", - "x": "6.38", - "z": "2.907", - "network_address": "wsn430-250.rennes.iot-lab.info" - }, - { - "y": "7.389", - "x": "6.38", - "z": "2.907", - "network_address": "wsn430-251.rennes.iot-lab.info" - }, - { - "y": "7.994", - "x": "6.38", - "z": "2.907", - "network_address": "wsn430-252.rennes.iot-lab.info" - }, - { - "y": "8.598", - "x": "6.38", - "z": "2.906", - "network_address": "wsn430-253.rennes.iot-lab.info" - }, - { - "y": "9.202", - "x": "6.38", - "z": "2.906", - "network_address": "wsn430-254.rennes.iot-lab.info" - }, - { - "y": "9.806", - "x": "6.38", - "z": "2.905", - "network_address": "wsn430-255.rennes.iot-lab.info" - }, - { - "y": "10.41", - "x": "6.38", - "z": "2.905", - "network_address": "wsn430-256.rennes.iot-lab.info" - } - ], - "location": "rennes" - }, - { - "nodes": [ - { - "y": "26.76", - "x": "20.70", - "z": "-0.04", - "network_address": "m3-2.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "21.90", - "z": "-0.04", - "network_address": "m3-4.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "22.50", - "z": "-0.04", - "network_address": "m3-5.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "26.95", - "z": "-0.04", - "network_address": "m3-11.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "28.15", - "z": "-0.04", - "network_address": "m3-13.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "28.75", - "z": "-0.04", - "network_address": "m3-14.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "29.35", - "z": "-0.04", - "network_address": "m3-15.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "32.95", - "z": "-0.04", - "network_address": "m3-21.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "34.15", - "z": "-0.04", - "network_address": "m3-23.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "35.35", - "z": "-0.04", - "network_address": "m3-25.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "38.35", - "z": "-0.04", - "network_address": "m3-30.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "38.95", - "z": "-0.04", - "network_address": "m3-31.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "39.55", - "z": "-0.04", - "network_address": "m3-32.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "40.15", - "z": "-0.04", - "network_address": "m3-33.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "41.35", - "z": "-0.04", - "network_address": "m3-35.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "42.55", - "z": "-0.04", - "network_address": "m3-37.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "43.15", - "z": "-0.04", - "network_address": "m3-38.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "43.75", - "z": "-0.04", - "network_address": "m3-39.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "44.35", - "z": "-0.04", - "network_address": "m3-40.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "49.15", - "z": "-0.04", - "network_address": "m3-48.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "49.75", - "z": "-0.04", - "network_address": "m3-49.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "50.95", - "z": "-0.04", - "network_address": "m3-51.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "53.35", - "z": "-0.04", - "network_address": "m3-55.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "55.75", - "z": "-0.04", - "network_address": "m3-59.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "56.95", - "z": "-0.04", - "network_address": "m3-61.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "58.15", - "z": "-0.04", - "network_address": "m3-63.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "59.35", - "z": "-0.04", - "network_address": "m3-65.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "61.15", - "z": "-0.04", - "network_address": "m3-68.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "61.75", - "z": "-0.04", - "network_address": "m3-69.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "16.42", - "z": "-0.04", - "network_address": "m3-71.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "15.82", - "z": "-0.04", - "network_address": "m3-72.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "15.22", - "z": "-0.04", - "network_address": "m3-73.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "12.82", - "z": "-0.04", - "network_address": "m3-77.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "11.02", - "z": "-0.04", - "network_address": "m3-80.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "8.02", - "z": "-0.04", - "network_address": "m3-85.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "6.22", - "z": "-0.04", - "network_address": "m3-88.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "4.42", - "z": "-0.04", - "network_address": "m3-91.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "2.62", - "z": "-0.04", - "network_address": "m3-94.grenoble.iot-lab.info" - }, - { - "y": "24.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-101.grenoble.iot-lab.info" - }, - { - "y": "24.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-102.grenoble.iot-lab.info" - }, - { - "y": "23.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-105.grenoble.iot-lab.info" - }, - { - "y": "23.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-106.grenoble.iot-lab.info" - }, - { - "y": "22.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-109.grenoble.iot-lab.info" - }, - { - "y": "21.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-113.grenoble.iot-lab.info" - }, - { - "y": "21.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-114.grenoble.iot-lab.info" - }, - { - "y": "20.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-115.grenoble.iot-lab.info" - }, - { - "y": "20.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-116.grenoble.iot-lab.info" - }, - { - "y": "19.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-117.grenoble.iot-lab.info" - }, - { - "y": "19.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-118.grenoble.iot-lab.info" - }, - { - "y": "18.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-122.grenoble.iot-lab.info" - }, - { - "y": "18.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-123.grenoble.iot-lab.info" - }, - { - "y": "17.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-125.grenoble.iot-lab.info" - }, - { - "y": "16.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-129.grenoble.iot-lab.info" - }, - { - "y": "16.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-130.grenoble.iot-lab.info" - }, - { - "y": "15.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-131.grenoble.iot-lab.info" - }, - { - "y": "15.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-132.grenoble.iot-lab.info" - }, - { - "y": "15.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-133.grenoble.iot-lab.info" - }, - { - "y": "14.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-135.grenoble.iot-lab.info" - }, - { - "y": "14.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-136.grenoble.iot-lab.info" - }, - { - "y": "13.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-139.grenoble.iot-lab.info" - }, - { - "y": "13.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-140.grenoble.iot-lab.info" - }, - { - "y": "12.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-141.grenoble.iot-lab.info" - }, - { - "y": "12.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-142.grenoble.iot-lab.info" - }, - { - "y": "11.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-146.grenoble.iot-lab.info" - }, - { - "y": "10.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-147.grenoble.iot-lab.info" - }, - { - "y": "10.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-148.grenoble.iot-lab.info" - }, - { - "y": "10.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-150.grenoble.iot-lab.info" - }, - { - "y": "9.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-151.grenoble.iot-lab.info" - }, - { - "y": "9.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-152.grenoble.iot-lab.info" - }, - { - "y": "8.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-155.grenoble.iot-lab.info" - }, - { - "y": "7.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-157.grenoble.iot-lab.info" - }, - { - "y": "7.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-158.grenoble.iot-lab.info" - }, - { - "y": "7.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-159.grenoble.iot-lab.info" - }, - { - "y": "7.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-160.grenoble.iot-lab.info" - }, - { - "y": "6.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-161.grenoble.iot-lab.info" - }, - { - "y": "6.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-162.grenoble.iot-lab.info" - }, - { - "y": "4.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-167.grenoble.iot-lab.info" - }, - { - "y": "4.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-169.grenoble.iot-lab.info" - }, - { - "y": "3.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-171.grenoble.iot-lab.info" - }, - { - "y": "3.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-174.grenoble.iot-lab.info" - }, - { - "y": "2.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-175.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "2.75", - "z": "-0.04", - "network_address": "m3-179.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "3.35", - "z": "-0.04", - "network_address": "m3-180.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "3.95", - "z": "-0.04", - "network_address": "m3-181.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "4.55", - "z": "-0.04", - "network_address": "m3-182.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "8.15", - "z": "-0.04", - "network_address": "m3-188.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "8.75", - "z": "-0.04", - "network_address": "m3-189.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "9.95", - "z": "-0.04", - "network_address": "m3-191.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "10.55", - "z": "-0.04", - "network_address": "m3-192.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "11.75", - "z": "-0.04", - "network_address": "m3-194.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "12.95", - "z": "-0.04", - "network_address": "m3-196.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "13.55", - "z": "-0.04", - "network_address": "m3-197.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "14.15", - "z": "-0.04", - "network_address": "m3-198.grenoble.iot-lab.info" - }, - { - "y": "0.75", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-204.grenoble.iot-lab.info" - }, - { - "y": "1.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-206.grenoble.iot-lab.info" - }, - { - "y": "2.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-208.grenoble.iot-lab.info" - }, - { - "y": "3.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-210.grenoble.iot-lab.info" - }, - { - "y": "3.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-212.grenoble.iot-lab.info" - }, - { - "y": "3.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-213.grenoble.iot-lab.info" - }, - { - "y": "4.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-214.grenoble.iot-lab.info" - }, - { - "y": "4.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-216.grenoble.iot-lab.info" - }, - { - "y": "5.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-219.grenoble.iot-lab.info" - }, - { - "y": "6.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-220.grenoble.iot-lab.info" - }, - { - "y": "6.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-222.grenoble.iot-lab.info" - }, - { - "y": "7.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-226.grenoble.iot-lab.info" - }, - { - "y": "7.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-227.grenoble.iot-lab.info" - }, - { - "y": "9.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-231.grenoble.iot-lab.info" - }, - { - "y": "9.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-232.grenoble.iot-lab.info" - }, - { - "y": "10.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-234.grenoble.iot-lab.info" - }, - { - "y": "10.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-235.grenoble.iot-lab.info" - }, - { - "y": "10.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-236.grenoble.iot-lab.info" - }, - { - "y": "10.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-237.grenoble.iot-lab.info" - }, - { - "y": "11.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-239.grenoble.iot-lab.info" - }, - { - "y": "12.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-241.grenoble.iot-lab.info" - }, - { - "y": "12.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-242.grenoble.iot-lab.info" - }, - { - "y": "13.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-244.grenoble.iot-lab.info" - }, - { - "y": "13.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-245.grenoble.iot-lab.info" - }, - { - "y": "13.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-246.grenoble.iot-lab.info" - }, - { - "y": "14.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-248.grenoble.iot-lab.info" - }, - { - "y": "15.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-252.grenoble.iot-lab.info" - }, - { - "y": "15.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-253.grenoble.iot-lab.info" - }, - { - "y": "16.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-254.grenoble.iot-lab.info" - }, - { - "y": "16.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-257.grenoble.iot-lab.info" - }, - { - "y": "17.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-258.grenoble.iot-lab.info" - }, - { - "y": "18.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-260.grenoble.iot-lab.info" - }, - { - "y": "18.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-262.grenoble.iot-lab.info" - }, - { - "y": "18.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-263.grenoble.iot-lab.info" - }, - { - "y": "19.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-264.grenoble.iot-lab.info" - }, - { - "y": "19.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-265.grenoble.iot-lab.info" - }, - { - "y": "19.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-267.grenoble.iot-lab.info" - }, - { - "y": "21.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-271.grenoble.iot-lab.info" - }, - { - "y": "21.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-272.grenoble.iot-lab.info" - }, - { - "y": "21.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-273.grenoble.iot-lab.info" - }, - { - "y": "23.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-278.grenoble.iot-lab.info" - }, - { - "y": "24.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-280.grenoble.iot-lab.info" - }, - { - "y": "24.63", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-282.grenoble.iot-lab.info" - }, - { - "y": "25.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-285.grenoble.iot-lab.info" - }, - { - "y": "26.52", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-288.grenoble.iot-lab.info" - }, - { - "y": "26.52", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-289.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "20.05", - "z": "-0.04", - "network_address": "m3-290.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "21.25", - "z": "-0.04", - "network_address": "m3-292.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "21.85", - "z": "-0.04", - "network_address": "m3-293.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "25.22", - "z": "-0.04", - "network_address": "m3-297.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "25.85", - "z": "-0.04", - "network_address": "m3-298.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "26.42", - "z": "-0.04", - "network_address": "m3-299.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "28.22", - "z": "-0.04", - "network_address": "m3-301.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "29.36", - "z": "-0.04", - "network_address": "m3-303.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "31.76", - "z": "-0.04", - "network_address": "m3-307.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "32.96", - "z": "-0.04", - "network_address": "m3-309.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "33.56", - "z": "-0.04", - "network_address": "m3-310.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "34.16", - "z": "-0.04", - "network_address": "m3-311.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "34.76", - "z": "-0.04", - "network_address": "m3-312.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "35.36", - "z": "-0.04", - "network_address": "m3-313.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "35.96", - "z": "-0.04", - "network_address": "m3-314.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "37.76", - "z": "-0.04", - "network_address": "m3-317.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "38.36", - "z": "-0.04", - "network_address": "m3-318.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "40.16", - "z": "-0.04", - "network_address": "m3-321.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "40.76", - "z": "-0.04", - "network_address": "m3-322.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "41.96", - "z": "-0.04", - "network_address": "m3-324.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "42.56", - "z": "-0.04", - "network_address": "m3-325.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "44.36", - "z": "-0.04", - "network_address": "m3-328.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "48.56", - "z": "-0.04", - "network_address": "m3-335.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "49.76", - "z": "-0.04", - "network_address": "m3-337.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "50.36", - "z": "-0.04", - "network_address": "m3-338.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "50.96", - "z": "-0.04", - "network_address": "m3-339.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "53.36", - "z": "-0.04", - "network_address": "m3-343.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "53.96", - "z": "-0.04", - "network_address": "m3-344.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "55.16", - "z": "-0.04", - "network_address": "m3-346.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "56.36", - "z": "-0.04", - "network_address": "m3-348.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "56.96", - "z": "-0.04", - "network_address": "m3-349.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "59.96", - "z": "-0.04", - "network_address": "m3-354.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "34.75", - "z": "3.23", - "network_address": "m3-359.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "35.35", - "z": "2.63", - "network_address": "m3-360.grenoble.iot-lab.info" - }, - { - "y": "24.92", - "x": "37.75", - "z": "2.63", - "network_address": "m3-363.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "39.55", - "z": "3.23", - "network_address": "m3-366.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "40.15", - "z": "3.23", - "network_address": "m3-367.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "40.75", - "z": "2.63", - "network_address": "m3-368.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "46.75", - "z": "2.63", - "network_address": "m3-371.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "48.55", - "z": "2.63", - "network_address": "m3-374.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "49.15", - "z": "3.23", - "network_address": "m3-375.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "52.15", - "z": "2.63", - "network_address": "m3-376.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "52.75", - "z": "2.63", - "network_address": "m3-377.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "20.10", - "z": "-0.04", - "network_address": "m3-1.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "21.30", - "z": "-0.04", - "network_address": "m3-3.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "23.10", - "z": "-0.04", - "network_address": "m3-6.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "24.55", - "z": "-0.04", - "network_address": "m3-7.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "25.15", - "z": "-0.04", - "network_address": "m3-8.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "26.35", - "z": "-0.04", - "network_address": "m3-10.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "27.55", - "z": "-0.04", - "network_address": "m3-12.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "29.95", - "z": "-0.04", - "network_address": "m3-16.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "31.75", - "z": "-0.04", - "network_address": "m3-19.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "32.35", - "z": "-0.04", - "network_address": "m3-20.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "33.55", - "z": "-0.04", - "network_address": "m3-22.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "34.75", - "z": "-0.04", - "network_address": "m3-24.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "35.95", - "z": "-0.04", - "network_address": "m3-26.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "36.55", - "z": "-0.04", - "network_address": "m3-27.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "37.15", - "z": "-0.04", - "network_address": "m3-28.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "40.75", - "z": "-0.04", - "network_address": "m3-34.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "41.95", - "z": "-0.04", - "network_address": "m3-36.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "44.95", - "z": "-0.04", - "network_address": "m3-41.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "45.55", - "z": "-0.04", - "network_address": "m3-42.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "46.15", - "z": "-0.04", - "network_address": "m3-43.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "47.95", - "z": "-0.04", - "network_address": "m3-46.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "48.55", - "z": "-0.04", - "network_address": "m3-47.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "50.35", - "z": "-0.04", - "network_address": "m3-50.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "51.55", - "z": "-0.04", - "network_address": "m3-52.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "52.15", - "z": "-0.04", - "network_address": "m3-53.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "53.95", - "z": "-0.04", - "network_address": "m3-56.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "54.55", - "z": "-0.04", - "network_address": "m3-57.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "55.15", - "z": "-0.04", - "network_address": "m3-58.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "56.35", - "z": "-0.04", - "network_address": "m3-60.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "57.55", - "z": "-0.04", - "network_address": "m3-62.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "58.75", - "z": "-0.04", - "network_address": "m3-64.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "59.95", - "z": "-0.04", - "network_address": "m3-66.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "60.55", - "z": "-0.04", - "network_address": "m3-67.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "17.02", - "z": "-0.04", - "network_address": "m3-70.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "14.62", - "z": "-0.04", - "network_address": "m3-74.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "14.02", - "z": "-0.04", - "network_address": "m3-75.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "13.42", - "z": "-0.04", - "network_address": "m3-76.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "12.22", - "z": "-0.04", - "network_address": "m3-78.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "11.62", - "z": "-0.04", - "network_address": "m3-79.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "9.22", - "z": "-0.04", - "network_address": "m3-83.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "7.42", - "z": "-0.04", - "network_address": "m3-86.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "6.82", - "z": "-0.04", - "network_address": "m3-87.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "5.62", - "z": "-0.04", - "network_address": "m3-89.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "5.02", - "z": "-0.04", - "network_address": "m3-90.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "3.82", - "z": "-0.04", - "network_address": "m3-92.grenoble.iot-lab.info" - }, - { - "y": "26.76", - "x": "3.22", - "z": "-0.04", - "network_address": "m3-93.grenoble.iot-lab.info" - }, - { - "y": "26.52", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-95.grenoble.iot-lab.info" - }, - { - "y": "26.52", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-96.grenoble.iot-lab.info" - }, - { - "y": "25.92", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-97.grenoble.iot-lab.info" - }, - { - "y": "25.92", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-98.grenoble.iot-lab.info" - }, - { - "y": "25.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-99.grenoble.iot-lab.info" - }, - { - "y": "25.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-100.grenoble.iot-lab.info" - }, - { - "y": "24.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-103.grenoble.iot-lab.info" - }, - { - "y": "24.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-104.grenoble.iot-lab.info" - }, - { - "y": "22.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-107.grenoble.iot-lab.info" - }, - { - "y": "22.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-108.grenoble.iot-lab.info" - }, - { - "y": "22.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-110.grenoble.iot-lab.info" - }, - { - "y": "21.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-112.grenoble.iot-lab.info" - }, - { - "y": "19.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-119.grenoble.iot-lab.info" - }, - { - "y": "19.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-120.grenoble.iot-lab.info" - }, - { - "y": "18.63", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-121.grenoble.iot-lab.info" - }, - { - "y": "17.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-126.grenoble.iot-lab.info" - }, - { - "y": "16.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-127.grenoble.iot-lab.info" - }, - { - "y": "16.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-128.grenoble.iot-lab.info" - }, - { - "y": "13.83", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-137.grenoble.iot-lab.info" - }, - { - "y": "12.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-144.grenoble.iot-lab.info" - }, - { - "y": "11.43", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-145.grenoble.iot-lab.info" - }, - { - "y": "10.23", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-149.grenoble.iot-lab.info" - }, - { - "y": "9.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-153.grenoble.iot-lab.info" - }, - { - "y": "9.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-154.grenoble.iot-lab.info" - }, - { - "y": "8.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-156.grenoble.iot-lab.info" - }, - { - "y": "6.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-163.grenoble.iot-lab.info" - }, - { - "y": "6.03", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-164.grenoble.iot-lab.info" - }, - { - "y": "5.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-166.grenoble.iot-lab.info" - }, - { - "y": "4.83", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-168.grenoble.iot-lab.info" - }, - { - "y": "4.23", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-170.grenoble.iot-lab.info" - }, - { - "y": "3.63", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-172.grenoble.iot-lab.info" - }, - { - "y": "3.03", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-173.grenoble.iot-lab.info" - }, - { - "y": "2.43", - "x": "1.00", - "z": "-0.04", - "network_address": "m3-176.grenoble.iot-lab.info" - }, - { - "y": "1.85", - "x": "0.40", - "z": "-0.04", - "network_address": "m3-177.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "5.75", - "z": "-0.04", - "network_address": "m3-184.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "6.95", - "z": "-0.04", - "network_address": "m3-186.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "9.35", - "z": "-0.04", - "network_address": "m3-190.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "11.15", - "z": "-0.04", - "network_address": "m3-193.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "12.35", - "z": "-0.04", - "network_address": "m3-195.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "14.75", - "z": "-0.04", - "network_address": "m3-199.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "15.35", - "z": "-0.04", - "network_address": "m3-200.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "15.95", - "z": "-0.04", - "network_address": "m3-201.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "16.55", - "z": "-0.04", - "network_address": "m3-202.grenoble.iot-lab.info" - }, - { - "y": "1.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-207.grenoble.iot-lab.info" - }, - { - "y": "2.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-209.grenoble.iot-lab.info" - }, - { - "y": "3.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-211.grenoble.iot-lab.info" - }, - { - "y": "4.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-215.grenoble.iot-lab.info" - }, - { - "y": "4.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-217.grenoble.iot-lab.info" - }, - { - "y": "5.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-218.grenoble.iot-lab.info" - }, - { - "y": "6.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-221.grenoble.iot-lab.info" - }, - { - "y": "6.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-223.grenoble.iot-lab.info" - }, - { - "y": "7.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-224.grenoble.iot-lab.info" - }, - { - "y": "7.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-225.grenoble.iot-lab.info" - }, - { - "y": "8.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-228.grenoble.iot-lab.info" - }, - { - "y": "8.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-229.grenoble.iot-lab.info" - }, - { - "y": "9.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-230.grenoble.iot-lab.info" - }, - { - "y": "9.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-233.grenoble.iot-lab.info" - }, - { - "y": "11.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-238.grenoble.iot-lab.info" - }, - { - "y": "12.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-240.grenoble.iot-lab.info" - }, - { - "y": "13.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-247.grenoble.iot-lab.info" - }, - { - "y": "14.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-249.grenoble.iot-lab.info" - }, - { - "y": "15.03", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-250.grenoble.iot-lab.info" - }, - { - "y": "15.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-251.grenoble.iot-lab.info" - }, - { - "y": "16.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-256.grenoble.iot-lab.info" - }, - { - "y": "17.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-259.grenoble.iot-lab.info" - }, - { - "y": "18.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-261.grenoble.iot-lab.info" - }, - { - "y": "19.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-266.grenoble.iot-lab.info" - }, - { - "y": "20.43", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-268.grenoble.iot-lab.info" - }, - { - "y": "20.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-269.grenoble.iot-lab.info" - }, - { - "y": "22.23", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-274.grenoble.iot-lab.info" - }, - { - "y": "22.23", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-275.grenoble.iot-lab.info" - }, - { - "y": "22.83", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-276.grenoble.iot-lab.info" - }, - { - "y": "22.83", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-277.grenoble.iot-lab.info" - }, - { - "y": "23.43", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-279.grenoble.iot-lab.info" - }, - { - "y": "24.03", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-281.grenoble.iot-lab.info" - }, - { - "y": "24.63", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-283.grenoble.iot-lab.info" - }, - { - "y": "26.00", - "x": "18.95", - "z": "-0.04", - "network_address": "m3-286.grenoble.iot-lab.info" - }, - { - "y": "26.00", - "x": "18.35", - "z": "-0.04", - "network_address": "m3-287.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "20.65", - "z": "-0.04", - "network_address": "m3-291.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "22.45", - "z": "-0.04", - "network_address": "m3-294.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "23.05", - "z": "-0.04", - "network_address": "m3-295.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "24.62", - "z": "-0.04", - "network_address": "m3-296.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "28.71", - "z": "-0.04", - "network_address": "m3-302.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "29.96", - "z": "-0.04", - "network_address": "m3-304.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "30.56", - "z": "-0.04", - "network_address": "m3-305.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "31.16", - "z": "-0.04", - "network_address": "m3-306.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "32.36", - "z": "-0.04", - "network_address": "m3-308.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "36.56", - "z": "-0.04", - "network_address": "m3-315.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "37.16", - "z": "-0.04", - "network_address": "m3-316.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "39.56", - "z": "-0.04", - "network_address": "m3-320.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "41.36", - "z": "-0.04", - "network_address": "m3-323.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "43.16", - "z": "-0.04", - "network_address": "m3-326.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "43.76", - "z": "-0.04", - "network_address": "m3-327.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "44.96", - "z": "-0.04", - "network_address": "m3-329.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "45.56", - "z": "-0.04", - "network_address": "m3-330.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "46.76", - "z": "-0.04", - "network_address": "m3-332.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "47.36", - "z": "-0.04", - "network_address": "m3-333.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "47.96", - "z": "-0.04", - "network_address": "m3-334.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "49.16", - "z": "-0.04", - "network_address": "m3-336.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "51.56", - "z": "-0.04", - "network_address": "m3-340.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "52.16", - "z": "-0.04", - "network_address": "m3-341.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "52.76", - "z": "-0.04", - "network_address": "m3-342.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "54.56", - "z": "-0.04", - "network_address": "m3-345.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "55.76", - "z": "-0.04", - "network_address": "m3-347.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "57.56", - "z": "-0.04", - "network_address": "m3-350.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "58.76", - "z": "-0.04", - "network_address": "m3-352.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "59.36", - "z": "-0.04", - "network_address": "m3-353.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "60.56", - "z": "-0.04", - "network_address": "m3-355.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "61.16", - "z": "-0.04", - "network_address": "m3-356.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "61.76", - "z": "-0.04", - "network_address": "m3-357.grenoble.iot-lab.info" - }, - { - "y": "0.94", - "x": "62.26", - "z": "-0.04", - "network_address": "m3-358.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "35.95", - "z": "3.23", - "network_address": "m3-361.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "36.55", - "z": "3.23", - "network_address": "m3-362.grenoble.iot-lab.info" - }, - { - "y": "24.92", - "x": "37.75", - "z": "3.23", - "network_address": "m3-364.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "38.95", - "z": "2.63", - "network_address": "m3-365.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "41.35", - "z": "2.63", - "network_address": "m3-369.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "46.15", - "z": "2.63", - "network_address": "m3-370.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "47.35", - "z": "3.23", - "network_address": "m3-372.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "47.95", - "z": "2.63", - "network_address": "m3-373.grenoble.iot-lab.info" - }, - { - "y": "25.28", - "x": "20.33", - "z": "2.63", - "network_address": "a8-1.grenoble.iot-lab.info" - }, - { - "y": "25.28", - "x": "20.33", - "z": "3.23", - "network_address": "a8-2.grenoble.iot-lab.info" - }, - { - "y": "25.28", - "x": "20.93", - "z": "3.23", - "network_address": "a8-3.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "21.53", - "z": "2.63", - "network_address": "a8-4.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "21.53", - "z": "3.23", - "network_address": "a8-5.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "22.13", - "z": "2.63", - "network_address": "a8-6.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "22.13", - "z": "3.23", - "network_address": "a8-7.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "22.73", - "z": "2.63", - "network_address": "a8-8.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "23.33", - "z": "2.63", - "network_address": "a8-9.grenoble.iot-lab.info" - }, - { - "y": "25.33", - "x": "23.33", - "z": "3.23", - "network_address": "a8-10.grenoble.iot-lab.info" - }, - { - "y": "25.80", - "x": "23.93", - "z": "3.23", - "network_address": "a8-12.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "24.53", - "z": "3.23", - "network_address": "a8-13.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "25.13", - "z": "2.63", - "network_address": "a8-14.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "25.73", - "z": "3.23", - "network_address": "a8-15.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "26.33", - "z": "2.63", - "network_address": "a8-16.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "26.93", - "z": "2.63", - "network_address": "a8-17.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "27.55", - "z": "3.23", - "network_address": "a8-18.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "28.15", - "z": "2.63", - "network_address": "a8-19.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "28.75", - "z": "3.23", - "network_address": "a8-20.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "29.35", - "z": "3.23", - "network_address": "a8-21.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "29.95", - "z": "2.63", - "network_address": "a8-22.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "30.55", - "z": "3.23", - "network_address": "a8-23.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "31.15", - "z": "3.23", - "network_address": "a8-24.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "31.75", - "z": "2.63", - "network_address": "a8-25.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "32.35", - "z": "2.63", - "network_address": "a8-26.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "32.95", - "z": "3.23", - "network_address": "a8-28.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "33.55", - "z": "2.63", - "network_address": "a8-29.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "34.15", - "z": "2.63", - "network_address": "a8-30.grenoble.iot-lab.info" - }, - { - "y": "24.92", - "x": "38.35", - "z": "2.63", - "network_address": "a8-31.grenoble.iot-lab.info" - }, - { - "y": "24.92", - "x": "38.35", - "z": "3.23", - "network_address": "a8-32.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "41.95", - "z": "3.23", - "network_address": "a8-33.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "41.95", - "z": "2.63", - "network_address": "a8-34.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "43.15", - "z": "3.23", - "network_address": "a8-35.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "43.15", - "z": "2.63", - "network_address": "a8-36.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "44.35", - "z": "3.23", - "network_address": "a8-37.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "44.95", - "z": "3.23", - "network_address": "a8-38.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "44.95", - "z": "2.63", - "network_address": "a8-39.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "46.15", - "z": "3.23", - "network_address": "a8-40.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "49.75", - "z": "3.23", - "network_address": "a8-41.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "50.35", - "z": "2.63", - "network_address": "a8-42.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "50.95", - "z": "3.23", - "network_address": "a8-43.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "51.55", - "z": "3.23", - "network_address": "a8-44.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "55.15", - "z": "3.23", - "network_address": "a8-45.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "55.75", - "z": "2.63", - "network_address": "a8-46.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "56.35", - "z": "2.63", - "network_address": "a8-47.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "56.95", - "z": "3.23", - "network_address": "a8-48.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "57.55", - "z": "2.63", - "network_address": "a8-49.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "58.15", - "z": "3.23", - "network_address": "a8-50.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "58.75", - "z": "2.63", - "network_address": "a8-51.grenoble.iot-lab.info" - }, - { - "y": "24.90", - "x": "59.35", - "z": "3.23", - "network_address": "a8-52.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "59.95", - "z": "2.63", - "network_address": "a8-53.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "59.95", - "z": "3.23", - "network_address": "a8-54.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "60.55", - "z": "3.23", - "network_address": "a8-55.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "61.75", - "z": "2.63", - "network_address": "a8-57.grenoble.iot-lab.info" - }, - { - "y": "25.75", - "x": "62.35", - "z": "3.23", - "network_address": "a8-58.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "15.47", - "z": "2.63", - "network_address": "a8-59.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "14.87", - "z": "2.63", - "network_address": "a8-60.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "14.27", - "z": "2.63", - "network_address": "a8-61.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "13.07", - "z": "2.63", - "network_address": "a8-63.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "12.47", - "z": "2.63", - "network_address": "a8-64.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "11.87", - "z": "2.63", - "network_address": "a8-65.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "11.27", - "z": "2.63", - "network_address": "a8-66.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "10.67", - "z": "2.63", - "network_address": "a8-67.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "10.07", - "z": "2.63", - "network_address": "a8-68.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "9.47", - "z": "2.63", - "network_address": "a8-69.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "8.87", - "z": "2.63", - "network_address": "a8-70.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "8.27", - "z": "2.63", - "network_address": "a8-71.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "7.67", - "z": "2.63", - "network_address": "a8-72.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "7.07", - "z": "2.63", - "network_address": "a8-73.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "6.47", - "z": "2.63", - "network_address": "a8-74.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "5.87", - "z": "2.63", - "network_address": "a8-75.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "5.27", - "z": "2.63", - "network_address": "a8-76.grenoble.iot-lab.info" - }, - { - "y": "25.73", - "x": "4.57", - "z": "2.63", - "network_address": "a8-77.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "5.50", - "z": "2.63", - "network_address": "a8-78.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "6.10", - "z": "2.63", - "network_address": "a8-79.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "6.70", - "z": "2.63", - "network_address": "a8-80.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "7.30", - "z": "2.63", - "network_address": "a8-81.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "7.90", - "z": "2.63", - "network_address": "a8-82.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "8.50", - "z": "2.63", - "network_address": "a8-83.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "9.10", - "z": "2.63", - "network_address": "a8-84.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "9.70", - "z": "2.63", - "network_address": "a8-85.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "10.30", - "z": "2.63", - "network_address": "a8-86.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "10.90", - "z": "2.63", - "network_address": "a8-87.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "11.50", - "z": "2.63", - "network_address": "a8-88.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "12.10", - "z": "2.63", - "network_address": "a8-89.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "12.70", - "z": "2.63", - "network_address": "a8-90.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "13.30", - "z": "2.63", - "network_address": "a8-91.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "13.90", - "z": "2.63", - "network_address": "a8-92.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "14.50", - "z": "2.63", - "network_address": "a8-93.grenoble.iot-lab.info" - }, - { - "y": "0.04", - "x": "15.10", - "z": "2.63", - "network_address": "a8-94.grenoble.iot-lab.info" - }, - { - "y": "2.10", - "x": "19.75", - "z": "2.63", - "network_address": "a8-95.grenoble.iot-lab.info" - }, - { - "y": "2.10", - "x": "19.75", - "z": "3.23", - "network_address": "a8-96.grenoble.iot-lab.info" - }, - { - "y": "2.70", - "x": "19.75", - "z": "2.63", - "network_address": "a8-97.grenoble.iot-lab.info" - }, - { - "y": "2.70", - "x": "19.75", - "z": "3.23", - "network_address": "a8-98.grenoble.iot-lab.info" - }, - { - "y": "3.30", - "x": "19.75", - "z": "3.23", - "network_address": "a8-99.grenoble.iot-lab.info" - }, - { - "y": "3.90", - "x": "19.75", - "z": "2.63", - "network_address": "a8-100.grenoble.iot-lab.info" - }, - { - "y": "4.50", - "x": "19.75", - "z": "2.63", - "network_address": "a8-101.grenoble.iot-lab.info" - }, - { - "y": "4.50", - "x": "19.75", - "z": "3.23", - "network_address": "a8-102.grenoble.iot-lab.info" - }, - { - "y": "5.10", - "x": "19.75", - "z": "2.63", - "network_address": "a8-103.grenoble.iot-lab.info" - }, - { - "y": "5.70", - "x": "19.75", - "z": "3.23", - "network_address": "a8-105.grenoble.iot-lab.info" - }, - { - "y": "6.30", - "x": "19.75", - "z": "2.63", - "network_address": "a8-106.grenoble.iot-lab.info" - }, - { - "y": "6.30", - "x": "19.75", - "z": "3.23", - "network_address": "a8-107.grenoble.iot-lab.info" - }, - { - "y": "6.90", - "x": "19.75", - "z": "2.63", - "network_address": "a8-108.grenoble.iot-lab.info" - }, - { - "y": "7.50", - "x": "19.75", - "z": "3.23", - "network_address": "a8-109.grenoble.iot-lab.info" - }, - { - "y": "8.70", - "x": "20.45", - "z": "2.63", - "network_address": "a8-111.grenoble.iot-lab.info" - }, - { - "y": "8.70", - "x": "20.45", - "z": "3.23", - "network_address": "a8-112.grenoble.iot-lab.info" - }, - { - "y": "9.30", - "x": "20.45", - "z": "3.23", - "network_address": "a8-113.grenoble.iot-lab.info" - }, - { - "y": "9.90", - "x": "20.45", - "z": "2.63", - "network_address": "a8-114.grenoble.iot-lab.info" - }, - { - "y": "10.50", - "x": "20.45", - "z": "3.23", - "network_address": "a8-115.grenoble.iot-lab.info" - }, - { - "y": "11.10", - "x": "19.75", - "z": "2.63", - "network_address": "a8-116.grenoble.iot-lab.info" - }, - { - "y": "11.70", - "x": "19.75", - "z": "2.63", - "network_address": "a8-117.grenoble.iot-lab.info" - }, - { - "y": "11.70", - "x": "19.75", - "z": "3.23", - "network_address": "a8-118.grenoble.iot-lab.info" - }, - { - "y": "12.30", - "x": "19.75", - "z": "2.63", - "network_address": "a8-119.grenoble.iot-lab.info" - }, - { - "y": "12.90", - "x": "19.75", - "z": "3.23", - "network_address": "a8-120.grenoble.iot-lab.info" - }, - { - "y": "13.50", - "x": "19.75", - "z": "2.63", - "network_address": "a8-121.grenoble.iot-lab.info" - }, - { - "y": "13.50", - "x": "19.75", - "z": "3.23", - "network_address": "a8-122.grenoble.iot-lab.info" - }, - { - "y": "14.10", - "x": "19.75", - "z": "2.63", - "network_address": "a8-123.grenoble.iot-lab.info" - }, - { - "y": "14.70", - "x": "19.75", - "z": "2.63", - "network_address": "a8-124.grenoble.iot-lab.info" - }, - { - "y": "15.90", - "x": "19.75", - "z": "3.23", - "network_address": "a8-127.grenoble.iot-lab.info" - }, - { - "y": "16.50", - "x": "19.75", - "z": "3.23", - "network_address": "a8-128.grenoble.iot-lab.info" - }, - { - "y": "18.90", - "x": "19.75", - "z": "2.63", - "network_address": "a8-133.grenoble.iot-lab.info" - }, - { - "y": "21.80", - "x": "19.91", - "z": "3.23", - "network_address": "a8-140.grenoble.iot-lab.info" - }, - { - "y": "22.40", - "x": "19.91", - "z": "2.63", - "network_address": "a8-141.grenoble.iot-lab.info" - }, - { - "y": "24.20", - "x": "19.91", - "z": "3.23", - "network_address": "a8-145.grenoble.iot-lab.info" - }, - { - "y": "24.20", - "x": "19.91", - "z": "2.63", - "network_address": "a8-146.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "20.09", - "z": "2.63", - "network_address": "a8-149.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "20.09", - "z": "3.23", - "network_address": "a8-150.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "20.69", - "z": "2.63", - "network_address": "a8-151.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "21.29", - "z": "2.63", - "network_address": "a8-152.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "21.29", - "z": "3.23", - "network_address": "a8-153.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "21.89", - "z": "2.63", - "network_address": "a8-154.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "23.09", - "z": "2.63", - "network_address": "a8-156.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "23.09", - "z": "3.23", - "network_address": "a8-157.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "23.82", - "z": "2.63", - "network_address": "a8-158.grenoble.iot-lab.info" - }, - { - "y": "1.66", - "x": "24.17", - "z": "2.63", - "network_address": "a8-160.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "26.49", - "z": "2.63", - "network_address": "a8-161.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "26.49", - "z": "3.23", - "network_address": "a8-162.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "27.29", - "z": "3.23", - "network_address": "a8-164.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "27.89", - "z": "3.23", - "network_address": "a8-165.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "28.49", - "z": "2.63", - "network_address": "a8-166.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "29.09", - "z": "3.23", - "network_address": "a8-167.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "29.69", - "z": "2.63", - "network_address": "a8-168.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "29.69", - "z": "3.23", - "network_address": "a8-169.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "30.29", - "z": "2.63", - "network_address": "a8-170.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "30.89", - "z": "3.23", - "network_address": "a8-172.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "31.49", - "z": "2.63", - "network_address": "a8-173.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "31.49", - "z": "3.23", - "network_address": "a8-174.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "32.09", - "z": "2.63", - "network_address": "a8-175.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "32.09", - "z": "3.23", - "network_address": "a8-176.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "33.29", - "z": "3.23", - "network_address": "a8-178.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "33.89", - "z": "3.23", - "network_address": "a8-179.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "34.49", - "z": "2.63", - "network_address": "a8-180.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "35.09", - "z": "3.23", - "network_address": "a8-181.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "35.69", - "z": "2.63", - "network_address": "a8-182.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "36.29", - "z": "2.63", - "network_address": "a8-183.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "36.89", - "z": "2.63", - "network_address": "a8-184.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "37.49", - "z": "3.23", - "network_address": "a8-185.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "38.09", - "z": "2.63", - "network_address": "a8-186.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "38.69", - "z": "3.23", - "network_address": "a8-187.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "39.29", - "z": "3.23", - "network_address": "a8-189.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "39.89", - "z": "2.63", - "network_address": "a8-190.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "40.49", - "z": "3.23", - "network_address": "a8-191.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "41.09", - "z": "3.23", - "network_address": "a8-192.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "41.69", - "z": "2.63", - "network_address": "a8-193.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "42.29", - "z": "2.63", - "network_address": "a8-194.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "42.36", - "z": "3.23", - "network_address": "a8-195.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "42.89", - "z": "2.63", - "network_address": "a8-196.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "43.49", - "z": "2.63", - "network_address": "a8-197.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "43.49", - "z": "3.23", - "network_address": "a8-198.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "45.96", - "z": "2.63", - "network_address": "a8-199.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "45.90", - "z": "3.23", - "network_address": "a8-200.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "46.49", - "z": "3.23", - "network_address": "a8-201.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "47.09", - "z": "2.63", - "network_address": "a8-202.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "47.69", - "z": "3.23", - "network_address": "a8-203.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "48.29", - "z": "2.63", - "network_address": "a8-204.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "48.29", - "z": "3.23", - "network_address": "a8-205.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "48.89", - "z": "2.63", - "network_address": "a8-206.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "49.49", - "z": "3.23", - "network_address": "a8-207.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "50.09", - "z": "2.63", - "network_address": "a8-208.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "51.29", - "z": "2.63", - "network_address": "a8-209.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "51.29", - "z": "3.23", - "network_address": "a8-210.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "51.89", - "z": "3.23", - "network_address": "a8-211.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "52.49", - "z": "2.63", - "network_address": "a8-212.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "53.09", - "z": "3.23", - "network_address": "a8-213.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "53.69", - "z": "3.23", - "network_address": "a8-214.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "54.29", - "z": "2.63", - "network_address": "a8-215.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "54.89", - "z": "3.23", - "network_address": "a8-216.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "55.49", - "z": "3.23", - "network_address": "a8-217.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "56.09", - "z": "2.63", - "network_address": "a8-218.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "56.69", - "z": "3.23", - "network_address": "a8-219.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "57.29", - "z": "2.63", - "network_address": "a8-220.grenoble.iot-lab.info" - }, - { - "y": "2.34", - "x": "57.89", - "z": "2.63", - "network_address": "a8-221.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "57.89", - "z": "3.23", - "network_address": "a8-222.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "58.49", - "z": "2.63", - "network_address": "a8-223.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "59.09", - "z": "3.23", - "network_address": "a8-224.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "59.69", - "z": "2.63", - "network_address": "a8-225.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "60.29", - "z": "3.23", - "network_address": "a8-226.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "60.89", - "z": "3.23", - "network_address": "a8-227.grenoble.iot-lab.info" - }, - { - "y": "1.54", - "x": "61.49", - "z": "2.63", - "network_address": "a8-228.grenoble.iot-lab.info" - } - ], - "location": "grenoble" - } -] diff --git a/metas/process_resources.py b/metas/process_resources.py deleted file mode 100644 index 088a6619fa..0000000000 --- a/metas/process_resources.py +++ /dev/null @@ -1,24 +0,0 @@ -from __future__ import print_function -import json -import sys - -sites = ['rennes', 'grenoble', 'strasbourg', 'euratech'] - -if __name__ == '__main__': - filename = 'resources.json' - if len(sys.argv) == 2: - filename = sys.argv[1] - with open(filename, 'r') as f: - json_data = f.read() - data = json.loads(json_data) - - for site in sites: - motes = [mote for mote in data['items'] if mote['site'] == site and mote['uid'] != 'unknown' and mote['archi'].startswith('wsn430')] - with open('{0}.csv'.format(site), 'w') as f: - print('mac,x,y,z', file=f) - for mote in motes: - mac = '14-15-92-00-12-91-{0}-{1}'.format(mote['uid'][0:2], mote['uid'][2:4]) - x = mote['x'] - y = mote['y'] - z = mote['z'] - print('{0},{1},{2},{3}'.format(mac, x, y, z), file=f) \ No newline at end of file diff --git a/metas/rennes.csv b/metas/rennes.csv deleted file mode 100644 index 8918ff8578..0000000000 --- a/metas/rennes.csv +++ /dev/null @@ -1,223 +0,0 @@ -mac,x,y,z -14-15-92-00-12-91-ca-f5,-4.62,0.14,2.912 -14-15-92-00-12-91-ca-73,-4.62,0.744,2.912 -14-15-92-00-12-91-c8-8c,-4.62,1.348,2.911 -14-15-92-00-12-91-b1-c3,-4.62,2.556,2.911 -14-15-92-00-12-91-b7-04,-4.62,3.765,2.91 -14-15-92-00-12-91-c3-51,-4.62,4.369,2.91 -14-15-92-00-12-91-bc-98,-4.62,4.973,2.91 -14-15-92-00-12-91-b3-44,-4.62,5.577,2.909 -14-15-92-00-12-91-c5-9b,-4.62,6.181,2.909 -14-15-92-00-12-91-c0-9a,-4.62,7.389,2.908 -14-15-92-00-12-91-bd-6e,-4.62,7.994,2.908 -14-15-92-00-12-91-c0-e9,-4.62,8.598,2.908 -14-15-92-00-12-91-ca-0a,-4.62,9.202,2.907 -14-15-92-00-12-91-b5-83,-4.62,9.806,2.907 -14-15-92-00-12-91-b8-d6,-4.62,10.41,2.907 -14-15-92-00-12-91-c5-79,-4.62,11.014,2.907 -14-15-92-00-12-91-be-eb,-4.62,11.618,2.906 -14-15-92-00-12-91-c5-e7,-4.62,12.222,2.906 -14-15-92-00-12-91-c2-bb,-4.62,12.826,2.906 -14-15-92-00-12-91-1c-15,-4.62,13.431,2.905 -14-15-92-00-12-91-cb-97,-4.62,14.035,2.905 -14-15-92-00-12-91-b4-bc,-3.796,0.14,2.912 -14-15-92-00-12-91-b5-02,-3.796,0.744,2.912 -14-15-92-00-12-91-c8-9a,-3.796,1.348,2.911 -14-15-92-00-12-91-c3-2c,-3.796,1.952,2.911 -14-15-92-00-12-91-b7-92,-3.796,2.556,2.911 -14-15-92-00-12-91-c3-a8,-3.796,3.161,2.91 -14-15-92-00-12-91-c7-a8,-3.796,3.765,2.91 -14-15-92-00-12-91-ba-43,-3.796,4.369,2.91 -14-15-92-00-12-91-c7-cf,-3.796,5.577,2.909 -14-15-92-00-12-91-b9-20,-3.796,6.181,2.909 -14-15-92-00-12-91-bd-97,-3.796,6.785,2.909 -14-15-92-00-12-91-ba-fb,-3.796,7.389,2.908 -14-15-92-00-12-91-b8-1d,-3.796,7.994,2.908 -14-15-92-00-12-91-b5-25,-3.796,8.598,2.908 -14-15-92-00-12-91-c0-32,-3.796,9.202,2.907 -14-15-92-00-12-91-c4-75,-3.796,9.806,2.907 -14-15-92-00-12-91-b1-92,-3.796,10.41,2.907 -14-15-92-00-12-91-bc-d2,-3.796,11.014,2.907 -14-15-92-00-12-91-c6-32,-3.796,11.618,2.906 -14-15-92-00-12-91-b1-a3,-3.796,12.826,2.906 -14-15-92-00-12-91-1f-52,-2.972,0.14,2.912 -14-15-92-00-12-91-cf-06,-2.972,0.744,2.912 -14-15-92-00-12-91-b1-b6,-2.972,1.348,2.911 -14-15-92-00-12-91-c7-13,-2.972,1.952,2.911 -14-15-92-00-12-91-be-69,-2.972,2.556,2.911 -14-15-92-00-12-91-c4-1c,-2.972,3.161,2.91 -14-15-92-00-12-91-b1-ce,-2.972,3.765,2.91 -14-15-92-00-12-91-bf-0e,-2.972,4.369,2.91 -14-15-92-00-12-91-b7-a4,-2.972,4.973,2.91 -14-15-92-00-12-91-b7-12,-2.972,5.577,2.909 -14-15-92-00-12-91-cf-01,-2.972,6.181,2.909 -14-15-92-00-12-91-b4-a4,-2.972,6.785,2.909 -14-15-92-00-12-91-c1-18,-2.972,7.389,2.908 -14-15-92-00-12-91-ca-5a,-2.972,7.994,2.908 -14-15-92-00-12-91-b3-fc,-2.972,9.202,2.907 -14-15-92-00-12-91-c3-bd,-2.972,9.806,2.907 -14-15-92-00-12-91-c7-3e,-2.972,10.41,2.907 -14-15-92-00-12-91-bc-5a,-2.972,11.014,2.907 -14-15-92-00-12-91-c8-72,-2.972,11.618,2.906 -14-15-92-00-12-91-be-7c,-2.972,12.222,2.906 -14-15-92-00-12-91-c0-5f,-2.972,12.826,2.906 -14-15-92-00-12-91-b2-34,-2.972,13.431,2.905 -14-15-92-00-12-91-c3-45,-2.148,0.14,2.912 -14-15-92-00-12-91-c3-3c,-2.148,0.744,2.912 -14-15-92-00-12-91-1c-06,-2.148,1.348,2.911 -14-15-92-00-12-91-c7-60,-2.148,2.556,2.911 -14-15-92-00-12-91-b7-75,-2.148,3.161,2.91 -14-15-92-00-12-91-c5-b4,-2.148,4.369,2.91 -14-15-92-00-12-91-c9-ce,-2.148,4.973,2.91 -14-15-92-00-12-91-b9-64,-2.148,5.577,2.909 -14-15-92-00-12-91-c6-88,-2.148,6.181,2.909 -14-15-92-00-12-91-b2-28,-2.148,7.389,2.908 -14-15-92-00-12-91-c1-71,-2.148,7.994,2.908 -14-15-92-00-12-91-b5-b2,-2.148,8.598,2.908 -14-15-92-00-12-91-b9-e9,-2.148,9.202,2.907 -14-15-92-00-12-91-c7-15,-2.148,9.806,2.907 -14-15-92-00-12-91-c9-c5,-2.148,10.41,2.907 -14-15-92-00-12-91-b6-27,-2.148,11.014,2.907 -14-15-92-00-12-91-b7-8c,-2.148,11.618,2.906 -14-15-92-00-12-91-af-ee,-2.148,12.222,2.906 -14-15-92-00-12-91-c0-a5,-2.148,12.826,2.906 -14-15-92-00-12-91-c7-51,-2.148,13.431,2.905 -14-15-92-00-12-91-cb-5a,-2.148,14.035,2.905 -14-15-92-00-12-91-cd-aa,-1.324,0.14,2.912 -14-15-92-00-12-91-1f-54,-1.324,2.556,2.911 -14-15-92-00-12-91-20-33,-1.324,3.161,2.91 -14-15-92-00-12-91-bc-a8,-1.324,4.369,2.91 -14-15-92-00-12-91-c6-ab,-1.324,5.577,2.909 -14-15-92-00-12-91-c6-cb,-1.324,7.994,2.908 -14-15-92-00-12-91-c4-e2,-1.324,8.598,2.908 -14-15-92-00-12-91-b9-1d,-1.324,9.806,2.907 -14-15-92-00-12-91-cc-99,-1.324,10.41,2.907 -14-15-92-00-12-91-ca-e2,-1.324,11.618,2.906 -14-15-92-00-12-91-bc-a5,-1.324,12.826,2.906 -14-15-92-00-12-91-be-2a,-1.324,13.431,2.905 -14-15-92-00-12-91-c3-da,-1.324,14.035,2.905 -14-15-92-00-12-91-b2-d4,-0.5,0.14,2.912 -14-15-92-00-12-91-c9-29,-0.5,0.744,2.912 -14-15-92-00-12-91-c2-4a,-0.5,1.348,2.911 -14-15-92-00-12-91-b2-25,-0.5,2.556,2.911 -14-15-92-00-12-91-c0-b1,-0.5,3.161,2.91 -14-15-92-00-12-91-b2-03,-0.5,3.765,2.91 -14-15-92-00-12-91-c1-59,-0.5,4.369,2.91 -14-15-92-00-12-91-b1-6d,-0.5,4.973,2.91 -14-15-92-00-12-91-cb-1c,-0.5,7.389,2.908 -14-15-92-00-12-91-b3-70,-0.5,7.994,2.908 -14-15-92-00-12-91-b9-73,-0.5,8.598,2.908 -14-15-92-00-12-91-ca-15,-0.5,9.202,2.907 -14-15-92-00-12-91-b1-f9,-0.5,10.41,2.907 -14-15-92-00-12-91-b8-4e,-0.5,11.014,2.907 -14-15-92-00-12-91-ce-4a,-0.5,11.618,2.906 -14-15-92-00-12-91-20-36,-0.5,12.222,2.906 -14-15-92-00-12-91-be-91,-0.5,12.826,2.906 -14-15-92-00-12-91-b8-f2,-0.5,13.431,2.905 -14-15-92-00-12-91-b3-01,-0.5,14.035,2.905 -14-15-92-00-12-91-ca-c1,0.66,0.51,2.66 -14-15-92-00-12-91-cb-96,0.66,2.51,2.69 -14-15-92-00-12-91-bd-ae,0.66,3.11,2.7 -14-15-92-00-12-91-bb-1f,2.26,0.14,2.912 -14-15-92-00-12-91-c9-89,2.26,0.744,2.912 -14-15-92-00-12-91-b5-db,2.26,1.348,2.911 -14-15-92-00-12-91-b2-37,2.26,1.952,2.911 -14-15-92-00-12-91-ba-b9,2.26,2.556,2.91 -14-15-92-00-12-91-b8-3d,2.26,3.161,2.91 -14-15-92-00-12-91-b1-97,2.26,3.765,2.91 -14-15-92-00-12-91-c0-31,2.26,4.369,2.909 -14-15-92-00-12-91-b9-60,2.26,4.973,2.909 -14-15-92-00-12-91-c1-56,2.26,6.181,2.908 -14-15-92-00-12-91-b0-f8,2.26,7.389,2.907 -14-15-92-00-12-91-cc-73,2.26,7.994,2.907 -14-15-92-00-12-91-bf-21,2.26,8.598,2.906 -14-15-92-00-12-91-b6-7b,2.26,9.202,2.906 -14-15-92-00-12-91-1f-76,2.26,9.806,2.905 -14-15-92-00-12-91-c6-e9,2.26,10.41,2.905 -14-15-92-00-12-91-bc-0d,3.084,0.14,2.912 -14-15-92-00-12-91-c8-d8,3.084,0.744,2.912 -14-15-92-00-12-91-b4-a5,3.084,1.348,2.911 -14-15-92-00-12-91-c2-ba,3.084,1.952,2.911 -14-15-92-00-12-91-ce-cd,3.084,2.556,2.91 -14-15-92-00-12-91-1c-a1,3.084,3.161,2.91 -14-15-92-00-12-91-b0-56,3.084,3.765,2.91 -14-15-92-00-12-91-bb-2b,3.084,4.369,2.909 -14-15-92-00-12-91-ce-e1,3.084,4.973,2.909 -14-15-92-00-12-91-b2-04,3.084,5.577,2.908 -14-15-92-00-12-91-c4-ca,3.084,6.181,2.908 -14-15-92-00-12-91-c6-ac,3.084,6.785,2.907 -14-15-92-00-12-91-b7-fb,3.084,7.389,2.907 -14-15-92-00-12-91-b5-68,3.084,7.994,2.907 -14-15-92-00-12-91-cb-c6,3.084,8.598,2.906 -14-15-92-00-12-91-bf-52,3.084,9.202,2.906 -14-15-92-00-12-91-c0-59,3.084,9.806,2.905 -14-15-92-00-12-91-b5-29,3.084,10.41,2.905 -14-15-92-00-12-91-b9-1c,3.908,0.14,2.912 -14-15-92-00-12-91-bb-46,3.908,0.744,2.912 -14-15-92-00-12-91-b0-77,3.908,1.348,2.911 -14-15-92-00-12-91-b6-c0,3.908,1.952,2.911 -14-15-92-00-12-91-c2-8c,3.908,2.556,2.91 -14-15-92-00-12-91-c2-5a,3.908,3.161,2.91 -14-15-92-00-12-91-b9-c1,3.908,3.765,2.91 -14-15-92-00-12-91-b1-28,3.908,4.369,2.909 -14-15-92-00-12-91-1f-3e,3.908,4.973,2.909 -14-15-92-00-12-91-c1-21,3.908,5.577,2.908 -14-15-92-00-12-91-b5-5a,3.908,6.181,2.908 -14-15-92-00-12-91-cd-54,3.908,6.785,2.907 -14-15-92-00-12-91-b4-78,3.908,7.389,2.907 -14-15-92-00-12-91-c6-68,3.908,7.994,2.907 -14-15-92-00-12-91-b7-51,3.908,9.202,2.906 -14-15-92-00-12-91-1f-6b,3.908,9.806,2.905 -14-15-92-00-12-91-c2-68,3.908,10.41,2.905 -14-15-92-00-12-91-c4-87,4.732,0.14,2.912 -14-15-92-00-12-91-c4-27,4.732,0.744,2.912 -14-15-92-00-12-91-c5-cf,4.732,1.348,2.911 -14-15-92-00-12-91-c0-91,4.732,2.556,2.91 -14-15-92-00-12-91-c9-80,4.732,3.765,2.91 -14-15-92-00-12-91-b0-8e,4.732,4.369,2.909 -14-15-92-00-12-91-bf-0b,4.732,4.973,2.909 -14-15-92-00-12-91-cb-d4,4.732,5.577,2.908 -14-15-92-00-12-91-c3-2a,4.732,6.181,2.908 -14-15-92-00-12-91-ca-eb,4.732,6.785,2.907 -14-15-92-00-12-91-c3-4c,4.732,7.389,2.907 -14-15-92-00-12-91-cb-fd,4.732,7.994,2.907 -14-15-92-00-12-91-ba-c7,4.732,8.598,2.906 -14-15-92-00-12-91-be-83,4.732,9.202,2.906 -14-15-92-00-12-91-bb-bf,4.732,9.806,2.905 -14-15-92-00-12-91-c4-a9,4.732,10.41,2.905 -14-15-92-00-12-91-b5-1f,5.556,0.14,2.912 -14-15-92-00-12-91-c0-3a,5.556,0.744,2.912 -14-15-92-00-12-91-c9-95,5.556,1.348,2.911 -14-15-92-00-12-91-b5-0e,5.556,1.952,2.911 -14-15-92-00-12-91-af-bf,5.556,2.556,2.91 -14-15-92-00-12-91-b5-a6,5.556,3.161,2.91 -14-15-92-00-12-91-bb-26,5.556,3.765,2.91 -14-15-92-00-12-91-c9-30,5.556,4.369,2.909 -14-15-92-00-12-91-b5-ea,5.556,4.973,2.909 -14-15-92-00-12-91-bc-51,5.556,5.577,2.908 -14-15-92-00-12-91-c7-08,5.556,6.181,2.908 -14-15-92-00-12-91-bf-6f,5.556,6.785,2.907 -14-15-92-00-12-91-bd-10,5.556,7.389,2.907 -14-15-92-00-12-91-b1-76,5.556,7.994,2.907 -14-15-92-00-12-91-b6-d3,5.556,8.598,2.906 -14-15-92-00-12-91-c4-06,5.556,9.202,2.906 -14-15-92-00-12-91-b7-c3,5.556,9.806,2.905 -14-15-92-00-12-91-b2-fc,5.556,10.41,2.905 -14-15-92-00-12-91-cd-7d,6.38,0.14,2.912 -14-15-92-00-12-91-b2-99,6.38,0.744,2.912 -14-15-92-00-12-91-bc-e7,6.38,1.348,2.911 -14-15-92-00-12-91-cb-e0,6.38,1.952,2.911 -14-15-92-00-12-91-be-33,6.38,2.556,2.91 -14-15-92-00-12-91-cf-28,6.38,3.161,2.91 -14-15-92-00-12-91-c8-4f,6.38,3.765,2.91 -14-15-92-00-12-91-b9-5e,6.38,4.369,2.909 -14-15-92-00-12-91-b8-83,6.38,4.973,2.909 -14-15-92-00-12-91-b7-e9,6.38,5.577,2.908 -14-15-92-00-12-91-c6-0b,6.38,6.181,2.908 -14-15-92-00-12-91-c9-3b,6.38,6.785,2.907 -14-15-92-00-12-91-bc-ca,6.38,7.389,2.907 -14-15-92-00-12-91-c6-15,6.38,7.994,2.907 -14-15-92-00-12-91-b7-d1,6.38,8.598,2.906 -14-15-92-00-12-91-b4-90,6.38,9.202,2.906 -14-15-92-00-12-91-c4-79,6.38,9.806,2.905 -14-15-92-00-12-91-bc-67,6.38,10.41,2.905 diff --git a/metas/resources.json b/metas/resources.json deleted file mode 100644 index 2ecdae5cc4..0000000000 --- a/metas/resources.json +++ /dev/null @@ -1 +0,0 @@ -{"items":[{"site":"grenoble","uid":"b2ce","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-1.grenoble.iot-lab.info","mobility_type":"null","z":"1.98","y":"27.67","mobile":0,"x":"4.25"},{"site":"grenoble","uid":"bdc0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-2.grenoble.iot-lab.info","mobility_type":"null","z":"2.7","y":"27.37","mobile":0,"x":"4.57"},{"site":"grenoble","uid":"cdf2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-3.grenoble.iot-lab.info","mobility_type":"null","z":"2.22","y":"27.37","mobile":0,"x":"5.67"},{"site":"grenoble","uid":"c6c0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-4.grenoble.iot-lab.info","mobility_type":"null","z":"2.8","y":"27.37","mobile":0,"x":"6.36"},{"site":"grenoble","uid":"b27c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-5.grenoble.iot-lab.info","mobility_type":"null","z":"2.42","y":"27.37","mobile":0,"x":"7.4"},{"site":"grenoble","uid":"bfc6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-6.grenoble.iot-lab.info","mobility_type":"null","z":"2.85","y":"27.37","mobile":0,"x":"8.15"},{"site":"grenoble","uid":"b39e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-7.grenoble.iot-lab.info","mobility_type":"null","z":"2.28","y":"27.37","mobile":0,"x":"9.13"},{"site":"grenoble","uid":"b07f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-8.grenoble.iot-lab.info","mobility_type":"null","z":"2.37","y":"27.37","mobile":0,"x":"10.4"},{"site":"grenoble","uid":"c7e6","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-9.grenoble.iot-lab.info","mobility_type":"null","z":"2.8","y":"27.37","mobile":0,"x":"11.36"},{"site":"grenoble","uid":"beed","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-10.grenoble.iot-lab.info","mobility_type":"null","z":"2.3","y":"27.37","mobile":0,"x":"12.53"},{"site":"grenoble","uid":"bb40","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-11.grenoble.iot-lab.info","mobility_type":"null","z":"2.65","y":"27.37","mobile":0,"x":"13.75"},{"site":"grenoble","uid":"c1fe","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-12.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"3.03"},{"site":"grenoble","uid":"b807","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-13.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"3.83"},{"site":"grenoble","uid":"b2ca","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-14.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"4.8"},{"site":"grenoble","uid":"b020","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-15.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"5.74"},{"site":"grenoble","uid":"b6d8","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-16.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"6.76"},{"site":"grenoble","uid":"c631","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-17.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"7.86"},{"site":"grenoble","uid":"cc8b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-18.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"8.93"},{"site":"grenoble","uid":"b03d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-19.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"10.13"},{"site":"grenoble","uid":"c24c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-20.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"11.28"},{"site":"grenoble","uid":"cc0d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-21.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"12.18"},{"site":"grenoble","uid":"b047","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-22.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"13.18"},{"site":"grenoble","uid":"bc97","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-23.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"14.18"},{"site":"grenoble","uid":"c13d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-24.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"14.93"},{"site":"grenoble","uid":"bed2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-25.grenoble.iot-lab.info","mobility_type":"null","z":"2.54","y":"28.07","mobile":0,"x":"15.73"},{"site":"grenoble","uid":"b1cb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-26.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"1.98"},{"site":"grenoble","uid":"b94f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-27.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"3.13"},{"site":"grenoble","uid":"c33e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-28.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"4.08"},{"site":"grenoble","uid":"1cbe","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-29.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"5.18"},{"site":"grenoble","uid":"ccc8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-30.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"6.38"},{"site":"grenoble","uid":"b1a5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-31.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"7.45"},{"site":"grenoble","uid":"b63b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-32.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"8.3"},{"site":"grenoble","uid":"c78e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-33.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"8.8"},{"site":"grenoble","uid":"b902","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-34.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"10.17"},{"site":"grenoble","uid":"c443","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-35.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"11.08"},{"site":"grenoble","uid":"b615","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-36.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"12.12"},{"site":"grenoble","uid":"cf33","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-37.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"12.89"},{"site":"grenoble","uid":"b8bd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-38.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"14.11"},{"site":"grenoble","uid":"b32d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-39.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"29.35","mobile":0,"x":"15.13"},{"site":"grenoble","uid":"c21d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-40.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.1","mobile":0,"x":"3.95"},{"site":"grenoble","uid":"c216","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-41.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.05","mobile":0,"x":"5.51"},{"site":"grenoble","uid":"ca2d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-42.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.22","mobile":0,"x":"7.53"},{"site":"grenoble","uid":"c7ee","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-43.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.02","mobile":0,"x":"9.53"},{"site":"grenoble","uid":"bb04","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-44.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.27","mobile":0,"x":"11.73"},{"site":"grenoble","uid":"c878","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-45.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"29.01","mobile":0,"x":"13.78"},{"site":"grenoble","uid":"b85a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-46.grenoble.iot-lab.info","mobility_type":"null","z":"2.53","y":"28.93","mobile":0,"x":"15.58"},{"site":"grenoble","uid":"b2f9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-47.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.13","mobile":0,"x":"2.98"},{"site":"grenoble","uid":"bd6f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-48.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.21","mobile":0,"x":"4.33"},{"site":"grenoble","uid":"c2f6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-49.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.21","mobile":0,"x":"5.3"},{"site":"grenoble","uid":"c18d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-50.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"6.28"},{"site":"grenoble","uid":"c474","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-51.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"7.51"},{"site":"grenoble","uid":"c4bb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-52.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"8.58"},{"site":"grenoble","uid":"b384","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-53.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"9.58"},{"site":"grenoble","uid":"b0a8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-54.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"10.45"},{"site":"grenoble","uid":"bfc4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-55.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"11.32"},{"site":"grenoble","uid":"c597","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-56.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"12.26"},{"site":"grenoble","uid":"c90d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-57.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"13.28"},{"site":"grenoble","uid":"ca91","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-58.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"14.28"},{"site":"grenoble","uid":"b35b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-59.grenoble.iot-lab.info","mobility_type":"null","z":"2.52","y":"30.17","mobile":0,"x":"15.53"},{"site":"grenoble","uid":"bba0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-60.grenoble.iot-lab.info","mobility_type":"null","z":"2.5","y":"29.72","mobile":0,"x":"16.53"},{"site":"grenoble","uid":"b328","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-61.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.37","mobile":0,"x":"3.98"},{"site":"grenoble","uid":"b7a5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-62.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.47","mobile":0,"x":"5.08"},{"site":"grenoble","uid":"c7b0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-63.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.47","mobile":0,"x":"6.18"},{"site":"grenoble","uid":"c873","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-64.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.47","mobile":0,"x":"7.2"},{"site":"grenoble","uid":"c04d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-65.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.47","mobile":0,"x":"8.68"},{"site":"grenoble","uid":"c5b5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-66.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.47","mobile":0,"x":"9.58"},{"site":"grenoble","uid":"c115","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-67.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.42","mobile":0,"x":"10.53"},{"site":"grenoble","uid":"be03","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-68.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.27","mobile":0,"x":"11.35"},{"site":"grenoble","uid":"bfa6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-69.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.42","mobile":0,"x":"12.35"},{"site":"grenoble","uid":"be64","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-70.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.42","mobile":0,"x":"13.28"},{"site":"grenoble","uid":"c596","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-71.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.42","mobile":0,"x":"14.31"},{"site":"grenoble","uid":"c01c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-72.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"30.42","mobile":0,"x":"15.21"},{"site":"grenoble","uid":"c8dd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-73.grenoble.iot-lab.info","mobility_type":"null","z":"3.53","y":"30.92","mobile":0,"x":"7.83"},{"site":"grenoble","uid":"b18b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-74.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"4.0"},{"site":"grenoble","uid":"bfc5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-75.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"4.97"},{"site":"grenoble","uid":"b0e9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-76.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"6.0"},{"site":"grenoble","uid":"1fa0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-77.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"7.01"},{"site":"grenoble","uid":"b2ba","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-78.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"8.16"},{"site":"grenoble","uid":"b1ae","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-79.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.97","mobile":0,"x":"9.08"},{"site":"grenoble","uid":"b89a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-80.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.99","mobile":0,"x":"10.1"},{"site":"grenoble","uid":"b41e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-81.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"31.92","mobile":0,"x":"11.05"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-82.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"32.03","mobile":0,"x":"12.07"},{"site":"grenoble","uid":"b666","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-83.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"32.03","mobile":0,"x":"13.07"},{"site":"grenoble","uid":"bde3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-84.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"32.05","mobile":0,"x":"14.26"},{"site":"grenoble","uid":"b029","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-85.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"32.05","mobile":0,"x":"15.41"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-86.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.02","mobile":0,"x":"3.17"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-87.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.02","mobile":0,"x":"4.27"},{"site":"grenoble","uid":"b65d","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-88.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.03","mobile":0,"x":"5.44"},{"site":"grenoble","uid":"c8e0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-89.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.03","mobile":0,"x":"6.4"},{"site":"grenoble","uid":"c1d7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-90.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.03","mobile":0,"x":"7.45"},{"site":"grenoble","uid":"c494","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-91.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.03","mobile":0,"x":"8.42"},{"site":"grenoble","uid":"b193","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-92.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.04","mobile":0,"x":"9.37"},{"site":"grenoble","uid":"c828","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-93.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.04","mobile":0,"x":"10.3"},{"site":"grenoble","uid":"cd06","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-94.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.02","mobile":0,"x":"11.3"},{"site":"grenoble","uid":"afed","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-95.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"32.02","mobile":0,"x":"12.4"},{"site":"grenoble","uid":"baea","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-96.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"31.97","mobile":0,"x":"13.36"},{"site":"grenoble","uid":"c19c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-97.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"31.97","mobile":0,"x":"14.43"},{"site":"grenoble","uid":"be7f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-98.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"31.95","mobile":0,"x":"15.41"},{"site":"grenoble","uid":"becb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-99.grenoble.iot-lab.info","mobility_type":"null","z":"2.65","y":"27.37","mobile":0,"x":"2.3"},{"site":"grenoble","uid":"ba2d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-100.grenoble.iot-lab.info","mobility_type":"null","z":"2.62","y":"33.57","mobile":0,"x":"17.06"},{"site":"grenoble","uid":"baa9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-101.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"30.85","mobile":0,"x":"3.8"},{"site":"grenoble","uid":"bad5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-102.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"30.97","mobile":0,"x":"15.58"},{"site":"grenoble","uid":"beb6","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-103.grenoble.iot-lab.info","mobility_type":"null","z":"0.37","y":"32.0","mobile":0,"x":"4.08"},{"site":"grenoble","uid":"b4de","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-104.grenoble.iot-lab.info","mobility_type":"null","z":"0.37","y":"32.0","mobile":0,"x":"4.82"},{"site":"grenoble","uid":"c79d","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-105.grenoble.iot-lab.info","mobility_type":"null","z":"0.37","y":"32.0","mobile":0,"x":"5.72"},{"site":"grenoble","uid":"c16a","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-106.grenoble.iot-lab.info","mobility_type":"null","z":"0.37","y":"32.0","mobile":0,"x":"6.46"},{"site":"grenoble","uid":"b323","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-107.grenoble.iot-lab.info","mobility_type":"null","z":"1.07","y":"31.72","mobile":0,"x":"3.98"},{"site":"grenoble","uid":"b396","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-108.grenoble.iot-lab.info","mobility_type":"null","z":"1.07","y":"31.72","mobile":0,"x":"4.79"},{"site":"grenoble","uid":"b4c1","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-109.grenoble.iot-lab.info","mobility_type":"null","z":"1.07","y":"31.72","mobile":0,"x":"5.66"},{"site":"grenoble","uid":"bea9","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-110.grenoble.iot-lab.info","mobility_type":"null","z":"1.07","y":"31.72","mobile":0,"x":"6.48"},{"site":"grenoble","uid":"ba73","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-111.grenoble.iot-lab.info","mobility_type":"null","z":"2.0","y":"32.14","mobile":0,"x":"4.12"},{"site":"grenoble","uid":"b092","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-112.grenoble.iot-lab.info","mobility_type":"null","z":"2.0","y":"32.14","mobile":0,"x":"4.9"},{"site":"grenoble","uid":"b2bc","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-113.grenoble.iot-lab.info","mobility_type":"null","z":"2.0","y":"32.14","mobile":0,"x":"5.78"},{"site":"grenoble","uid":"ba62","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-114.grenoble.iot-lab.info","mobility_type":"null","z":"2.0","y":"32.19","mobile":0,"x":"6.5"},{"site":"grenoble","uid":"b34b","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-115.grenoble.iot-lab.info","mobility_type":"null","z":"0.2","y":"32.85","mobile":0,"x":"3.88"},{"site":"grenoble","uid":"b974","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-116.grenoble.iot-lab.info","mobility_type":"null","z":"0.2","y":"32.89","mobile":0,"x":"4.98"},{"site":"grenoble","uid":"b230","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-117.grenoble.iot-lab.info","mobility_type":"null","z":"0.2","y":"32.89","mobile":0,"x":"5.78"},{"site":"grenoble","uid":"c319","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-118.grenoble.iot-lab.info","mobility_type":"null","z":"0.43","y":"32.77","mobile":0,"x":"6.53"},{"site":"grenoble","uid":"cbe5","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-119.grenoble.iot-lab.info","mobility_type":"null","z":"1.04","y":"32.66","mobile":0,"x":"4.1"},{"site":"grenoble","uid":"c639","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-120.grenoble.iot-lab.info","mobility_type":"null","z":"1.04","y":"32.66","mobile":0,"x":"4.86"},{"site":"grenoble","uid":"bfca","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-121.grenoble.iot-lab.info","mobility_type":"null","z":"1.04","y":"32.69","mobile":0,"x":"6.47"},{"site":"grenoble","uid":"c5fb","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-122.grenoble.iot-lab.info","mobility_type":"null","z":"1.82","y":"33.08","mobile":0,"x":"4.07"},{"site":"grenoble","uid":"c552","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-123.grenoble.iot-lab.info","mobility_type":"null","z":"1.8","y":"33.08","mobile":0,"x":"5.06"},{"site":"grenoble","uid":"b413","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-124.grenoble.iot-lab.info","mobility_type":"null","z":"1.83","y":"33.08","mobile":0,"x":"5.95"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-125.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"37.64","mobile":0,"x":"2.12"},{"site":"grenoble","uid":"c3b4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-126.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"35.6","mobile":0,"x":"2.34"},{"site":"grenoble","uid":"c38d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-127.grenoble.iot-lab.info","mobility_type":"null","z":"3.0","y":"27.77","mobile":0,"x":"8.81"},{"site":"grenoble","uid":"b5d0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-128.grenoble.iot-lab.info","mobility_type":"null","z":"3.02","y":"27.72","mobile":0,"x":"10.91"},{"site":"grenoble","uid":"c9cd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-129.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"33.64","mobile":0,"x":"1.98"},{"site":"grenoble","uid":"b491","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-130.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"33.57","mobile":0,"x":"2.71"},{"site":"grenoble","uid":"beab","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-131.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"33.57","mobile":0,"x":"3.73"},{"site":"grenoble","uid":"b053","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-132.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"33.57","mobile":0,"x":"4.81"},{"site":"grenoble","uid":"c349","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-133.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"33.57","mobile":0,"x":"5.72"},{"site":"grenoble","uid":"be0f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-134.grenoble.iot-lab.info","mobility_type":"null","z":"2.59","y":"33.57","mobile":0,"x":"6.7"},{"site":"grenoble","uid":"b8a3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-135.grenoble.iot-lab.info","mobility_type":"null","z":"2.59","y":"33.57","mobile":0,"x":"7.68"},{"site":"grenoble","uid":"c4d1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-136.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"33.57","mobile":0,"x":"8.7"},{"site":"grenoble","uid":"c686","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-137.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"33.57","mobile":0,"x":"9.7"},{"site":"grenoble","uid":"bfba","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-138.grenoble.iot-lab.info","mobility_type":"null","z":"2.61","y":"33.57","mobile":0,"x":"10.69"},{"site":"grenoble","uid":"baa2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-139.grenoble.iot-lab.info","mobility_type":"null","z":"2.61","y":"33.57","mobile":0,"x":"11.71"},{"site":"grenoble","uid":"c529","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-140.grenoble.iot-lab.info","mobility_type":"null","z":"2.62","y":"33.57","mobile":0,"x":"12.71"},{"site":"grenoble","uid":"b7c6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-141.grenoble.iot-lab.info","mobility_type":"null","z":"2.62","y":"33.57","mobile":0,"x":"13.74"},{"site":"grenoble","uid":"ccdc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-142.grenoble.iot-lab.info","mobility_type":"null","z":"2.62","y":"33.57","mobile":0,"x":"14.75"},{"site":"grenoble","uid":"b74f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-143.grenoble.iot-lab.info","mobility_type":"null","z":"2.62","y":"33.57","mobile":0,"x":"15.73"},{"site":"grenoble","uid":"bb93","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-144.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"34.01","mobile":0,"x":"7.95"},{"site":"grenoble","uid":"204e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-145.grenoble.iot-lab.info","mobility_type":"null","z":"3.58","y":"33.99","mobile":0,"x":"11.23"},{"site":"grenoble","uid":"b797","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-146.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"2.56"},{"site":"grenoble","uid":"b71f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-147.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"3.36"},{"site":"grenoble","uid":"c98d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-148.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"4.4"},{"site":"grenoble","uid":"bfea","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-149.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"5.35"},{"site":"grenoble","uid":"bfcd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-150.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"6.4"},{"site":"grenoble","uid":"afb3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-151.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"7.45"},{"site":"grenoble","uid":"c067","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-152.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"8.43"},{"site":"grenoble","uid":"bd0c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-153.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"9.75"},{"site":"grenoble","uid":"cc6e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-154.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"10.76"},{"site":"grenoble","uid":"1f58","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-155.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"11.66"},{"site":"grenoble","uid":"c4de","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-156.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"12.66"},{"site":"grenoble","uid":"c84d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-157.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"13.76"},{"site":"grenoble","uid":"bee7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-158.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"14.76"},{"site":"grenoble","uid":"b5aa","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-159.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"35.07","mobile":0,"x":"15.78"},{"site":"grenoble","uid":"cea4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-160.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"35.09","mobile":0,"x":"1.91"},{"site":"grenoble","uid":"c1d2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-161.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"2.75"},{"site":"grenoble","uid":"b961","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-162.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"3.65"},{"site":"grenoble","uid":"b013","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-163.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"4.57"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-164.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"5.54"},{"site":"grenoble","uid":"c4cf","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-165.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"6.55"},{"site":"grenoble","uid":"bfa1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-166.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"7.53"},{"site":"grenoble","uid":"bb56","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-167.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"8.54"},{"site":"grenoble","uid":"ba8c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-168.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"9.56"},{"site":"grenoble","uid":"b8e1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-169.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"10.66"},{"site":"grenoble","uid":"b978","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-170.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"11.76"},{"site":"grenoble","uid":"cac7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-171.grenoble.iot-lab.info","mobility_type":"null","z":"2.58","y":"35.07","mobile":0,"x":"12.8"},{"site":"grenoble","uid":"b6c1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-172.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"2.52"},{"site":"grenoble","uid":"b9c2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-173.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"3.37"},{"site":"grenoble","uid":"af8d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-174.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"4.44"},{"site":"grenoble","uid":"b105","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-175.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"5.39"},{"site":"grenoble","uid":"baa8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-176.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"6.55"},{"site":"grenoble","uid":"b650","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-177.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"7.46"},{"site":"grenoble","uid":"b097","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-178.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"8.53"},{"site":"grenoble","uid":"c1fd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-179.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"9.56"},{"site":"grenoble","uid":"c0ce","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-180.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"10.51"},{"site":"grenoble","uid":"bf9c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-181.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"11.66"},{"site":"grenoble","uid":"c938","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-182.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"12.55"},{"site":"grenoble","uid":"b2d8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-183.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"13.55"},{"site":"grenoble","uid":"b01d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-184.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"14.61"},{"site":"grenoble","uid":"c432","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-185.grenoble.iot-lab.info","mobility_type":"null","z":"3.67","y":"36.37","mobile":0,"x":"15.65"},{"site":"grenoble","uid":"2030","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-186.grenoble.iot-lab.info","mobility_type":"null","z":"2.56","y":"36.37","mobile":0,"x":"1.93"},{"site":"grenoble","uid":"b31e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-187.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"2.91"},{"site":"grenoble","uid":"cb9b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-188.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"3.91"},{"site":"grenoble","uid":"ba2e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-189.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"4.91"},{"site":"grenoble","uid":"b1b2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-190.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"5.91"},{"site":"grenoble","uid":"b916","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-191.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"c15f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-192.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.34","mobile":0,"x":"7.92"},{"site":"grenoble","uid":"1f69","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-193.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"8.92"},{"site":"grenoble","uid":"b8df","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-194.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.34","mobile":0,"x":"10.02"},{"site":"grenoble","uid":"cde9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-195.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"11.07"},{"site":"grenoble","uid":"b355","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-196.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"12.06"},{"site":"grenoble","uid":"ced8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-197.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"36.37","mobile":0,"x":"13.18"},{"site":"grenoble","uid":"cb46","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-198.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.6","mobile":0,"x":"7.16"},{"site":"grenoble","uid":"c863","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-199.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.55","mobile":0,"x":"12.23"},{"site":"grenoble","uid":"bf1e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-200.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.55","mobile":0,"x":"13.25"},{"site":"grenoble","uid":"c311","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-201.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.55","mobile":0,"x":"14.26"},{"site":"grenoble","uid":"b4f0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-202.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.55","mobile":0,"x":"15.26"},{"site":"grenoble","uid":"cebe","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-203.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"37.55","mobile":0,"x":"16.26"},{"site":"grenoble","uid":"b6b3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-204.grenoble.iot-lab.info","mobility_type":"null","z":"2.8","y":"37.82","mobile":0,"x":"3.23"},{"site":"grenoble","uid":"b5d5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-205.grenoble.iot-lab.info","mobility_type":"null","z":"2.95","y":"37.82","mobile":0,"x":"4.23"},{"site":"grenoble","uid":"c8fd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-206.grenoble.iot-lab.info","mobility_type":"null","z":"3.1","y":"37.82","mobile":0,"x":"5.03"},{"site":"grenoble","uid":"b8f3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-207.grenoble.iot-lab.info","mobility_type":"null","z":"2.3","y":"37.82","mobile":0,"x":"4.78"},{"site":"grenoble","uid":"ca86","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-208.grenoble.iot-lab.info","mobility_type":"null","z":"2.55","y":"37.82","mobile":0,"x":"6.13"},{"site":"grenoble","uid":"b9a2","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-209.grenoble.iot-lab.info","mobility_type":"null","z":"3.2","y":"38.07","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"cf50","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-210.grenoble.iot-lab.info","mobility_type":"null","z":"2.18","y":"38.07","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"bfb3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-211.grenoble.iot-lab.info","mobility_type":"null","z":"2.13","y":"38.87","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"b72f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-212.grenoble.iot-lab.info","mobility_type":"null","z":"2.43","y":"37.77","mobile":0,"x":"12.23"},{"site":"grenoble","uid":"c08f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-213.grenoble.iot-lab.info","mobility_type":"null","z":"2.37","y":"37.77","mobile":0,"x":"12.98"},{"site":"grenoble","uid":"b7e4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-214.grenoble.iot-lab.info","mobility_type":"null","z":"2.48","y":"37.77","mobile":0,"x":"13.93"},{"site":"grenoble","uid":"c00a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-215.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"37.77","mobile":0,"x":"14.96"},{"site":"grenoble","uid":"cdfc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-216.grenoble.iot-lab.info","mobility_type":"null","z":"2.7","y":"37.77","mobile":0,"x":"16.06"},{"site":"grenoble","uid":"b451","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-217.grenoble.iot-lab.info","mobility_type":"null","z":"2.2","y":"37.77","mobile":0,"x":"17.08"},{"site":"grenoble","uid":"b48c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-218.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"38.59","mobile":0,"x":"7.84"},{"site":"grenoble","uid":"c3ee","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-219.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"39.55","mobile":0,"x":"7.84"},{"site":"grenoble","uid":"b8c3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-220.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"40.55","mobile":0,"x":"7.86"},{"site":"grenoble","uid":"b7b6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-221.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"41.45","mobile":0,"x":"7.86"},{"site":"grenoble","uid":"b15e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-222.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"38.54","mobile":0,"x":"9.96"},{"site":"grenoble","uid":"b434","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-223.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"39.49","mobile":0,"x":"9.98"},{"site":"grenoble","uid":"ccb0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-224.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"40.51","mobile":0,"x":"9.98"},{"site":"grenoble","uid":"cc9f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-225.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"41.41","mobile":0,"x":"9.98"},{"site":"grenoble","uid":"c836","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-226.grenoble.iot-lab.info","mobility_type":"null","z":"3.6","y":"42.41","mobile":0,"x":"9.96"},{"site":"grenoble","uid":"ca8a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-227.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"38.57","mobile":0,"x":"11.34"},{"site":"grenoble","uid":"cd71","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-228.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"39.57","mobile":0,"x":"11.36"},{"site":"grenoble","uid":"b2c4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-229.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"40.57","mobile":0,"x":"11.36"},{"site":"grenoble","uid":"b33f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-230.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"41.47","mobile":0,"x":"11.36"},{"site":"grenoble","uid":"c31a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-231.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"37.32","mobile":0,"x":"8.53"},{"site":"grenoble","uid":"b565","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-232.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"38.43","mobile":0,"x":"8.53"},{"site":"grenoble","uid":"b700","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-233.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"39.45","mobile":0,"x":"8.53"},{"site":"grenoble","uid":"c63c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-234.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"37.34","mobile":0,"x":"10.24"},{"site":"grenoble","uid":"c5cc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-235.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"38.24","mobile":0,"x":"10.24"},{"site":"grenoble","uid":"cee7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-236.grenoble.iot-lab.info","mobility_type":"null","z":"2.57","y":"39.47","mobile":0,"x":"10.24"},{"site":"grenoble","uid":"c543","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-237.grenoble.iot-lab.info","mobility_type":"null","z":"3.5","y":"39.77","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"ce47","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-238.grenoble.iot-lab.info","mobility_type":"null","z":"2.66","y":"40.28","mobile":0,"x":"8.83"},{"site":"grenoble","uid":"c108","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-239.grenoble.iot-lab.info","mobility_type":"null","z":"3.25","y":"41.77","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"bc0f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-240.grenoble.iot-lab.info","mobility_type":"null","z":"3.34","y":"42.8","mobile":0,"x":"9.51"},{"site":"grenoble","uid":"ca22","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-241.grenoble.iot-lab.info","mobility_type":"null","z":"3.7","y":"40.05","mobile":0,"x":"8.56"},{"site":"grenoble","uid":"c6c4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-242.grenoble.iot-lab.info","mobility_type":"null","z":"3.53","y":"40.87","mobile":0,"x":"6.91"},{"site":"grenoble","uid":"b14d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-243.grenoble.iot-lab.info","mobility_type":"null","z":"3.34","y":"41.87","mobile":0,"x":"9.51"},{"site":"grenoble","uid":"b8c8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-244.grenoble.iot-lab.info","mobility_type":"null","z":"3.7","y":"40.09","mobile":0,"x":"10.36"},{"site":"grenoble","uid":"ce6c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-245.grenoble.iot-lab.info","mobility_type":"null","z":"3.37","y":"38.42","mobile":0,"x":"10.51"},{"site":"grenoble","uid":"bdf0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-246.grenoble.iot-lab.info","mobility_type":"null","z":"3.63","y":"42.95","mobile":0,"x":"11.41"},{"site":"grenoble","uid":"c819","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-247.grenoble.iot-lab.info","mobility_type":"null","z":"3.65","y":"41.31","mobile":0,"x":"12.23"},{"site":"grenoble","uid":"b4e4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-248.grenoble.iot-lab.info","mobility_type":"null","z":"2.6","y":"40.28","mobile":0,"x":"10.24"},{"site":"grenoble","uid":"c94e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-249.grenoble.iot-lab.info","mobility_type":"null","z":"3.27","y":"41.91","mobile":0,"x":"12.23"},{"site":"grenoble","uid":"c8fb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-250.grenoble.iot-lab.info","mobility_type":"null","z":"3.53","y":"40.57","mobile":0,"x":"12.23"},{"site":"grenoble","uid":"be2e","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-251.grenoble.iot-lab.info","mobility_type":"null","z":"3.62","y":"42.95","mobile":0,"x":"7.31"},{"site":"grenoble","uid":"c4ed","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-252.grenoble.iot-lab.info","mobility_type":"null","z":"3.63","y":"42.95","mobile":0,"x":"8.12"},{"site":"grenoble","uid":"b669","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-253.grenoble.iot-lab.info","mobility_type":"null","z":"3.63","y":"42.95","mobile":0,"x":"8.88"},{"site":"grenoble","uid":"cd4c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-254.grenoble.iot-lab.info","mobility_type":"null","z":"3.35","y":"41.9","mobile":0,"x":"7.69"},{"site":"grenoble","uid":"unknown","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-255.grenoble.iot-lab.info","mobility_type":"null","z":"3.66","y":"42.95","mobile":0,"x":"10.13"},{"site":"grenoble","uid":"b806","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-256.grenoble.iot-lab.info","mobility_type":"null","z":"1.04","y":"32.68","mobile":0,"x":"5.7"},{"site":"rennes","uid":"caf5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-1.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"ca73","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-2.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c88c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-3.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-4.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b1c3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-5.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-6.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b704","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-7.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c351","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-8.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"bc98","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-9.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b344","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-10.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c59b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-11.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-12.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c09a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-13.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"bd6e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-14.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c0e9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-15.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"ca0a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-16.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b583","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-17.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b8d6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-18.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c579","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-19.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"beeb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-20.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c5e7","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-21.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"c2bb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-22.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"1c15","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-23.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"cb97","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-24.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-4.62"},{"site":"rennes","uid":"b4bc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-25.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b502","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-26.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c89a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-27.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c32c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-28.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b792","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-29.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c3a8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-30.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c7a8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-31.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"ba43","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-32.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-33.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c7cf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-34.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b920","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-35.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"bd97","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-36.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"bafb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-37.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b81d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-38.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b525","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-39.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c032","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-40.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c475","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-41.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b192","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-42.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"bcd2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-43.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"c632","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-44.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-45.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"b1a3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-46.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-47.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-48.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-3.796"},{"site":"rennes","uid":"1f52","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-49.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"cf06","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-50.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b1b6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-51.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c713","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-52.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"be69","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-53.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c41c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-54.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b1ce","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-55.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"bf0e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-56.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b7a4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-57.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b712","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-58.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"cf01","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-59.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b4a4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-60.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c118","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-61.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"ca5a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-62.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-63.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b3fc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-64.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c3bd","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-65.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c73e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-66.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"bc5a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-67.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c872","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-68.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"be7c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-69.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c05f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-70.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"b234","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-71.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-72.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-2.972"},{"site":"rennes","uid":"c345","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-73.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c33c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-74.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"1c06","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-75.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-76.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c760","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-77.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b775","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-78.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-79.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c5b4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-80.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c9ce","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-81.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b964","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-82.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c688","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-83.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-84.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b228","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-85.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c171","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-86.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b5b2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-87.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b9e9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-88.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c715","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-89.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c9c5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-90.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b627","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-91.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"b78c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-92.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"afee","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-93.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c0a5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-94.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"c751","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-95.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"cb5a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-96.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-2.148"},{"site":"rennes","uid":"cdaa","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-97.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-98.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-99.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-100.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"1f54","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-101.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"2033","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-102.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-103.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"bca8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-104.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-105.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"c6ab","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-106.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-107.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-108.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-109.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"c6cb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-110.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"c4e2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-111.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-112.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"b91d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-113.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"cc99","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-114.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-115.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"cae2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-116.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-117.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"bca5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-118.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"be2a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-119.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"c3da","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-120.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-1.324"},{"site":"rennes","uid":"b2d4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-121.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"c929","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-122.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"c24a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-123.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-124.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b225","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-125.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"2.556","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"c0b1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-126.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b203","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-127.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"c159","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-128.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.369","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b16d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-129.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"4.973","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-130.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"5.577","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-131.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.181","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-132.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"6.785","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"cb1c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-133.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.389","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b370","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-134.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"7.994","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b973","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-135.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"8.598","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"ca15","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-136.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.202","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-137.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"9.806","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b1f9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-138.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"10.41","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b84e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-139.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"11.014","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"ce4a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-140.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"11.618","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"2036","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-141.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.222","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"be91","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-142.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"12.826","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b8f2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-143.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"13.431","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"b301","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-144.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"14.035","mobile":0,"x":"-0.5"},{"site":"rennes","uid":"cac1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-145.rennes.iot-lab.info","mobility_type":"null","z":"2.66","y":"0.51","mobile":0,"x":"0.66"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-146.rennes.iot-lab.info","mobility_type":"null","z":"2.8","y":"1.46","mobile":0,"x":"0.66"},{"site":"rennes","uid":"cb96","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-147.rennes.iot-lab.info","mobility_type":"null","z":"2.69","y":"2.51","mobile":0,"x":"0.66"},{"site":"rennes","uid":"bdae","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-148.rennes.iot-lab.info","mobility_type":"null","z":"2.7","y":"3.11","mobile":0,"x":"0.66"},{"site":"rennes","uid":"bb1f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-149.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"2.26"},{"site":"rennes","uid":"c989","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-150.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b5db","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-151.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b237","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-152.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"2.26"},{"site":"rennes","uid":"bab9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-153.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b83d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-154.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b197","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-155.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"2.26"},{"site":"rennes","uid":"c031","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-156.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b960","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-157.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"2.26"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-158.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"2.26"},{"site":"rennes","uid":"c156","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-159.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"2.26"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-160.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b0f8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-161.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"2.26"},{"site":"rennes","uid":"cc73","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-162.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"2.26"},{"site":"rennes","uid":"bf21","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-163.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"2.26"},{"site":"rennes","uid":"b67b","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-164.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"2.26"},{"site":"rennes","uid":"1f76","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-165.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"2.26"},{"site":"rennes","uid":"c6e9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-166.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"2.26"},{"site":"rennes","uid":"bc0d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-167.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"3.084"},{"site":"rennes","uid":"c8d8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-168.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b4a5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-169.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"3.084"},{"site":"rennes","uid":"c2ba","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-170.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"3.084"},{"site":"rennes","uid":"cecd","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-171.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"3.084"},{"site":"rennes","uid":"1ca1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-172.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b056","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-173.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"3.084"},{"site":"rennes","uid":"bb2b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-174.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"3.084"},{"site":"rennes","uid":"cee1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-175.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b204","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-176.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"3.084"},{"site":"rennes","uid":"c4ca","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-177.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"3.084"},{"site":"rennes","uid":"c6ac","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-178.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b7fb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-179.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b568","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-180.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"3.084"},{"site":"rennes","uid":"cbc6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-181.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"3.084"},{"site":"rennes","uid":"bf52","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-182.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"3.084"},{"site":"rennes","uid":"c059","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-183.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b529","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-184.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"3.084"},{"site":"rennes","uid":"b91c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-185.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"3.908"},{"site":"rennes","uid":"bb46","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-186.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b077","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-187.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b6c0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-188.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c28c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-189.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c25a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-190.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b9c1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-191.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b128","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-192.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"3.908"},{"site":"rennes","uid":"1f3e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-193.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c121","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-194.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b55a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-195.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"3.908"},{"site":"rennes","uid":"cd54","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-196.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b478","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-197.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c668","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-198.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"3.908"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-199.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"3.908"},{"site":"rennes","uid":"b751","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-200.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"3.908"},{"site":"rennes","uid":"1f6b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-201.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c268","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-202.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"3.908"},{"site":"rennes","uid":"c487","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-203.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c427","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-204.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c5cf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-205.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"4.732"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-206.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c091","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-207.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"4.732"},{"site":"rennes","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-208.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c980","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-209.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"4.732"},{"site":"rennes","uid":"b08e","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-210.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"4.732"},{"site":"rennes","uid":"bf0b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-211.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"4.732"},{"site":"rennes","uid":"cbd4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-212.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c32a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-213.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"4.732"},{"site":"rennes","uid":"caeb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-214.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c34c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-215.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"4.732"},{"site":"rennes","uid":"cbfd","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-216.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"4.732"},{"site":"rennes","uid":"bac7","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-217.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"4.732"},{"site":"rennes","uid":"be83","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-218.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"4.732"},{"site":"rennes","uid":"bbbf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-219.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"4.732"},{"site":"rennes","uid":"c4a9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-220.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"4.732"},{"site":"rennes","uid":"b51f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-221.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"5.556"},{"site":"rennes","uid":"c03a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-222.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"5.556"},{"site":"rennes","uid":"c995","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-223.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b50e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-224.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"5.556"},{"site":"rennes","uid":"afbf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-225.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b5a6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-226.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"5.556"},{"site":"rennes","uid":"bb26","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-227.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"5.556"},{"site":"rennes","uid":"c930","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-228.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b5ea","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-229.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"5.556"},{"site":"rennes","uid":"bc51","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-230.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"5.556"},{"site":"rennes","uid":"c708","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-231.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"5.556"},{"site":"rennes","uid":"bf6f","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-232.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"5.556"},{"site":"rennes","uid":"bd10","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-233.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b176","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-234.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b6d3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-235.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"5.556"},{"site":"rennes","uid":"c406","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-236.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b7c3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-237.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"5.556"},{"site":"rennes","uid":"b2fc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-238.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"5.556"},{"site":"rennes","uid":"cd7d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-239.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.14","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b299","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-240.rennes.iot-lab.info","mobility_type":"null","z":"2.912","y":"0.744","mobile":0,"x":"6.38"},{"site":"rennes","uid":"bce7","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-241.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.348","mobile":0,"x":"6.38"},{"site":"rennes","uid":"cbe0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-242.rennes.iot-lab.info","mobility_type":"null","z":"2.911","y":"1.952","mobile":0,"x":"6.38"},{"site":"rennes","uid":"be33","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-243.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"2.556","mobile":0,"x":"6.38"},{"site":"rennes","uid":"cf28","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-244.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.161","mobile":0,"x":"6.38"},{"site":"rennes","uid":"c84f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-245.rennes.iot-lab.info","mobility_type":"null","z":"2.91","y":"3.765","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b95e","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-246.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.369","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b883","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-247.rennes.iot-lab.info","mobility_type":"null","z":"2.909","y":"4.973","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b7e9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-248.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"5.577","mobile":0,"x":"6.38"},{"site":"rennes","uid":"c60b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-249.rennes.iot-lab.info","mobility_type":"null","z":"2.908","y":"6.181","mobile":0,"x":"6.38"},{"site":"rennes","uid":"c93b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-250.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"6.785","mobile":0,"x":"6.38"},{"site":"rennes","uid":"bcca","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-251.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.389","mobile":0,"x":"6.38"},{"site":"rennes","uid":"c615","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-252.rennes.iot-lab.info","mobility_type":"null","z":"2.907","y":"7.994","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b7d1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-253.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"8.598","mobile":0,"x":"6.38"},{"site":"rennes","uid":"b490","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-254.rennes.iot-lab.info","mobility_type":"null","z":"2.906","y":"9.202","mobile":0,"x":"6.38"},{"site":"rennes","uid":"c479","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-255.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"9.806","mobile":0,"x":"6.38"},{"site":"rennes","uid":"bc67","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-256.rennes.iot-lab.info","mobility_type":"null","z":"2.905","y":"10.41","mobile":0,"x":"6.38"},{"site":"euratech","uid":"c321","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-1.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c23a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-2.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cf17","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-3.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bd11","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-4.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b6bc","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-5.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"ccaa","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-6.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b154","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-7.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b27b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-8.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bc2d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-9.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bcb6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-10.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c3c4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-11.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c8a8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-12.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c15b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-13.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b034","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-14.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b471","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-15.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"bbf0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-16.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b986","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-17.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"be29","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-18.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c102","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-19.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b0b4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-20.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"afc7","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-21.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bc13","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-22.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b2bb","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-23.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c6df","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-24.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c4c8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-25.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c26d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-26.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b966","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-27.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cbf3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-28.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b538","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-29.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c946","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-30.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c469","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-31.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"cafe","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-32.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c6dc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-33.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"afad","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-34.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b54f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-35.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c92c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-36.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b468","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-37.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c2b6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-38.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c69d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-39.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c0e8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-40.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"cdec","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-41.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c721","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-42.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c7f0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-43.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c8f3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-44.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"ce61","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-45.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b2bf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-46.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bd2d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-47.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"be4d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-48.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b843","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-49.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"ba95","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-50.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"ba46","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-51.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"be4b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-52.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b95f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-53.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"1ce4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-54.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c87e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-55.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-56.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c4c2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-57.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cbe9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-58.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c5c8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-59.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c3d6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-60.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c088","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-61.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c11c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-62.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c11e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-63.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-64.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bc63","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-65.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c8ad","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-66.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c286","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-67.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"bc48","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-68.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"ced3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-69.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-70.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c689","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-71.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c0dc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-72.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b01f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-73.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bbea","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-74.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"cb78","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-75.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"cced","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-76.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"cb08","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-77.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c973","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-78.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c241","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-79.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"babc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-80.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b5f1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-81.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c8c8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-82.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c640","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-83.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"ca25","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-84.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b659","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-85.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b5cc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-86.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b2c1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-87.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cd82","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-88.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b325","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-89.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"cc1b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-90.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b42b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-91.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"2.5","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c4ea","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-92.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"2.5","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b6a3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-93.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"2.5","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b31a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-94.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"2.5","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b381","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-95.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"2.5","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c342","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-96.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c0ab","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-97.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c83b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-98.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b36b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-99.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b4db","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-100.euratech.iot-lab.info","mobility_type":"null","z":"0.0","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b871","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-101.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bde6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-102.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"bcc4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-103.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bef4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-104.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"1c9e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-105.euratech.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"af78","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-106.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"cae0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-107.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c3e5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-108.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b83b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-109.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bf14","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-110.euratech.iot-lab.info","mobility_type":"null","z":"1.2","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"cf2e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-111.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bdf3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-112.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b61a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-113.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"ceb6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-114.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c735","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-115.euratech.iot-lab.info","mobility_type":"null","z":"1.8","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"bb0a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-116.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c4d2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-117.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"bce9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-118.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"ba9d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-119.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"ce3a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-120.euratech.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"1bfa","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-121.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c834","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-122.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"1f91","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-123.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bbb4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-124.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"1f9e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-125.euratech.iot-lab.info","mobility_type":"null","z":"3.0","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c74d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-126.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c6f5","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-127.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b8db","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-128.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"1caf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-129.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c92a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-130.euratech.iot-lab.info","mobility_type":"null","z":"3.6","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"bba2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-131.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c20a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-132.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cac8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-133.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bdef","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-134.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b798","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-135.euratech.iot-lab.info","mobility_type":"null","z":"4.2","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c198","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-136.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c2d0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-137.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"bf4d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-138.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c3b1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-139.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b723","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-140.euratech.iot-lab.info","mobility_type":"null","z":"4.8","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b748","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-141.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"1bfc","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-142.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b584","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-143.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b18d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-144.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b5c9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-145.euratech.iot-lab.info","mobility_type":"null","z":"5.4","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c506","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-146.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bcd3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-147.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cddf","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-148.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bc46","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-149.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b984","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-150.euratech.iot-lab.info","mobility_type":"null","z":"6.0","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"ce38","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-151.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b2b8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-152.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"bc12","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-153.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"cb0c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-154.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c5f9","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-155.euratech.iot-lab.info","mobility_type":"null","z":"6.6","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b246","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-156.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c22f","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-157.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b0e0","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-158.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"cf07","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-159.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b8c6","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-160.euratech.iot-lab.info","mobility_type":"null","z":"7.2","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"b282","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-161.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c167","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-162.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c534","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-163.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b31c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-164.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bc60","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-165.euratech.iot-lab.info","mobility_type":"null","z":"7.8","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"cdba","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-166.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c703","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-167.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cd29","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-168.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c3a3","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-169.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"cc1d","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-170.euratech.iot-lab.info","mobility_type":"null","z":"8.4","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c6ba","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-171.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"b320","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-172.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"cc61","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-173.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b1f4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-174.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"b46b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-175.euratech.iot-lab.info","mobility_type":"null","z":"9.0","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c7aa","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-176.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c540","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-177.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"ba5e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-178.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"b3bd","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-179.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bc23","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-180.euratech.iot-lab.info","mobility_type":"null","z":"9.6","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c625","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-181.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"bed4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-182.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"1f7a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-183.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c1c8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-184.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"bf29","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-185.euratech.iot-lab.info","mobility_type":"null","z":"10.2","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c304","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-186.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"3.4","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c370","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-187.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"3.4","mobile":0,"x":"3.0"},{"site":"euratech","uid":"c91c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-188.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"3.4","mobile":0,"x":"2.4"},{"site":"euratech","uid":"c035","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-189.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"3.4","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c5fe","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-190.euratech.iot-lab.info","mobility_type":"null","z":"10.8","y":"3.4","mobile":0,"x":"1.2"},{"site":"euratech","uid":"c913","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-191.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"0.0"},{"site":"euratech","uid":"ce49","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-192.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"0.6"},{"site":"euratech","uid":"bbda","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-193.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"1.2"},{"site":"euratech","uid":"aff2","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-194.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"1.8"},{"site":"euratech","uid":"cae8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-195.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bdd1","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-196.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"3.0"},{"site":"euratech","uid":"b68e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-197.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"3.6"},{"site":"euratech","uid":"cb6a","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-198.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"4.2"},{"site":"euratech","uid":"cc68","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-199.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"3.28","mobile":0,"x":"4.8"},{"site":"euratech","uid":"c36b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-200.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"0.0"},{"site":"euratech","uid":"c416","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-201.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"0.6"},{"site":"euratech","uid":"b863","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-202.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"1.2"},{"site":"euratech","uid":"bd65","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-203.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"1.8"},{"site":"euratech","uid":"c23c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-204.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"2.4"},{"site":"euratech","uid":"bd5c","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-205.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"3.0"},{"site":"euratech","uid":"ce56","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-206.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"3.6"},{"site":"euratech","uid":"c447","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-207.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"4.2"},{"site":"euratech","uid":"c33a","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-208.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.67","mobile":0,"x":"4.8"},{"site":"euratech","uid":"ce00","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-209.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.25","mobile":0,"x":"1.1"},{"site":"euratech","uid":"c117","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-210.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.9","mobile":0,"x":"1.1"},{"site":"euratech","uid":"1f43","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-211.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"1.55","mobile":0,"x":"1.1"},{"site":"euratech","uid":"c2c8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-212.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.2","mobile":0,"x":"1.1"},{"site":"euratech","uid":"af75","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-213.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.25","mobile":0,"x":"1.55"},{"site":"euratech","uid":"b98e","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-214.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.9","mobile":0,"x":"1.55"},{"site":"euratech","uid":"bd00","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-215.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"1.55","mobile":0,"x":"1.55"},{"site":"euratech","uid":"bbe4","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-216.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.2","mobile":0,"x":"1.55"},{"site":"euratech","uid":"c013","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-217.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.25","mobile":0,"x":"3.25"},{"site":"euratech","uid":"1f71","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-218.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.9","mobile":0,"x":"3.25"},{"site":"euratech","uid":"c2b8","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-219.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"1.55","mobile":0,"x":"3.25"},{"site":"euratech","uid":"c839","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-220.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.2","mobile":0,"x":"3.25"},{"site":"euratech","uid":"b2ee","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-221.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.25","mobile":0,"x":"3.7"},{"site":"euratech","uid":"bd79","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-222.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"0.9","mobile":0,"x":"3.7"},{"site":"euratech","uid":"b73b","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-223.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"1.55","mobile":0,"x":"3.7"},{"site":"euratech","uid":"cd89","archi":"wsn430:cc2420","state":"Alive","network_address":"wsn430-224.euratech.iot-lab.info","mobility_type":"null","z":"11.32","y":"2.2","mobile":0,"x":"3.7"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-225.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-226.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-227.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-228.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-229.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-230.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-231.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-232.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-233.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-234.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-235.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-236.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-237.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-238.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-239.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Suspected","network_address":"wsn430-240.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-241.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-242.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-243.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-244.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-245.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-246.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-247.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-248.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-249.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-250.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-251.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-252.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-253.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-254.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-255.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"euratech","uid":"unknown","archi":"wsn430:cc2420","state":"Absent","network_address":"wsn430-256.euratech.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"c0d8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-1.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b2a7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-2.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c6f0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-3.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bcab","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-4.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c66a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-5.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b222","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-6.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b012","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-7.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c5ac","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-8.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"bef2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-9.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b7b2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-10.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b9f1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-11.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c223","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-12.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c3a0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-13.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"cb40","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-14.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"bd81","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-15.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"afa3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-16.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"be5a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-17.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"1bf9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-18.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bca1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-19.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c1c3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-20.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c6ce","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-21.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c5d4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-22.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"0.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"ba38","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-23.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"1f59","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-24.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"0.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b862","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-25.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b5e1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-26.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bb10","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-27.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c68a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-28.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b576","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-29.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b343","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-30.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c19f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-31.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"1cef","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-32.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c225","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-33.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"bc7a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-34.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"ba03","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-35.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c262","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-36.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"ba7f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-37.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b614","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-38.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"be35","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-39.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b9a0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-40.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c9fa","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-41.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b42e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-42.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c935","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-43.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"bdd3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-44.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b957","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-45.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c87f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-46.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"1.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"cdac","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-47.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bf84","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-48.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"1.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"cf14","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-49.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c605","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-50.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"af8a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-51.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c35d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-52.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"ca60","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-53.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c09b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-54.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c4aa","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-55.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"ca01","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-56.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"bb25","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-57.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b7af","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-58.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b057","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-59.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"cf0a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-60.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"ca27","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-61.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"cb57","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-62.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"cbaf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-63.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c7de","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-64.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bcf4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-65.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bf80","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-66.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bdb0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-67.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"be6b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-68.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"cd74","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-69.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b7e2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-70.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"2.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"cc5e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-71.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b467","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-72.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"2.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"cecf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-73.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"cd64","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-74.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c9cf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-75.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b23c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-76.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"cd18","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-77.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"bb3a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-78.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c987","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-79.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c8ea","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-80.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b5c5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-81.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"1f3c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-82.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"bb11","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-83.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c7df","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-84.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c986","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-85.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c5e2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-86.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c755","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-87.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"ca2f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-88.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b138","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-89.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c92f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-90.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c681","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-91.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"cd2e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-92.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c1d5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-93.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"cc22","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-94.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"3.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"c4e5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-95.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"c5b3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-96.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"3.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bfb9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-97.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b8fb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-98.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bc1c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-99.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bae2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-100.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"bbff","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-101.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c881","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-102.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"ca54","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-103.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c71e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-104.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"bb7d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-105.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"1f94","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-106.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b4d8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-107.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"cccb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-108.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"be59","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-109.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"ceb0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-110.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b5e2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-111.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c302","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-112.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"af64","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-113.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"ced2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-114.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"ced4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-115.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"203f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-116.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c14d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-117.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b0d7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-118.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"4.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"1cc4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-119.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"4.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bc76","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-120.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"4.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b634","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-121.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"af9d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-122.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bc2c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-123.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"cb20","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-124.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"bbfc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-125.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c2e8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-126.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"cd45","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-127.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b268","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-128.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c396","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-129.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"c1d4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-130.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"ca19","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-131.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b54e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-132.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b6be","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-133.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b0db","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-134.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"bbe8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-135.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"cedc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-136.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c677","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-137.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c211","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-138.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c47f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-139.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c381","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-140.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b2fa","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-141.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"caa0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-142.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"5.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"afd3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-143.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b256","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-144.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"5.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"c9d8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-145.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"cefd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-146.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"ba79","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-147.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b71d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-148.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c7e8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-149.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c941","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-150.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"ba7d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-151.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"ba0b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-152.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b7fe","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-153.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b90e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-154.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c84e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-155.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c7ad","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-156.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"bd0f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-157.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"ce62","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-158.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b4f8","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-159.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b78d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-160.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bf13","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-161.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"babf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-162.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bc2e","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-163.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"be2b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-164.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b44f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-165.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c128","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-166.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"6.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"c86d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-167.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b1a2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-168.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"6.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bdcc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-169.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b8fa","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-170.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"1c26","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-171.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bff3","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-172.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b7e7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-173.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"cabc","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-174.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c5d6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-175.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"cb6c","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-176.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"cc0a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-177.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b847","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-178.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c02a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-179.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"ba20","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-180.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c9d5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-181.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b661","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-182.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"be23","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-183.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b7b0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-184.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b4b9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-185.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bc68","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-186.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b7c1","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-187.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b7f7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-188.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"1cad","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-189.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"1f7b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-190.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"7.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b5c4","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-191.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bfb7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-192.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"7.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b9dd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-193.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"cd65","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-194.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"c790","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-195.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b9cf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-196.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b37d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-197.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"c0c2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-198.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"bcff","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-199.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b162","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-200.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b36d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-201.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"afa5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-202.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"bce0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-203.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c610","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-204.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b4f2","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-205.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"bc93","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-206.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"cadf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-207.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c324","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-208.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"bf07","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-209.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"cd83","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-210.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"ce46","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-211.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"ba40","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-212.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"b37a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-213.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"c8bf","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-214.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"8.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"bec0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-215.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"2037","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-216.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"8.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"ce48","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-217.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b814","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-218.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"b8a6","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-219.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"0.93"},{"site":"strasbourg","uid":"bdb9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-220.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b675","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-221.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"b75f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-222.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"1.93"},{"site":"strasbourg","uid":"afeb","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-223.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b42a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-224.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"b63a","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-225.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"2.93"},{"site":"strasbourg","uid":"bf23","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-226.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"bff9","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-227.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"c1cd","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-228.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"3.93"},{"site":"strasbourg","uid":"b38d","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-229.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"ce99","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-230.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"b169","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-231.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"4.93"},{"site":"strasbourg","uid":"c6c5","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-232.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b8e7","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-233.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"c394","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-234.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"5.93"},{"site":"strasbourg","uid":"b109","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-235.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"bbe0","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-236.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"cdef","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-237.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"6.93"},{"site":"strasbourg","uid":"cb29","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-238.strasbourg.iot-lab.info","mobility_type":"null","z":"0.5","y":"9.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b38f","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-239.strasbourg.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"b89b","archi":"wsn430:cc1101","state":"Alive","network_address":"wsn430-240.strasbourg.iot-lab.info","mobility_type":"null","z":"2.5","y":"9.98","mobile":0,"x":"7.93"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-241.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-242.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Suspected","network_address":"wsn430-243.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-244.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-245.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-246.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-247.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-248.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-249.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-250.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-251.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-252.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":0,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-253.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-254.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-255.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"unknown","archi":"wsn430:cc1101","state":"Absent","network_address":"wsn430-256.strasbourg.iot-lab.info","mobility_type":"null","z":"null","y":"null","mobile":1,"x":"null"},{"site":"grenoble","uid":"9982","archi":"m3:at86rf231","state":"Alive","network_address":"m3-2.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"20.70"},{"site":"grenoble","uid":"9176","archi":"m3:at86rf231","state":"Alive","network_address":"m3-4.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"21.90"},{"site":"grenoble","uid":"a176","archi":"m3:at86rf231","state":"Alive","network_address":"m3-5.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"22.50"},{"site":"grenoble","uid":"2162","archi":"m3:at86rf231","state":"Alive","network_address":"m3-9.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"25.75"},{"site":"grenoble","uid":"9971","archi":"m3:at86rf231","state":"Alive","network_address":"m3-11.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"26.95"},{"site":"grenoble","uid":"a569","archi":"m3:at86rf231","state":"Alive","network_address":"m3-13.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"28.15"},{"site":"grenoble","uid":"9869","archi":"m3:at86rf231","state":"Alive","network_address":"m3-14.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"28.75"},{"site":"grenoble","uid":"c280","archi":"m3:at86rf231","state":"Alive","network_address":"m3-15.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"29.35"},{"site":"grenoble","uid":"a172","archi":"m3:at86rf231","state":"Alive","network_address":"m3-17.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"30.55"},{"site":"grenoble","uid":"b679","archi":"m3:at86rf231","state":"Alive","network_address":"m3-18.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"31.15"},{"site":"grenoble","uid":"b382","archi":"m3:at86rf231","state":"Alive","network_address":"m3-21.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"32.95"},{"site":"grenoble","uid":"a669","archi":"m3:at86rf231","state":"Alive","network_address":"m3-23.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"34.15"},{"site":"grenoble","uid":"9071","archi":"m3:at86rf231","state":"Alive","network_address":"m3-25.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"35.35"},{"site":"grenoble","uid":"0662","archi":"m3:at86rf231","state":"Alive","network_address":"m3-29.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"37.75"},{"site":"grenoble","uid":"c168","archi":"m3:at86rf231","state":"Alive","network_address":"m3-30.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"38.35"},{"site":"grenoble","uid":"b377","archi":"m3:at86rf231","state":"Alive","network_address":"m3-31.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"38.95"},{"site":"grenoble","uid":"a482","archi":"m3:at86rf231","state":"Alive","network_address":"m3-32.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"39.55"},{"site":"grenoble","uid":"b482","archi":"m3:at86rf231","state":"Alive","network_address":"m3-33.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"40.15"},{"site":"grenoble","uid":"a581","archi":"m3:at86rf231","state":"Alive","network_address":"m3-35.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"41.35"},{"site":"grenoble","uid":"0562","archi":"m3:at86rf231","state":"Alive","network_address":"m3-37.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"42.55"},{"site":"grenoble","uid":"a181","archi":"m3:at86rf231","state":"Alive","network_address":"m3-38.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"43.15"},{"site":"grenoble","uid":"c078","archi":"m3:at86rf231","state":"Alive","network_address":"m3-39.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"43.75"},{"site":"grenoble","uid":"a978","archi":"m3:at86rf231","state":"Alive","network_address":"m3-40.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"44.35"},{"site":"grenoble","uid":"c181","archi":"m3:at86rf231","state":"Alive","network_address":"m3-44.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"46.75"},{"site":"grenoble","uid":"a872","archi":"m3:at86rf231","state":"Alive","network_address":"m3-45.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"47.35"},{"site":"grenoble","uid":"a780","archi":"m3:at86rf231","state":"Alive","network_address":"m3-48.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"49.15"},{"site":"grenoble","uid":"b683","archi":"m3:at86rf231","state":"Alive","network_address":"m3-49.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"49.75"},{"site":"grenoble","uid":"9472","archi":"m3:at86rf231","state":"Alive","network_address":"m3-51.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"50.95"},{"site":"grenoble","uid":"9878","archi":"m3:at86rf231","state":"Alive","network_address":"m3-55.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"53.35"},{"site":"grenoble","uid":"b780","archi":"m3:at86rf231","state":"Alive","network_address":"m3-59.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"55.75"},{"site":"grenoble","uid":"b678","archi":"m3:at86rf231","state":"Alive","network_address":"m3-61.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"56.95"},{"site":"grenoble","uid":"a169","archi":"m3:at86rf231","state":"Alive","network_address":"m3-63.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"58.15"},{"site":"grenoble","uid":"8778","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-65.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"59.35"},{"site":"grenoble","uid":"a983","archi":"m3:at86rf231","state":"Alive","network_address":"m3-68.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"61.15"},{"site":"grenoble","uid":"9682","archi":"m3:at86rf231","state":"Alive","network_address":"m3-69.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"61.75"},{"site":"grenoble","uid":"a779","archi":"m3:at86rf231","state":"Alive","network_address":"m3-71.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"16.42"},{"site":"grenoble","uid":"8972","archi":"m3:at86rf231","state":"Alive","network_address":"m3-72.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"15.82"},{"site":"grenoble","uid":"8771","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-73.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"15.22"},{"site":"grenoble","uid":"1462","archi":"m3:at86rf231","state":"Alive","network_address":"m3-77.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"12.82"},{"site":"grenoble","uid":"9476","archi":"m3:at86rf231","state":"Alive","network_address":"m3-80.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"11.02"},{"site":"grenoble","uid":"a271","archi":"m3:at86rf231","state":"Alive","network_address":"m3-85.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"8.02"},{"site":"grenoble","uid":"a475","archi":"m3:at86rf231","state":"Alive","network_address":"m3-88.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"6.22"},{"site":"grenoble","uid":"1662","archi":"m3:at86rf231","state":"Alive","network_address":"m3-91.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"4.42"},{"site":"grenoble","uid":"2960","archi":"m3:at86rf231","state":"Alive","network_address":"m3-94.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"2.62"},{"site":"grenoble","uid":"9181","archi":"m3:at86rf231","state":"Alive","network_address":"m3-101.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a881","archi":"m3:at86rf231","state":"Alive","network_address":"m3-102.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"b576","archi":"m3:at86rf231","state":"Alive","network_address":"m3-105.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"23.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9382","archi":"m3:at86rf231","state":"Alive","network_address":"m3-106.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"23.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"1062","archi":"m3:at86rf231","state":"Alive","network_address":"m3-109.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a671","archi":"m3:at86rf231","state":"Alive","network_address":"m3-113.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a879","archi":"m3:at86rf231","state":"Alive","network_address":"m3-114.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"8471","archi":"m3:at86rf231","state":"Alive","network_address":"m3-115.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"20.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"8969","archi":"m3:at86rf231","state":"Alive","network_address":"m3-116.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"20.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"2262","archi":"m3:at86rf231","state":"Alive","network_address":"m3-117.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9376","archi":"m3:at86rf231","state":"Alive","network_address":"m3-118.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a180","archi":"m3:at86rf231","state":"Alive","network_address":"m3-122.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"c276","archi":"m3:at86rf231","state":"Alive","network_address":"m3-123.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9772","archi":"m3:at86rf231","state":"Alive","network_address":"m3-124.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9672","archi":"m3:at86rf231","state":"Alive","network_address":"m3-125.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"17.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9783","archi":"m3:at86rf231","state":"Alive","network_address":"m3-129.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a272","archi":"m3:at86rf231","state":"Alive","network_address":"m3-130.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9369","archi":"m3:at86rf231","state":"Alive","network_address":"m3-131.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a369","archi":"m3:at86rf231","state":"Alive","network_address":"m3-132.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"2360","archi":"m3:at86rf231","state":"Alive","network_address":"m3-133.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a069","archi":"m3:at86rf231","state":"Alive","network_address":"m3-134.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"1761","archi":"m3:at86rf231","state":"Alive","network_address":"m3-135.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"14.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9669","archi":"m3:at86rf231","state":"Alive","network_address":"m3-136.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"14.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"b169","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-138.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a778","archi":"m3:at86rf231","state":"Alive","network_address":"m3-139.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b483","archi":"m3:at86rf231","state":"Alive","network_address":"m3-140.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"8579","archi":"m3:at86rf231","state":"Alive","network_address":"m3-141.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a783","archi":"m3:at86rf231","state":"Alive","network_address":"m3-142.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a668","archi":"m3:at86rf231","state":"Alive","network_address":"m3-146.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"11.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9380","archi":"m3:at86rf231","state":"Alive","network_address":"m3-147.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9976","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-148.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"b676","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-150.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9576","archi":"m3:at86rf231","state":"Alive","network_address":"m3-151.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b769","archi":"m3:at86rf231","state":"Alive","network_address":"m3-152.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"3160","archi":"m3:at86rf231","state":"Alive","network_address":"m3-155.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"8.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a380","archi":"m3:at86rf231","state":"Alive","network_address":"m3-157.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a781","archi":"m3:at86rf231","state":"Alive","network_address":"m3-158.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a081","archi":"m3:at86rf231","state":"Alive","network_address":"m3-159.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9880","archi":"m3:at86rf231","state":"Alive","network_address":"m3-160.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9582","archi":"m3:at86rf231","state":"Alive","network_address":"m3-161.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"8775","archi":"m3:at86rf231","state":"Alive","network_address":"m3-162.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"1862","archi":"m3:at86rf231","state":"Alive","network_address":"m3-167.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a276","archi":"m3:at86rf231","state":"Alive","network_address":"m3-169.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9379","archi":"m3:at86rf231","state":"Alive","network_address":"m3-171.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a179","archi":"m3:at86rf231","state":"Alive","network_address":"m3-174.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a870","archi":"m3:at86rf231","state":"Alive","network_address":"m3-175.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"2.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a281","archi":"m3:at86rf231","state":"Alive","network_address":"m3-178.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"1.85","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a776","archi":"m3:at86rf231","state":"Alive","network_address":"m3-179.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"2.75"},{"site":"grenoble","uid":"0762","archi":"m3:at86rf231","state":"Alive","network_address":"m3-180.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"3.35"},{"site":"grenoble","uid":"b583","archi":"m3:at86rf231","state":"Alive","network_address":"m3-181.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"3.95"},{"site":"grenoble","uid":"9968","archi":"m3:at86rf231","state":"Alive","network_address":"m3-182.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"4.55"},{"site":"grenoble","uid":"9978","archi":"m3:at86rf231","state":"Alive","network_address":"m3-185.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"6.35"},{"site":"grenoble","uid":"9571","archi":"m3:at86rf231","state":"Alive","network_address":"m3-187.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"7.55"},{"site":"grenoble","uid":"9072","archi":"m3:at86rf231","state":"Alive","network_address":"m3-188.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"8.15"},{"site":"grenoble","uid":"9480","archi":"m3:at86rf231","state":"Alive","network_address":"m3-189.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"8.75"},{"site":"grenoble","uid":"8872","archi":"m3:at86rf231","state":"Alive","network_address":"m3-191.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"9.95"},{"site":"grenoble","uid":"b579","archi":"m3:at86rf231","state":"Alive","network_address":"m3-192.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"10.55"},{"site":"grenoble","uid":"a375","archi":"m3:at86rf231","state":"Alive","network_address":"m3-194.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"11.75"},{"site":"grenoble","uid":"a768","archi":"m3:at86rf231","state":"Alive","network_address":"m3-196.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"12.95"},{"site":"grenoble","uid":"a972","archi":"m3:at86rf231","state":"Alive","network_address":"m3-197.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"13.55"},{"site":"grenoble","uid":"a383","archi":"m3:at86rf231","state":"Alive","network_address":"m3-198.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"14.15"},{"site":"grenoble","uid":"9584","archi":"m3:at86rf231","state":"Alive","network_address":"m3-203.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"17.15"},{"site":"grenoble","uid":"b877","archi":"m3:at86rf231","state":"Alive","network_address":"m3-204.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.75","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9979","archi":"m3:at86rf231","state":"Alive","network_address":"m3-206.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"1.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9076","archi":"m3:at86rf231","state":"Alive","network_address":"m3-208.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"2.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"c081","archi":"m3:at86rf231","state":"Alive","network_address":"m3-210.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b280","archi":"m3:at86rf231","state":"Alive","network_address":"m3-212.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"8472","archi":"m3:at86rf231","state":"Alive","network_address":"m3-213.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9567","archi":"m3:at86rf231","state":"Alive","network_address":"m3-214.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b369","archi":"m3:at86rf231","state":"Alive","network_address":"m3-216.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b481","archi":"m3:at86rf231","state":"Alive","network_address":"m3-219.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"5.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"2160","archi":"m3:at86rf231","state":"Alive","network_address":"m3-220.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"3860","archi":"m3:at86rf231","state":"Alive","network_address":"m3-222.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b268","archi":"m3:at86rf231","state":"Alive","network_address":"m3-226.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9377","archi":"m3:at86rf231","state":"Alive","network_address":"m3-227.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"8779","archi":"m3:at86rf231","state":"Alive","network_address":"m3-231.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a372","archi":"m3:at86rf231","state":"Alive","network_address":"m3-232.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9481","archi":"m3:at86rf231","state":"Alive","network_address":"m3-234.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"2362","archi":"m3:at86rf231","state":"Alive","network_address":"m3-235.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a677","archi":"m3:at86rf231","state":"Alive","network_address":"m3-236.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"1562","archi":"m3:at86rf231","state":"Alive","network_address":"m3-237.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b876","archi":"m3:at86rf231","state":"Alive","network_address":"m3-239.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"11.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"8371","archi":"m3:at86rf231","state":"Alive","network_address":"m3-241.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9077","archi":"m3:at86rf231","state":"Alive","network_address":"m3-242.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9579","archi":"m3:at86rf231","state":"Alive","network_address":"m3-244.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9269","archi":"m3:at86rf231","state":"Alive","network_address":"m3-245.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b881","archi":"m3:at86rf231","state":"Alive","network_address":"m3-246.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b383","archi":"m3:at86rf231","state":"Alive","network_address":"m3-248.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"14.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b580","archi":"m3:at86rf231","state":"Alive","network_address":"m3-252.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"c277","archi":"m3:at86rf231","state":"Alive","network_address":"m3-253.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"8982","archi":"m3:at86rf231","state":"Alive","network_address":"m3-254.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b668","archi":"m3:at86rf231","state":"Alive","network_address":"m3-257.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"1860","archi":"m3:at86rf231","state":"Alive","network_address":"m3-258.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"17.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a478","archi":"m3:at86rf231","state":"Alive","network_address":"m3-260.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a481","archi":"m3:at86rf231","state":"Alive","network_address":"m3-262.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"8470","archi":"m3:at86rf231","state":"Alive","network_address":"m3-263.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9575","archi":"m3:at86rf231","state":"Alive","network_address":"m3-264.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a470","archi":"m3:at86rf231","state":"Alive","network_address":"m3-265.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b182","archi":"m3:at86rf231","state":"Alive","network_address":"m3-267.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a980","archi":"m3:at86rf231","state":"Alive","network_address":"m3-271.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"2861","archi":"m3:at86rf231","state":"Alive","network_address":"m3-272.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9279","archi":"m3:at86rf231","state":"Alive","network_address":"m3-273.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a968","archi":"m3:at86rf231","state":"Alive","network_address":"m3-278.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"23.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b381","archi":"m3:at86rf231","state":"Alive","network_address":"m3-280.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a283","archi":"m3:at86rf231","state":"Alive","network_address":"m3-282.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.63","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a583","archi":"m3:at86rf231","state":"Alive","network_address":"m3-285.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"1162","archi":"m3:at86rf231","state":"Alive","network_address":"m3-288.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.52","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"c370","archi":"m3:at86rf231","state":"Alive","network_address":"m3-289.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.52","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a078","archi":"m3:at86rf231","state":"Alive","network_address":"m3-290.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"20.05"},{"site":"grenoble","uid":"9183","archi":"m3:at86rf231","state":"Alive","network_address":"m3-292.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"21.25"},{"site":"grenoble","uid":"9475","archi":"m3:at86rf231","state":"Alive","network_address":"m3-293.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"21.85"},{"site":"grenoble","uid":"a079","archi":"m3:at86rf231","state":"Alive","network_address":"m3-297.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"25.22"},{"site":"grenoble","uid":"b569","archi":"m3:at86rf231","state":"Alive","network_address":"m3-298.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"25.85"},{"site":"grenoble","uid":"1362","archi":"m3:at86rf231","state":"Alive","network_address":"m3-299.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"26.42"},{"site":"grenoble","uid":"8876","archi":"m3:at86rf231","state":"Alive","network_address":"m3-300.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"27.02"},{"site":"grenoble","uid":"a675","archi":"m3:at86rf231","state":"Alive","network_address":"m3-301.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"28.22"},{"site":"grenoble","uid":"a370","archi":"m3:at86rf231","state":"Alive","network_address":"m3-303.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"29.36"},{"site":"grenoble","uid":"a082","archi":"m3:at86rf231","state":"Alive","network_address":"m3-307.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"31.76"},{"site":"grenoble","uid":"c368","archi":"m3:at86rf231","state":"Alive","network_address":"m3-309.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"32.96"},{"site":"grenoble","uid":"c169","archi":"m3:at86rf231","state":"Alive","network_address":"m3-310.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"33.56"},{"site":"grenoble","uid":"a570","archi":"m3:at86rf231","state":"Alive","network_address":"m3-311.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"34.16"},{"site":"grenoble","uid":"9782","archi":"m3:at86rf231","state":"Alive","network_address":"m3-312.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"34.76"},{"site":"grenoble","uid":"9082","archi":"m3:at86rf231","state":"Alive","network_address":"m3-313.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"35.36"},{"site":"grenoble","uid":"9580","archi":"m3:at86rf231","state":"Alive","network_address":"m3-314.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"35.96"},{"site":"grenoble","uid":"b276","archi":"m3:at86rf231","state":"Alive","network_address":"m3-317.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"37.76"},{"site":"grenoble","uid":"8370","archi":"m3:at86rf231","state":"Alive","network_address":"m3-318.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"38.36"},{"site":"grenoble","uid":"9879","archi":"m3:at86rf231","state":"Alive","network_address":"m3-321.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"40.16"},{"site":"grenoble","uid":"b282","archi":"m3:at86rf231","state":"Alive","network_address":"m3-322.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"40.76"},{"site":"grenoble","uid":"a782","archi":"m3:at86rf231","state":"Alive","network_address":"m3-324.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"41.96"},{"site":"grenoble","uid":"9776","archi":"m3:at86rf231","state":"Alive","network_address":"m3-325.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"42.56"},{"site":"grenoble","uid":"9282","archi":"m3:at86rf231","state":"Alive","network_address":"m3-328.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"44.36"},{"site":"grenoble","uid":"a472","archi":"m3:at86rf231","state":"Alive","network_address":"m3-335.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"48.56"},{"site":"grenoble","uid":"b279","archi":"m3:at86rf231","state":"Alive","network_address":"m3-337.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"49.76"},{"site":"grenoble","uid":"9668","archi":"m3:at86rf231","state":"Alive","network_address":"m3-338.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"50.36"},{"site":"grenoble","uid":"9477","archi":"m3:at86rf231","state":"Alive","network_address":"m3-339.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"50.96"},{"site":"grenoble","uid":"a568","archi":"m3:at86rf231","state":"Alive","network_address":"m3-343.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"53.36"},{"site":"grenoble","uid":"c082","archi":"m3:at86rf231","state":"Alive","network_address":"m3-344.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"53.96"},{"site":"grenoble","uid":"b669","archi":"m3:at86rf231","state":"Alive","network_address":"m3-346.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"55.16"},{"site":"grenoble","uid":"9868","archi":"m3:at86rf231","state":"Alive","network_address":"m3-348.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"56.36"},{"site":"grenoble","uid":"2553","archi":"m3:at86rf231","state":"Alive","network_address":"m3-349.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"56.96"},{"site":"grenoble","uid":"9367","archi":"m3:at86rf231","state":"Alive","network_address":"m3-354.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"59.96"},{"site":"grenoble","uid":"c171","archi":"m3:at86rf231","state":"Alive","network_address":"m3-359.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"34.75"},{"site":"grenoble","uid":"3360","archi":"m3:at86rf231","state":"Alive","network_address":"m3-360.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"35.35"},{"site":"grenoble","uid":"b883","archi":"m3:at86rf231","state":"Alive","network_address":"m3-363.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.92","mobile":0,"x":"37.75"},{"site":"grenoble","uid":"3060","archi":"m3:at86rf231","state":"Alive","network_address":"m3-366.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"39.55"},{"site":"grenoble","uid":"b469","archi":"m3:at86rf231","state":"Alive","network_address":"m3-367.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"40.15"},{"site":"grenoble","uid":"2953","archi":"m3:at86rf231","state":"Alive","network_address":"m3-368.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"40.75"},{"site":"grenoble","uid":"c077","archi":"m3:at86rf231","state":"Alive","network_address":"m3-371.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"46.75"},{"site":"grenoble","uid":"8575","archi":"m3:at86rf231","state":"Alive","network_address":"m3-374.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"48.55"},{"site":"grenoble","uid":"2254","archi":"m3:at86rf231","state":"Alive","network_address":"m3-375.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"49.15"},{"site":"grenoble","uid":"a175","archi":"m3:at86rf231","state":"Alive","network_address":"m3-376.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"52.15"},{"site":"grenoble","uid":"9484","archi":"m3:at86rf231","state":"Alive","network_address":"m3-377.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"52.75"},{"site":"grenoble","uid":"3460","archi":"m3:at86rf231","state":"Alive","network_address":"m3-379.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"53.95"},{"site":"grenoble","uid":"a979","archi":"m3:at86rf231","state":"Alive","network_address":"m3-380.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"54.55"},{"site":"lille","uid":"3055","archi":"m3:at86rf231","state":"Alive","network_address":"m3-1.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"0.82"},{"site":"lille","uid":"2250","archi":"m3:at86rf231","state":"Alive","network_address":"m3-3.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"2.02"},{"site":"lille","uid":"1255","archi":"m3:at86rf231","state":"Alive","network_address":"m3-6.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"3.22"},{"site":"lille","uid":"1055","archi":"m3:at86rf231","state":"Alive","network_address":"m3-9.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"5.62"},{"site":"lille","uid":"2156","archi":"m3:at86rf231","state":"Alive","network_address":"m3-10.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"5.62"},{"site":"lille","uid":"1457","archi":"m3:at86rf231","state":"Alive","network_address":"m3-11.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"6.82"},{"site":"lille","uid":"b588","archi":"m3:at86rf231","state":"Alive","network_address":"m3-14.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"8.02"},{"site":"lille","uid":"2150","archi":"m3:at86rf231","state":"Alive","network_address":"m3-15.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"9.22"},{"site":"lille","uid":"1854","archi":"m3:at86rf231","state":"Alive","network_address":"m3-18.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"10.42"},{"site":"lille","uid":"2455","archi":"m3:at86rf231","state":"Alive","network_address":"m3-19.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"11.62"},{"site":"lille","uid":"3454","archi":"m3:at86rf231","state":"Alive","network_address":"m3-23.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"14.02"},{"site":"lille","uid":"1058","archi":"m3:at86rf231","state":"Alive","network_address":"m3-24.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"14.02"},{"site":"lille","uid":"9170","archi":"m3:at86rf231","state":"Alive","network_address":"m3-26.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"15.22"},{"site":"lille","uid":"9973","archi":"m3:at86rf231","state":"Alive","network_address":"m3-27.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.3","mobile":0,"x":"0.1"},{"site":"lille","uid":"1155","archi":"m3:at86rf231","state":"Alive","network_address":"m3-28.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.3","mobile":0,"x":"0.1"},{"site":"lille","uid":"3658","archi":"m3:at86rf231","state":"Alive","network_address":"m3-29.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"0.82"},{"site":"lille","uid":"1759","archi":"m3:at86rf231","state":"Alive","network_address":"m3-32.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"4.42"},{"site":"lille","uid":"1758","archi":"m3:at86rf231","state":"Alive","network_address":"m3-33.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"5.62"},{"site":"lille","uid":"b373","archi":"m3:at86rf231","state":"Alive","network_address":"m3-34.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"6.82"},{"site":"lille","uid":"2151","archi":"m3:at86rf231","state":"Alive","network_address":"m3-38.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"11.62"},{"site":"lille","uid":"b271","archi":"m3:at86rf231","state":"Alive","network_address":"m3-39.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"12.82"},{"site":"lille","uid":"b370","archi":"m3:at86rf231","state":"Alive","network_address":"m3-40.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"14.02"},{"site":"lille","uid":"1757","archi":"m3:at86rf231","state":"Alive","network_address":"m3-42.lille.iot-lab.info","mobility_type":"null","z":"2.4","y":"0.3","mobile":0,"x":"16.1"},{"site":"lille","uid":"1057","archi":"m3:at86rf231","state":"Alive","network_address":"m3-44.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.3","mobile":0,"x":"16.1"},{"site":"lille","uid":"a173","archi":"m3:at86rf231","state":"Alive","network_address":"m3-47.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"0.82"},{"site":"lille","uid":"b572","archi":"m3:at86rf231","state":"Alive","network_address":"m3-49.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"3.22"},{"site":"lille","uid":"b071","archi":"m3:at86rf231","state":"Alive","network_address":"m3-51.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"5.62"},{"site":"lille","uid":"b473","archi":"m3:at86rf231","state":"Alive","network_address":"m3-52.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"6.82"},{"site":"lille","uid":"9773","archi":"m3:at86rf231","state":"Alive","network_address":"m3-54.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"9.22"},{"site":"lille","uid":"a689","archi":"m3:at86rf231","state":"Alive","network_address":"m3-56.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"11.62"},{"site":"lille","uid":"2755","archi":"m3:at86rf231","state":"Alive","network_address":"m3-57.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"12.82"},{"site":"lille","uid":"a673","archi":"m3:at86rf231","state":"Alive","network_address":"m3-63.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.7","mobile":0,"x":"0.1"},{"site":"lille","uid":"a273","archi":"m3:at86rf231","state":"Alive","network_address":"m3-64.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.7","mobile":0,"x":"0.1"},{"site":"lille","uid":"9777","archi":"m3:at86rf231","state":"Alive","network_address":"m3-65.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"0.82"},{"site":"lille","uid":"a390","archi":"m3:at86rf231","state":"Alive","network_address":"m3-66.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"2.02"},{"site":"lille","uid":"8574","archi":"m3:at86rf231","state":"Alive","network_address":"m3-67.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"3.22"},{"site":"lille","uid":"8774","archi":"m3:at86rf231","state":"Alive","network_address":"m3-70.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"6.82"},{"site":"lille","uid":"8674","archi":"m3:at86rf231","state":"Alive","network_address":"m3-71.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"8.02"},{"site":"lille","uid":"a077","archi":"m3:at86rf231","state":"Alive","network_address":"m3-72.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"9.22"},{"site":"lille","uid":"1756","archi":"m3:at86rf231","state":"Alive","network_address":"m3-73.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"10.42"},{"site":"lille","uid":"2852","archi":"m3:at86rf231","state":"Alive","network_address":"m3-74.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"11.62"},{"site":"lille","uid":"2550","archi":"m3:at86rf231","state":"Alive","network_address":"m3-76.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"14.02"},{"site":"lille","uid":"9577","archi":"m3:at86rf231","state":"Alive","network_address":"m3-79.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"2.7","mobile":0,"x":"16.1"},{"site":"lille","uid":"2256","archi":"m3:at86rf231","state":"Alive","network_address":"m3-80.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"2.7","mobile":0,"x":"16.1"},{"site":"lille","uid":"b089","archi":"m3:at86rf231","state":"Alive","network_address":"m3-82.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.9","mobile":0,"x":"0.1"},{"site":"lille","uid":"1459","archi":"m3:at86rf231","state":"Alive","network_address":"m3-83.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"0.82"},{"site":"lille","uid":"b671","archi":"m3:at86rf231","state":"Alive","network_address":"m3-85.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"3.22"},{"site":"lille","uid":"2258","archi":"m3:at86rf231","state":"Alive","network_address":"m3-87.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"5.62"},{"site":"lille","uid":"2750","archi":"m3:at86rf231","state":"Alive","network_address":"m3-88.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"6.82"},{"site":"lille","uid":"3554","archi":"m3:at86rf231","state":"Alive","network_address":"m3-89.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"8.02"},{"site":"lille","uid":"0956","archi":"m3:at86rf231","state":"Alive","network_address":"m3-90.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"9.22"},{"site":"lille","uid":"c170","archi":"m3:at86rf231","state":"Alive","network_address":"m3-91.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"10.42"},{"site":"lille","uid":"9989","archi":"m3:at86rf231","state":"Alive","network_address":"m3-92.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"11.62"},{"site":"lille","uid":"b272","archi":"m3:at86rf231","state":"Alive","network_address":"m3-94.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"14.02"},{"site":"lille","uid":"2459","archi":"m3:at86rf231","state":"Alive","network_address":"m3-95.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"15.22"},{"site":"lille","uid":"2555","archi":"m3:at86rf231","state":"Alive","network_address":"m3-97.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.9","mobile":0,"x":"16.1"},{"site":"lille","uid":"8973","archi":"m3:at86rf231","state":"Alive","network_address":"m3-100.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"5.1","mobile":0,"x":"0.1"},{"site":"lille","uid":"a473","archi":"m3:at86rf231","state":"Alive","network_address":"m3-102.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"2.02"},{"site":"lille","uid":"0660","archi":"m3:at86rf231","state":"Alive","network_address":"m3-104.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"4.42"},{"site":"lille","uid":"3559","archi":"m3:at86rf231","state":"Alive","network_address":"m3-106.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"6.82"},{"site":"lille","uid":"b172","archi":"m3:at86rf231","state":"Alive","network_address":"m3-108.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"9.22"},{"site":"lille","uid":"2853","archi":"m3:at86rf231","state":"Alive","network_address":"m3-110.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"11.62"},{"site":"lille","uid":"3858","archi":"m3:at86rf231","state":"Alive","network_address":"m3-111.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"12.82"},{"site":"lille","uid":"1957","archi":"m3:at86rf231","state":"Alive","network_address":"m3-113.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"15.22"},{"site":"lille","uid":"b872","archi":"m3:at86rf231","state":"Alive","network_address":"m3-114.lille.iot-lab.info","mobility_type":"null","z":"2.4","y":"5.1","mobile":0,"x":"16.1"},{"site":"lille","uid":"a890","archi":"m3:at86rf231","state":"Alive","network_address":"m3-115.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.1","mobile":0,"x":"16.1"},{"site":"lille","uid":"b488","archi":"m3:at86rf231","state":"Alive","network_address":"m3-116.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"5.1","mobile":0,"x":"16.1"},{"site":"lille","uid":"2556","archi":"m3:at86rf231","state":"Alive","network_address":"m3-118.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"5.45","mobile":0,"x":"5.42"},{"site":"lille","uid":"1061","archi":"m3:at86rf231","state":"Alive","network_address":"m3-121.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.1","mobile":0,"x":"14.18"},{"site":"lille","uid":"3154","archi":"m3:at86rf231","state":"Alive","network_address":"m3-122.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"5.1","mobile":0,"x":"14.18"},{"site":"lille","uid":"9570","archi":"m3:at86rf231","state":"Alive","network_address":"m3-125.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"3.22"},{"site":"lille","uid":"3558","archi":"m3:at86rf231","state":"Alive","network_address":"m3-127.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"5.62"},{"site":"lille","uid":"2452","archi":"m3:at86rf231","state":"Alive","network_address":"m3-128.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"6.82"},{"site":"lille","uid":"1954","archi":"m3:at86rf231","state":"Alive","network_address":"m3-130.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"9.22"},{"site":"lille","uid":"b388","archi":"m3:at86rf231","state":"Alive","network_address":"m3-131.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"10.42"},{"site":"lille","uid":"b973","archi":"m3:at86rf231","state":"Alive","network_address":"m3-132.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"11.62"},{"site":"lille","uid":"2451","archi":"m3:at86rf231","state":"Alive","network_address":"m3-133.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"12.82"},{"site":"lille","uid":"b670","archi":"m3:at86rf231","state":"Alive","network_address":"m3-134.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"14.02"},{"site":"lille","uid":"0957","archi":"m3:at86rf231","state":"Alive","network_address":"m3-135.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"6.3","mobile":0,"x":"14.18"},{"site":"lille","uid":"0561","archi":"m3:at86rf231","state":"Alive","network_address":"m3-136.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"6.3","mobile":0,"x":"14.18"},{"site":"lille","uid":"1856","archi":"m3:at86rf231","state":"Alive","network_address":"m3-138.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"2.02"},{"site":"lille","uid":"9073","archi":"m3:at86rf231","state":"Alive","network_address":"m3-140.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"4.42"},{"site":"lille","uid":"9270","archi":"m3:at86rf231","state":"Alive","network_address":"m3-142.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"6.82"},{"site":"lille","uid":"8773","archi":"m3:at86rf231","state":"Alive","network_address":"m3-143.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"8.02"},{"site":"lille","uid":"a189","archi":"m3:at86rf231","state":"Alive","network_address":"m3-144.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"9.22"},{"site":"lille","uid":"a170","archi":"m3:at86rf231","state":"Alive","network_address":"m3-145.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"10.42"},{"site":"lille","uid":"c273","archi":"m3:at86rf231","state":"Alive","network_address":"m3-148.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"14.02"},{"site":"lille","uid":"9074","archi":"m3:at86rf231","state":"Alive","network_address":"m3-149.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"7.5","mobile":0,"x":"14.18"},{"site":"lille","uid":"2955","archi":"m3:at86rf231","state":"Alive","network_address":"m3-156.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"6.82"},{"site":"lille","uid":"2350","archi":"m3:at86rf231","state":"Alive","network_address":"m3-157.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"8.02"},{"site":"lille","uid":"2050","archi":"m3:at86rf231","state":"Alive","network_address":"m3-159.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"10.42"},{"site":"lille","uid":"c472","archi":"m3:at86rf231","state":"Alive","network_address":"m3-160.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"11.62"},{"site":"lille","uid":"1855","archi":"m3:at86rf231","state":"Alive","network_address":"m3-161.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"12.82"},{"site":"lille","uid":"1754","archi":"m3:at86rf231","state":"Alive","network_address":"m3-163.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"8.7","mobile":0,"x":"14.18"},{"site":"lille","uid":"2951","archi":"m3:at86rf231","state":"Alive","network_address":"m3-169.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"3.22"},{"site":"lille","uid":"1751","archi":"m3:at86rf231","state":"Alive","network_address":"m3-170.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"3.22"},{"site":"lille","uid":"1156","archi":"m3:at86rf231","state":"Alive","network_address":"m3-173.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"6.82"},{"site":"lille","uid":"2055","archi":"m3:at86rf231","state":"Alive","network_address":"m3-174.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"6.82"},{"site":"lille","uid":"b389","archi":"m3:at86rf231","state":"Alive","network_address":"m3-177.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"9.22"},{"site":"lille","uid":"8374","archi":"m3:at86rf231","state":"Alive","network_address":"m3-178.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"9.22"},{"site":"lille","uid":"3355","archi":"m3:at86rf231","state":"Alive","network_address":"m3-179.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"0.82"},{"site":"lille","uid":"2754","archi":"m3:at86rf231","state":"Alive","network_address":"m3-181.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"3.22"},{"site":"lille","uid":"8474","archi":"m3:at86rf231","state":"Alive","network_address":"m3-182.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"4.42"},{"site":"lille","uid":"3158","archi":"m3:at86rf231","state":"Alive","network_address":"m3-184.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"8.02"},{"site":"lille","uid":"9173","archi":"m3:at86rf231","state":"Alive","network_address":"m3-187.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"11.62"},{"site":"lille","uid":"1358","archi":"m3:at86rf231","state":"Alive","network_address":"m3-188.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"12.82"},{"site":"lille","uid":"3453","archi":"m3:at86rf231","state":"Alive","network_address":"m3-190.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.9","mobile":0,"x":"14.18"},{"site":"lille","uid":"3859","archi":"m3:at86rf231","state":"Alive","network_address":"m3-193.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"2.02"},{"site":"lille","uid":"9573","archi":"m3:at86rf231","state":"Alive","network_address":"m3-194.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"3.22"},{"site":"lille","uid":"2152","archi":"m3:at86rf231","state":"Alive","network_address":"m3-195.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"4.42"},{"site":"lille","uid":"2559","archi":"m3:at86rf231","state":"Alive","network_address":"m3-196.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"5.62"},{"site":"lille","uid":"b273","archi":"m3:at86rf231","state":"Alive","network_address":"m3-197.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"6.82"},{"site":"lille","uid":"9770","archi":"m3:at86rf231","state":"Alive","network_address":"m3-200.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"10.42"},{"site":"lille","uid":"2751","archi":"m3:at86rf231","state":"Alive","network_address":"m3-202.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"12.82"},{"site":"lille","uid":"8573","archi":"m3:at86rf231","state":"Alive","network_address":"m3-203.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"14.02"},{"site":"lille","uid":"2052","archi":"m3:at86rf231","state":"Alive","network_address":"m3-204.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"15.22"},{"site":"lille","uid":"b571","archi":"m3:at86rf231","state":"Alive","network_address":"m3-209.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"5.62"},{"site":"lille","uid":"1254","archi":"m3:at86rf231","state":"Alive","network_address":"m3-210.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"6.82"},{"site":"lille","uid":"2759","archi":"m3:at86rf231","state":"Alive","network_address":"m3-211.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"8.02"},{"site":"lille","uid":"b270","archi":"m3:at86rf231","state":"Alive","network_address":"m3-212.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"9.22"},{"site":"lille","uid":"1859","archi":"m3:at86rf231","state":"Alive","network_address":"m3-213.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"10.42"},{"site":"lille","uid":"2352","archi":"m3:at86rf231","state":"Alive","network_address":"m3-214.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"11.62"},{"site":"lille","uid":"3458","archi":"m3:at86rf231","state":"Alive","network_address":"m3-215.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"12.82"},{"site":"lille","uid":"0858","archi":"m3:at86rf231","state":"Alive","network_address":"m3-216.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"14.02"},{"site":"lille","uid":"3152","archi":"m3:at86rf231","state":"Alive","network_address":"m3-217.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"15.22"},{"site":"lille","uid":"9373","archi":"m3:at86rf231","state":"Alive","network_address":"m3-218.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"0.82"},{"site":"lille","uid":"2359","archi":"m3:at86rf231","state":"Alive","network_address":"m3-219.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"2.02"},{"site":"lille","uid":"c270","archi":"m3:at86rf231","state":"Alive","network_address":"m3-220.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"3.22"},{"site":"lille","uid":"b873","archi":"m3:at86rf231","state":"Alive","network_address":"m3-221.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"4.42"},{"site":"lille","uid":"2552","archi":"m3:at86rf231","state":"Alive","network_address":"m3-223.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"6.82"},{"site":"lille","uid":"2450","archi":"m3:at86rf231","state":"Alive","network_address":"m3-226.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"10.42"},{"site":"lille","uid":"b073","archi":"m3:at86rf231","state":"Alive","network_address":"m3-228.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"12.82"},{"site":"lille","uid":"a790","archi":"m3:at86rf231","state":"Alive","network_address":"m3-229.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"14.02"},{"site":"lille","uid":"1258","archi":"m3:at86rf231","state":"Alive","network_address":"m3-230.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"15.22"},{"site":"lille","uid":"2851","archi":"m3:at86rf231","state":"Alive","network_address":"m3-232.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"2.02"},{"site":"lille","uid":"1256","archi":"m3:at86rf231","state":"Alive","network_address":"m3-233.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"3.22"},{"site":"lille","uid":"2551","archi":"m3:at86rf231","state":"Alive","network_address":"m3-236.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"6.82"},{"site":"lille","uid":"3153","archi":"m3:at86rf231","state":"Alive","network_address":"m3-238.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"9.22"},{"site":"lille","uid":"3358","archi":"m3:at86rf231","state":"Alive","network_address":"m3-239.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"10.42"},{"site":"lille","uid":"1559","archi":"m3:at86rf231","state":"Alive","network_address":"m3-240.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"11.62"},{"site":"lille","uid":"2051","archi":"m3:at86rf231","state":"Alive","network_address":"m3-241.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"12.82"},{"site":"lille","uid":"1552","archi":"m3:at86rf231","state":"Alive","network_address":"m3-243.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"15.22"},{"site":"lille","uid":"2659","archi":"m3:at86rf231","state":"Alive","network_address":"m3-244.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"0.82"},{"site":"lille","uid":"3151","archi":"m3:at86rf231","state":"Alive","network_address":"m3-245.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"2.02"},{"site":"lille","uid":"2454","archi":"m3:at86rf231","state":"Alive","network_address":"m3-246.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"3.22"},{"site":"lille","uid":"2458","archi":"m3:at86rf231","state":"Alive","network_address":"m3-248.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"5.62"},{"site":"lille","uid":"b871","archi":"m3:at86rf231","state":"Alive","network_address":"m3-250.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"8.02"},{"site":"lille","uid":"1257","archi":"m3:at86rf231","state":"Alive","network_address":"m3-253.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"11.62"},{"site":"lille","uid":"b371","archi":"m3:at86rf231","state":"Alive","network_address":"m3-254.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"12.82"},{"site":"lille","uid":"2858","archi":"m3:at86rf231","state":"Alive","network_address":"m3-255.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"14.02"},{"site":"lille","uid":"2554","archi":"m3:at86rf231","state":"Alive","network_address":"m3-256.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"15.22"},{"site":"grenoble","uid":"2354","archi":"m3:at86rf231","state":"Alive","network_address":"m3-1.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"20.10"},{"site":"grenoble","uid":"b868","archi":"m3:at86rf231","state":"Alive","network_address":"m3-3.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"21.30"},{"site":"grenoble","uid":"a682","archi":"m3:at86rf231","state":"Alive","network_address":"m3-6.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"23.10"},{"site":"grenoble","uid":"9883","archi":"m3:at86rf231","state":"Alive","network_address":"m3-7.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"24.55"},{"site":"grenoble","uid":"9983","archi":"m3:at86rf231","state":"Alive","network_address":"m3-8.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"25.15"},{"site":"grenoble","uid":"8772","archi":"m3:at86rf231","state":"Alive","network_address":"m3-10.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"26.35"},{"site":"grenoble","uid":"a869","archi":"m3:at86rf231","state":"Alive","network_address":"m3-12.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"27.55"},{"site":"grenoble","uid":"a269","archi":"m3:at86rf231","state":"Alive","network_address":"m3-16.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"29.95"},{"site":"grenoble","uid":"9969","archi":"m3:at86rf231","state":"Alive","network_address":"m3-19.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"31.75"},{"site":"grenoble","uid":"b077","archi":"m3:at86rf231","state":"Alive","network_address":"m3-20.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"32.35"},{"site":"grenoble","uid":"9171","archi":"m3:at86rf231","state":"Alive","network_address":"m3-22.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"33.55"},{"site":"grenoble","uid":"8971","archi":"m3:at86rf231","state":"Alive","network_address":"m3-24.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"34.75"},{"site":"grenoble","uid":"9469","archi":"m3:at86rf231","state":"Alive","network_address":"m3-26.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"35.95"},{"site":"grenoble","uid":"b778","archi":"m3:at86rf231","state":"Alive","network_address":"m3-27.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"36.55"},{"site":"grenoble","uid":"a882","archi":"m3:at86rf231","state":"Alive","network_address":"m3-28.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"37.15"},{"site":"grenoble","uid":"b968","archi":"m3:at86rf231","state":"Alive","network_address":"m3-34.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"40.75"},{"site":"grenoble","uid":"b568","archi":"m3:at86rf231","state":"Alive","network_address":"m3-36.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"41.95"},{"site":"grenoble","uid":"b980","archi":"m3:at86rf231","state":"Alive","network_address":"m3-41.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"44.95"},{"site":"grenoble","uid":"a476","archi":"m3:at86rf231","state":"Alive","network_address":"m3-42.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"45.55"},{"site":"grenoble","uid":"b480","archi":"m3:at86rf231","state":"Alive","network_address":"m3-43.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"46.15"},{"site":"grenoble","uid":"9278","archi":"m3:at86rf231","state":"Alive","network_address":"m3-46.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"47.95"},{"site":"grenoble","uid":"c275","archi":"m3:at86rf231","state":"Alive","network_address":"m3-47.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"48.55"},{"site":"grenoble","uid":"8576","archi":"m3:at86rf231","state":"Alive","network_address":"m3-50.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"50.35"},{"site":"grenoble","uid":"8770","archi":"m3:at86rf231","state":"Alive","network_address":"m3-52.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"51.55"},{"site":"grenoble","uid":"a068","archi":"m3:at86rf231","state":"Alive","network_address":"m3-53.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"52.15"},{"site":"grenoble","uid":"c180","archi":"m3:at86rf231","state":"Alive","network_address":"m3-54.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"52.75"},{"site":"grenoble","uid":"8677","archi":"m3:at86rf231","state":"Alive","network_address":"m3-56.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"53.95"},{"site":"grenoble","uid":"8577","archi":"m3:at86rf231","state":"Alive","network_address":"m3-57.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"54.55"},{"site":"grenoble","uid":"b378","archi":"m3:at86rf231","state":"Alive","network_address":"m3-58.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"55.15"},{"site":"grenoble","uid":"a579","archi":"m3:at86rf231","state":"Alive","network_address":"m3-60.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"56.35"},{"site":"grenoble","uid":"8372","archi":"m3:at86rf231","state":"Alive","network_address":"m3-62.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"57.55"},{"site":"grenoble","uid":"8777","archi":"m3:at86rf231","state":"Alive","network_address":"m3-64.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"58.75"},{"site":"grenoble","uid":"b680","archi":"m3:at86rf231","state":"Alive","network_address":"m3-66.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"59.95"},{"site":"grenoble","uid":"c268","archi":"m3:at86rf231","state":"Alive","network_address":"m3-67.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"60.55"},{"site":"grenoble","uid":"9067","archi":"m3:at86rf231","state":"Alive","network_address":"m3-70.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"17.02"},{"site":"grenoble","uid":"a171","archi":"m3:at86rf231","state":"Alive","network_address":"m3-74.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"14.62"},{"site":"grenoble","uid":"8981","archi":"m3:at86rf231","state":"Alive","network_address":"m3-75.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"14.02"},{"site":"grenoble","uid":"9177","archi":"m3:at86rf231","state":"Alive","network_address":"m3-76.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"13.42"},{"site":"grenoble","uid":"a382","archi":"m3:at86rf231","state":"Alive","network_address":"m3-78.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"12.22"},{"site":"grenoble","uid":"b976","archi":"m3:at86rf231","state":"Alive","network_address":"m3-79.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"11.62"},{"site":"grenoble","uid":"a676","archi":"m3:at86rf231","state":"Alive","network_address":"m3-81.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"10.42"},{"site":"grenoble","uid":"8767","archi":"m3:at86rf231","state":"Alive","network_address":"m3-82.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"9.82"},{"site":"grenoble","uid":"a575","archi":"m3:at86rf231","state":"Alive","network_address":"m3-83.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"9.22"},{"site":"grenoble","uid":"9769","archi":"m3:at86rf231","state":"Alive","network_address":"m3-84.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"8.62"},{"site":"grenoble","uid":"a471","archi":"m3:at86rf231","state":"Alive","network_address":"m3-86.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"7.42"},{"site":"grenoble","uid":"9277","archi":"m3:at86rf231","state":"Alive","network_address":"m3-87.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"6.82"},{"site":"grenoble","uid":"9882","archi":"m3:at86rf231","state":"Alive","network_address":"m3-89.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"5.62"},{"site":"grenoble","uid":"a878","archi":"m3:at86rf231","state":"Alive","network_address":"m3-90.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"5.02"},{"site":"grenoble","uid":"b078","archi":"m3:at86rf231","state":"Alive","network_address":"m3-92.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"3.82"},{"site":"grenoble","uid":"3960","archi":"m3:at86rf231","state":"Alive","network_address":"m3-93.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.76","mobile":0,"x":"3.22"},{"site":"grenoble","uid":"a770","archi":"m3:at86rf231","state":"Alive","network_address":"m3-95.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.52","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b468","archi":"m3:at86rf231","state":"Alive","network_address":"m3-96.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.52","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"b179","archi":"m3:at86rf231","state":"Alive","network_address":"m3-97.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.92","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b069","archi":"m3:at86rf231","state":"Alive","network_address":"m3-98.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.92","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"b277","archi":"m3:at86rf231","state":"Alive","network_address":"m3-99.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b080","archi":"m3:at86rf231","state":"Alive","network_address":"m3-100.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9881","archi":"m3:at86rf231","state":"Alive","network_address":"m3-103.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a775","archi":"m3:at86rf231","state":"Alive","network_address":"m3-104.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a072","archi":"m3:at86rf231","state":"Alive","network_address":"m3-107.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"8477","archi":"m3:at86rf231","state":"Alive","network_address":"m3-108.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a071","archi":"m3:at86rf231","state":"Alive","network_address":"m3-110.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9172","archi":"m3:at86rf231","state":"Alive","network_address":"m3-111.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a578","archi":"m3:at86rf231","state":"Alive","network_address":"m3-112.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"a468","archi":"m3:at86rf231","state":"Alive","network_address":"m3-119.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a469","archi":"m3:at86rf231","state":"Alive","network_address":"m3-120.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"8572","archi":"m3:at86rf231","state":"Alive","network_address":"m3-121.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.63","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b269","archi":"m3:at86rf231","state":"Alive","network_address":"m3-126.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"17.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"8671","archi":"m3:at86rf231","state":"Alive","network_address":"m3-127.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9980","archi":"m3:at86rf231","state":"Alive","network_address":"m3-128.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9371","archi":"m3:at86rf231","state":"Alive","network_address":"m3-137.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.83","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9779","archi":"m3:at86rf231","state":"Alive","network_address":"m3-143.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"c069","archi":"m3:at86rf231","state":"Alive","network_address":"m3-144.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9680","archi":"m3:at86rf231","state":"Alive","network_address":"m3-145.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"11.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9683","archi":"m3:at86rf231","state":"Alive","network_address":"m3-149.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"10.23","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b081","archi":"m3:at86rf231","state":"Alive","network_address":"m3-153.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"a279","archi":"m3:at86rf231","state":"Alive","network_address":"m3-154.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"1861","archi":"m3:at86rf231","state":"Alive","network_address":"m3-156.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"8.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9276","archi":"m3:at86rf231","state":"Alive","network_address":"m3-163.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"b281","archi":"m3:at86rf231","state":"Alive","network_address":"m3-164.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.03","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9478","archi":"m3:at86rf231","state":"Alive","network_address":"m3-165.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"5.43","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9671","archi":"m3:at86rf231","state":"Alive","network_address":"m3-166.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"5.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"8475","archi":"m3:at86rf231","state":"Alive","network_address":"m3-168.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.83","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"c076","archi":"m3:at86rf231","state":"Alive","network_address":"m3-170.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.23","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9678","archi":"m3:at86rf231","state":"Alive","network_address":"m3-172.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.63","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"9381","archi":"m3:at86rf231","state":"Alive","network_address":"m3-173.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.03","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9572","archi":"m3:at86rf231","state":"Alive","network_address":"m3-176.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"2.43","mobile":0,"x":"1.00"},{"site":"grenoble","uid":"3061","archi":"m3:at86rf231","state":"Alive","network_address":"m3-177.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"1.85","mobile":0,"x":"0.40"},{"site":"grenoble","uid":"9169","archi":"m3:at86rf231","state":"Alive","network_address":"m3-183.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"5.15"},{"site":"grenoble","uid":"9168","archi":"m3:at86rf231","state":"Alive","network_address":"m3-184.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"5.75"},{"site":"grenoble","uid":"8979","archi":"m3:at86rf231","state":"Alive","network_address":"m3-186.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"6.95"},{"site":"grenoble","uid":"b882","archi":"m3:at86rf231","state":"Alive","network_address":"m3-190.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"9.35"},{"site":"grenoble","uid":"a376","archi":"m3:at86rf231","state":"Alive","network_address":"m3-193.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"11.15"},{"site":"grenoble","uid":"a670","archi":"m3:at86rf231","state":"Alive","network_address":"m3-195.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"12.35"},{"site":"grenoble","uid":"8569","archi":"m3:at86rf231","state":"Alive","network_address":"m3-199.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"14.75"},{"site":"grenoble","uid":"c376","archi":"m3:at86rf231","state":"Alive","network_address":"m3-200.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"15.35"},{"site":"grenoble","uid":"8476","archi":"m3:at86rf231","state":"Alive","network_address":"m3-201.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"15.95"},{"site":"grenoble","uid":"a183","archi":"m3:at86rf231","state":"Alive","network_address":"m3-202.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"16.55"},{"site":"grenoble","uid":"8967","archi":"m3:at86rf231","state":"Alive","network_address":"m3-205.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.75","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a379","archi":"m3:at86rf231","state":"Alive","network_address":"m3-207.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"1.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b379","archi":"m3:at86rf231","state":"Alive","network_address":"m3-209.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"2.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"8875","archi":"m3:at86rf231","state":"Alive","network_address":"m3-211.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"3.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9175","archi":"m3:at86rf231","state":"Alive","network_address":"m3-215.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9871","archi":"m3:at86rf231","state":"Alive","network_address":"m3-217.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"4.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b582","archi":"m3:at86rf231","state":"Alive","network_address":"m3-218.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"5.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9981","archi":"m3:at86rf231","state":"Alive","network_address":"m3-221.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b768","archi":"m3:at86rf231","state":"Alive","network_address":"m3-223.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"6.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b180","archi":"m3:at86rf231","state":"Alive","network_address":"m3-224.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"c068","archi":"m3:at86rf231","state":"Alive","network_address":"m3-225.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"7.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9283","archi":"m3:at86rf231","state":"Alive","network_address":"m3-228.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"8.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b068","archi":"m3:at86rf231","state":"Alive","network_address":"m3-229.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"8.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"3861","archi":"m3:at86rf231","state":"Alive","network_address":"m3-230.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"8881","archi":"m3:at86rf231","state":"Alive","network_address":"m3-233.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"9.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a083","archi":"m3:at86rf231","state":"Alive","network_address":"m3-238.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"11.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"3761","archi":"m3:at86rf231","state":"Alive","network_address":"m3-240.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a678","archi":"m3:at86rf231","state":"Alive","network_address":"m3-243.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"12.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a982","archi":"m3:at86rf231","state":"Alive","network_address":"m3-247.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"13.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9583","archi":"m3:at86rf231","state":"Alive","network_address":"m3-249.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"14.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a483","archi":"m3:at86rf231","state":"Alive","network_address":"m3-250.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9876","archi":"m3:at86rf231","state":"Alive","network_address":"m3-251.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"15.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b168","archi":"m3:at86rf231","state":"Alive","network_address":"m3-255.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"1660","archi":"m3:at86rf231","state":"Alive","network_address":"m3-256.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"16.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a580","archi":"m3:at86rf231","state":"Alive","network_address":"m3-259.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"17.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9483","archi":"m3:at86rf231","state":"Alive","network_address":"m3-261.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"18.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"c369","archi":"m3:at86rf231","state":"Alive","network_address":"m3-266.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"19.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9681","archi":"m3:at86rf231","state":"Alive","network_address":"m3-268.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"20.43","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b477","archi":"m3:at86rf231","state":"Alive","network_address":"m3-269.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"20.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b380","archi":"m3:at86rf231","state":"Alive","network_address":"m3-270.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"21.03","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a880","archi":"m3:at86rf231","state":"Alive","network_address":"m3-274.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"9771","archi":"m3:at86rf231","state":"Alive","network_address":"m3-275.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.23","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9482","archi":"m3:at86rf231","state":"Alive","network_address":"m3-276.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.83","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"c176","archi":"m3:at86rf231","state":"Alive","network_address":"m3-277.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"22.83","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9780","archi":"m3:at86rf231","state":"Alive","network_address":"m3-279.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"23.43","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"a582","archi":"m3:at86rf231","state":"Alive","network_address":"m3-281.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.03","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"b781","archi":"m3:at86rf231","state":"Alive","network_address":"m3-283.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"24.63","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9875","archi":"m3:at86rf231","state":"Alive","network_address":"m3-284.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"25.23","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"a969","archi":"m3:at86rf231","state":"Alive","network_address":"m3-286.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.00","mobile":0,"x":"18.95"},{"site":"grenoble","uid":"b982","archi":"m3:at86rf231","state":"Alive","network_address":"m3-287.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"26.00","mobile":0,"x":"18.35"},{"site":"grenoble","uid":"9975","archi":"m3:at86rf231","state":"Alive","network_address":"m3-291.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"20.65"},{"site":"grenoble","uid":"8669","archi":"m3:at86rf231","state":"Alive","network_address":"m3-294.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"22.45"},{"site":"grenoble","uid":"9467","archi":"m3:at86rf231","state":"Alive","network_address":"m3-295.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"23.05"},{"site":"grenoble","uid":"9069","archi":"m3:at86rf231","state":"Alive","network_address":"m3-296.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"24.62"},{"site":"grenoble","uid":"9271","archi":"m3:at86rf231","state":"Alive","network_address":"m3-302.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"28.71"},{"site":"grenoble","uid":"8877","archi":"m3:at86rf231","state":"Alive","network_address":"m3-304.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"29.96"},{"site":"grenoble","uid":"8871","archi":"m3:at86rf231","state":"Alive","network_address":"m3-305.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"30.56"},{"site":"grenoble","uid":"9479","archi":"m3:at86rf231","state":"Alive","network_address":"m3-306.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"31.16"},{"site":"grenoble","uid":"b083","archi":"m3:at86rf231","state":"Alive","network_address":"m3-308.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"32.36"},{"site":"grenoble","uid":"8882","archi":"m3:at86rf231","state":"Alive","network_address":"m3-315.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"36.56"},{"site":"grenoble","uid":"0862","archi":"m3:at86rf231","state":"Alive","network_address":"m3-316.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"37.16"},{"site":"grenoble","uid":"a577","archi":"m3:at86rf231","state":"Alive","network_address":"m3-319.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"38.96"},{"site":"grenoble","uid":"a477","archi":"m3:at86rf231","state":"Alive","network_address":"m3-320.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"39.56"},{"site":"grenoble","uid":"a777","archi":"m3:at86rf231","state":"Alive","network_address":"m3-323.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"41.36"},{"site":"grenoble","uid":"a480","archi":"m3:at86rf231","state":"Alive","network_address":"m3-326.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"43.16"},{"site":"grenoble","uid":"0962","archi":"m3:at86rf231","state":"Alive","network_address":"m3-327.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"43.76"},{"site":"grenoble","uid":"b177","archi":"m3:at86rf231","state":"Alive","network_address":"m3-329.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"44.96"},{"site":"grenoble","uid":"b082","archi":"m3:at86rf231","state":"Alive","network_address":"m3-330.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"45.56"},{"site":"grenoble","uid":"a282","archi":"m3:at86rf231","state":"Alive","network_address":"m3-331.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"46.16"},{"site":"grenoble","uid":"8578","archi":"m3:at86rf231","state":"Alive","network_address":"m3-332.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"46.76"},{"site":"grenoble","uid":"a178","archi":"m3:at86rf231","state":"Alive","network_address":"m3-333.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"47.36"},{"site":"grenoble","uid":"b782","archi":"m3:at86rf231","state":"Alive","network_address":"m3-334.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"47.96"},{"site":"grenoble","uid":"9468","archi":"m3:at86rf231","state":"Alive","network_address":"m3-336.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"49.16"},{"site":"grenoble","uid":"a479","archi":"m3:at86rf231","state":"Alive","network_address":"m3-340.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"51.56"},{"site":"grenoble","uid":"b983","archi":"m3:at86rf231","state":"Alive","network_address":"m3-341.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"52.16"},{"site":"grenoble","uid":"b079","archi":"m3:at86rf231","state":"Alive","network_address":"m3-342.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"52.76"},{"site":"grenoble","uid":"9167","archi":"m3:at86rf231","state":"Alive","network_address":"m3-345.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"54.56"},{"site":"grenoble","uid":"b368","archi":"m3:at86rf231","state":"Alive","network_address":"m3-347.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"55.76"},{"site":"grenoble","uid":"8570","archi":"m3:at86rf231","state":"Alive","network_address":"m3-350.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"57.56"},{"site":"grenoble","uid":"9781","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-351.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"58.16"},{"site":"grenoble","uid":"8870","archi":"m3:at86rf231","state":"Alive","network_address":"m3-352.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"58.76"},{"site":"grenoble","uid":"9267","archi":"m3:at86rf231","state":"Alive","network_address":"m3-353.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"59.36"},{"site":"grenoble","uid":"b479","archi":"m3:at86rf231","state":"Alive","network_address":"m3-355.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"60.56"},{"site":"grenoble","uid":"a681","archi":"m3:at86rf231","state":"Alive","network_address":"m3-356.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"61.16"},{"site":"grenoble","uid":"8672","archi":"m3:at86rf231","state":"Alive","network_address":"m3-357.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"61.76"},{"site":"grenoble","uid":"9378","archi":"m3:at86rf231","state":"Alive","network_address":"m3-358.grenoble.iot-lab.info","mobility_type":"null","z":"-0.04","y":"0.94","mobile":0,"x":"62.26"},{"site":"grenoble","uid":"8667","archi":"m3:at86rf231","state":"Alive","network_address":"m3-361.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"35.95"},{"site":"grenoble","uid":"a976","archi":"m3:at86rf231","state":"Alive","network_address":"m3-362.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"36.55"},{"site":"grenoble","uid":"1661","archi":"m3:at86rf231","state":"Alive","network_address":"m3-364.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.92","mobile":0,"x":"37.75"},{"site":"grenoble","uid":"3561","archi":"m3:at86rf231","state":"Alive","network_address":"m3-365.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"38.95"},{"site":"grenoble","uid":"8567","archi":"m3:at86rf231","state":"Alive","network_address":"m3-369.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"41.35"},{"site":"grenoble","uid":"a075","archi":"m3:at86rf231","state":"Alive","network_address":"m3-370.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"46.15"},{"site":"grenoble","uid":"9775","archi":"m3:at86rf231","state":"Alive","network_address":"m3-372.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"47.35"},{"site":"grenoble","uid":"1762","archi":"m3:at86rf231","state":"Alive","network_address":"m3-373.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"47.95"},{"site":"grenoble","uid":"c071","archi":"m3:at86rf231","state":"Alive","network_address":"m3-378.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"53.35"},{"site":"grenoble","uid":"b564","archi":"a8:at86rf231","state":"Alive","network_address":"a8-1.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.28","mobile":0,"x":"20.33"},{"site":"grenoble","uid":"a461","archi":"a8:at86rf231","state":"Alive","network_address":"a8-2.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.28","mobile":0,"x":"20.33"},{"site":"grenoble","uid":"b363","archi":"a8:at86rf231","state":"Alive","network_address":"a8-3.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.28","mobile":0,"x":"20.93"},{"site":"grenoble","uid":"9064","archi":"a8:at86rf231","state":"Alive","network_address":"a8-4.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.33","mobile":0,"x":"21.53"},{"site":"grenoble","uid":"a558","archi":"a8:at86rf231","state":"Alive","network_address":"a8-5.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.33","mobile":0,"x":"21.53"},{"site":"grenoble","uid":"3289","archi":"a8:at86rf231","state":"Alive","network_address":"a8-6.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.33","mobile":0,"x":"22.13"},{"site":"grenoble","uid":"b959","archi":"a8:at86rf231","state":"Alive","network_address":"a8-7.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.33","mobile":0,"x":"22.13"},{"site":"grenoble","uid":"9651","archi":"a8:at86rf231","state":"Alive","network_address":"a8-8.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.33","mobile":0,"x":"22.73"},{"site":"grenoble","uid":"b164","archi":"a8:at86rf231","state":"Alive","network_address":"a8-9.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.33","mobile":0,"x":"23.33"},{"site":"grenoble","uid":"a963","archi":"a8:at86rf231","state":"Alive","network_address":"a8-10.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.33","mobile":0,"x":"23.33"},{"site":"grenoble","uid":"b163","archi":"a8:at86rf231","state":"Alive","network_address":"a8-11.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.80","mobile":0,"x":"23.93"},{"site":"grenoble","uid":"9461","archi":"a8:at86rf231","state":"Alive","network_address":"a8-12.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.80","mobile":0,"x":"23.93"},{"site":"grenoble","uid":"a467","archi":"a8:at86rf231","state":"Alive","network_address":"a8-13.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"24.53"},{"site":"grenoble","uid":"2990","archi":"a8:at86rf231","state":"Alive","network_address":"a8-14.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"25.13"},{"site":"grenoble","uid":"b364","archi":"a8:at86rf231","state":"Alive","network_address":"a8-15.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"25.73"},{"site":"grenoble","uid":"b463","archi":"a8:at86rf231","state":"Alive","network_address":"a8-16.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"26.33"},{"site":"grenoble","uid":"8764","archi":"a8:at86rf231","state":"Alive","network_address":"a8-17.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"26.93"},{"site":"grenoble","uid":"c366","archi":"a8:at86rf231","state":"Alive","network_address":"a8-18.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"27.55"},{"site":"grenoble","uid":"a064","archi":"a8:at86rf231","state":"Alive","network_address":"a8-19.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"28.15"},{"site":"grenoble","uid":"9366","archi":"a8:at86rf231","state":"Alive","network_address":"a8-20.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"28.75"},{"site":"grenoble","uid":"8862","archi":"a8:at86rf231","state":"Alive","network_address":"a8-21.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"29.35"},{"site":"grenoble","uid":"3189","archi":"a8:at86rf231","state":"Alive","network_address":"a8-22.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"29.95"},{"site":"grenoble","uid":"9658","archi":"a8:at86rf231","state":"Alive","network_address":"a8-23.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"30.55"},{"site":"grenoble","uid":"b560","archi":"a8:at86rf231","state":"Alive","network_address":"a8-24.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"31.15"},{"site":"grenoble","uid":"9761","archi":"a8:at86rf231","state":"Alive","network_address":"a8-25.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"31.75"},{"site":"grenoble","uid":"b961","archi":"a8:at86rf231","state":"Alive","network_address":"a8-26.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"32.35"},{"site":"grenoble","uid":"05DF","archi":"a8:at86rf231","state":"Suspected","network_address":"a8-27.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"32.35"},{"site":"grenoble","uid":"2784","archi":"a8:at86rf231","state":"Alive","network_address":"a8-28.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"32.95"},{"site":"grenoble","uid":"c261","archi":"a8:at86rf231","state":"Alive","network_address":"a8-29.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"33.55"},{"site":"grenoble","uid":"8664","archi":"a8:at86rf231","state":"Alive","network_address":"a8-30.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"34.15"},{"site":"grenoble","uid":"8759","archi":"a8:at86rf231","state":"Alive","network_address":"a8-31.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.92","mobile":0,"x":"38.35"},{"site":"grenoble","uid":"9259","archi":"a8:at86rf231","state":"Alive","network_address":"a8-32.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.92","mobile":0,"x":"38.35"},{"site":"grenoble","uid":"9661","archi":"a8:at86rf231","state":"Alive","network_address":"a8-33.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"41.95"},{"site":"grenoble","uid":"c162","archi":"a8:at86rf231","state":"Alive","network_address":"a8-34.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"41.95"},{"site":"grenoble","uid":"3084","archi":"a8:at86rf231","state":"Alive","network_address":"a8-35.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"43.15"},{"site":"grenoble","uid":"3085","archi":"a8:at86rf231","state":"Alive","network_address":"a8-36.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"43.15"},{"site":"grenoble","uid":"b460","archi":"a8:at86rf231","state":"Alive","network_address":"a8-37.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"44.35"},{"site":"grenoble","uid":"a859","archi":"a8:at86rf231","state":"Alive","network_address":"a8-38.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"44.95"},{"site":"grenoble","uid":"a661","archi":"a8:at86rf231","state":"Alive","network_address":"a8-39.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"44.95"},{"site":"grenoble","uid":"9559","archi":"a8:at86rf231","state":"Alive","network_address":"a8-40.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"46.15"},{"site":"grenoble","uid":"a361","archi":"a8:at86rf231","state":"Alive","network_address":"a8-41.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.90","mobile":0,"x":"49.75"},{"site":"grenoble","uid":"9359","archi":"a8:at86rf231","state":"Alive","network_address":"a8-42.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.90","mobile":0,"x":"50.35"},{"site":"grenoble","uid":"9859","archi":"a8:at86rf231","state":"Alive","network_address":"a8-43.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.90","mobile":0,"x":"50.95"},{"site":"grenoble","uid":"b661","archi":"a8:at86rf231","state":"Alive","network_address":"a8-44.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"51.55"},{"site":"grenoble","uid":"8960","archi":"a8:at86rf231","state":"Alive","network_address":"a8-45.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"55.15"},{"site":"grenoble","uid":"3184","archi":"a8:at86rf231","state":"Alive","network_address":"a8-46.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"55.75"},{"site":"grenoble","uid":"a358","archi":"a8:at86rf231","state":"Alive","network_address":"a8-47.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"56.35"},{"site":"grenoble","uid":"b461","archi":"a8:at86rf231","state":"Alive","network_address":"a8-48.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"56.95"},{"site":"grenoble","uid":"a350","archi":"a8:at86rf231","state":"Alive","network_address":"a8-49.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"57.55"},{"site":"grenoble","uid":"b361","archi":"a8:at86rf231","state":"Alive","network_address":"a8-50.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.90","mobile":0,"x":"58.15"},{"site":"grenoble","uid":"b051","archi":"a8:at86rf231","state":"Alive","network_address":"a8-51.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.90","mobile":0,"x":"58.75"},{"site":"grenoble","uid":"b861","archi":"a8:at86rf231","state":"Alive","network_address":"a8-52.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.90","mobile":0,"x":"59.35"},{"site":"grenoble","uid":"2890","archi":"a8:at86rf231","state":"Alive","network_address":"a8-53.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"59.95"},{"site":"grenoble","uid":"a850","archi":"a8:at86rf231","state":"Alive","network_address":"a8-54.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"59.95"},{"site":"grenoble","uid":"c467","archi":"a8:at86rf231","state":"Alive","network_address":"a8-55.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"60.55"},{"site":"grenoble","uid":"1884","archi":"a8:at86rf231","state":"Alive","network_address":"a8-56.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"61.15"},{"site":"grenoble","uid":"2790","archi":"a8:at86rf231","state":"Alive","network_address":"a8-57.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.75","mobile":0,"x":"61.75"},{"site":"grenoble","uid":"c266","archi":"a8:at86rf231","state":"Alive","network_address":"a8-58.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.75","mobile":0,"x":"62.35"},{"site":"grenoble","uid":"b663","archi":"a8:at86rf231","state":"Alive","network_address":"a8-59.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"15.47"},{"site":"grenoble","uid":"1285","archi":"a8:at86rf231","state":"Alive","network_address":"a8-60.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"14.87"},{"site":"grenoble","uid":"a164","archi":"a8:at86rf231","state":"Alive","network_address":"a8-61.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"14.27"},{"site":"grenoble","uid":"3090","archi":"a8:at86rf231","state":"Alive","network_address":"a8-62.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"13.67"},{"site":"grenoble","uid":"a863","archi":"a8:at86rf231","state":"Alive","network_address":"a8-63.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"13.07"},{"site":"grenoble","uid":"2484","archi":"a8:at86rf231","state":"Alive","network_address":"a8-64.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"12.47"},{"site":"grenoble","uid":"b563","archi":"a8:at86rf231","state":"Alive","network_address":"a8-65.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"11.87"},{"site":"grenoble","uid":"a060","archi":"a8:at86rf231","state":"Alive","network_address":"a8-66.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"11.27"},{"site":"grenoble","uid":"a959","archi":"a8:at86rf231","state":"Alive","network_address":"a8-67.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"10.67"},{"site":"grenoble","uid":"c064","archi":"a8:at86rf231","state":"Alive","network_address":"a8-68.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"10.07"},{"site":"grenoble","uid":"9659","archi":"a8:at86rf231","state":"Alive","network_address":"a8-69.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"9.47"},{"site":"grenoble","uid":"8963","archi":"a8:at86rf231","state":"Alive","network_address":"a8-70.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"8.87"},{"site":"grenoble","uid":"b458","archi":"a8:at86rf231","state":"Alive","network_address":"a8-71.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"8.27"},{"site":"grenoble","uid":"2684","archi":"a8:at86rf231","state":"Alive","network_address":"a8-72.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"7.67"},{"site":"grenoble","uid":"9760","archi":"a8:at86rf231","state":"Alive","network_address":"a8-73.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"7.07"},{"site":"grenoble","uid":"a359","archi":"a8:at86rf231","state":"Alive","network_address":"a8-74.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"6.47"},{"site":"grenoble","uid":"2886","archi":"a8:at86rf231","state":"Alive","network_address":"a8-75.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"5.87"},{"site":"grenoble","uid":"b859","archi":"a8:at86rf231","state":"Alive","network_address":"a8-76.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"5.27"},{"site":"grenoble","uid":"a459","archi":"a8:at86rf231","state":"Alive","network_address":"a8-77.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"25.73","mobile":0,"x":"4.57"},{"site":"grenoble","uid":"b762","archi":"a8:at86rf231","state":"Alive","network_address":"a8-78.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"5.50"},{"site":"grenoble","uid":"8863","archi":"a8:at86rf231","state":"Alive","network_address":"a8-79.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"6.10"},{"site":"grenoble","uid":"3685","archi":"a8:at86rf231","state":"Alive","network_address":"a8-80.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"6.70"},{"site":"grenoble","uid":"3586","archi":"a8:at86rf231","state":"Alive","network_address":"a8-81.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"7.30"},{"site":"grenoble","uid":"1786","archi":"a8:at86rf231","state":"Alive","network_address":"a8-82.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"7.90"},{"site":"grenoble","uid":"2687","archi":"a8:at86rf231","state":"Alive","network_address":"a8-83.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"8.50"},{"site":"grenoble","uid":"1485","archi":"a8:at86rf231","state":"Alive","network_address":"a8-84.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"9.10"},{"site":"grenoble","uid":"b262","archi":"a8:at86rf231","state":"Alive","network_address":"a8-85.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"9.70"},{"site":"grenoble","uid":"3686","archi":"a8:at86rf231","state":"Alive","network_address":"a8-86.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"10.30"},{"site":"grenoble","uid":"9962","archi":"a8:at86rf231","state":"Alive","network_address":"a8-87.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"10.90"},{"site":"grenoble","uid":"a762","archi":"a8:at86rf231","state":"Alive","network_address":"a8-88.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"11.50"},{"site":"grenoble","uid":"2086","archi":"a8:at86rf231","state":"Alive","network_address":"a8-89.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"12.10"},{"site":"grenoble","uid":"b062","archi":"a8:at86rf231","state":"Alive","network_address":"a8-90.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"12.70"},{"site":"grenoble","uid":"2487","archi":"a8:at86rf231","state":"Alive","network_address":"a8-91.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"13.30"},{"site":"grenoble","uid":"b162","archi":"a8:at86rf231","state":"Alive","network_address":"a8-92.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"13.90"},{"site":"grenoble","uid":"a962","archi":"a8:at86rf231","state":"Alive","network_address":"a8-93.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"14.50"},{"site":"grenoble","uid":"3386","archi":"a8:at86rf231","state":"Alive","network_address":"a8-94.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"0.04","mobile":0,"x":"15.10"},{"site":"grenoble","uid":"3687","archi":"a8:at86rf231","state":"Alive","network_address":"a8-95.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"a562","archi":"a8:at86rf231","state":"Alive","network_address":"a8-96.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"1586","archi":"a8:at86rf231","state":"Alive","network_address":"a8-97.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b058","archi":"a8:at86rf231","state":"Alive","network_address":"a8-98.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"c363","archi":"a8:at86rf231","state":"Alive","network_address":"a8-99.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"3.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"3185","archi":"a8:at86rf231","state":"Alive","network_address":"a8-100.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"3.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"2587","archi":"a8:at86rf231","state":"Alive","network_address":"a8-101.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"4.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9762","archi":"a8:at86rf231","state":"Alive","network_address":"a8-102.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"4.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"2885","archi":"a8:at86rf231","state":"Alive","network_address":"a8-103.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"5.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b265","archi":"a8:at86rf231","state":"Alive","network_address":"a8-104.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"5.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b161","archi":"a8:at86rf231","state":"Alive","network_address":"a8-105.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"5.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b260","archi":"a8:at86rf231","state":"Alive","network_address":"a8-106.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"6.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"c165","archi":"a8:at86rf231","state":"Alive","network_address":"a8-107.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"6.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b865","archi":"a8:at86rf231","state":"Alive","network_address":"a8-108.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"6.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"3684","archi":"a8:at86rf231","state":"Alive","network_address":"a8-109.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"7.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"05DF","archi":"a8:at86rf231","state":"Suspected","network_address":"a8-110.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"8.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"a858","archi":"a8:at86rf231","state":"Alive","network_address":"a8-111.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"8.70","mobile":0,"x":"20.45"},{"site":"grenoble","uid":"a059","archi":"a8:at86rf231","state":"Alive","network_address":"a8-112.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"8.70","mobile":0,"x":"20.45"},{"site":"grenoble","uid":"9759","archi":"a8:at86rf231","state":"Alive","network_address":"a8-113.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"9.30","mobile":0,"x":"20.45"},{"site":"grenoble","uid":"9362","archi":"a8:at86rf231","state":"Alive","network_address":"a8-114.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"9.90","mobile":0,"x":"20.45"},{"site":"grenoble","uid":"a751","archi":"a8:at86rf231","state":"Alive","network_address":"a8-115.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"10.50","mobile":0,"x":"20.45"},{"site":"grenoble","uid":"b359","archi":"a8:at86rf231","state":"Alive","network_address":"a8-116.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"11.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9060","archi":"a8:at86rf231","state":"Alive","network_address":"a8-117.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"11.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9059","archi":"a8:at86rf231","state":"Alive","network_address":"a8-118.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"11.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"a764","archi":"a8:at86rf231","state":"Alive","network_address":"a8-119.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"12.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9959","archi":"a8:at86rf231","state":"Alive","network_address":"a8-120.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"12.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b360","archi":"a8:at86rf231","state":"Alive","network_address":"a8-121.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"13.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9062","archi":"a8:at86rf231","state":"Alive","network_address":"a8-122.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"13.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b960","archi":"a8:at86rf231","state":"Alive","network_address":"a8-123.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"14.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"c066","archi":"a8:at86rf231","state":"Alive","network_address":"a8-124.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"14.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9562","archi":"a8:at86rf231","state":"Alive","network_address":"a8-125.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"14.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b760","archi":"a8:at86rf231","state":"Alive","network_address":"a8-126.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"15.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b559","archi":"a8:at86rf231","state":"Alive","network_address":"a8-127.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"15.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"a659","archi":"a8:at86rf231","state":"Alive","network_address":"a8-128.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"16.50","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9063","archi":"a8:at86rf231","state":"Alive","network_address":"a8-129.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"17.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b864","archi":"a8:at86rf231","state":"Alive","network_address":"a8-130.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"17.10","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"a563","archi":"a8:at86rf231","state":"Alive","network_address":"a8-131.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"17.70","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"b266","archi":"a8:at86rf231","state":"Alive","network_address":"a8-132.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"18.30","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"8563","archi":"a8:at86rf231","state":"Alive","network_address":"a8-133.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"18.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9565","archi":"a8:at86rf231","state":"Alive","network_address":"a8-134.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"18.90","mobile":0,"x":"19.75"},{"site":"grenoble","uid":"9353","archi":"a8:at86rf231","state":"Alive","network_address":"a8-135.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"20.10","mobile":0,"x":"20.65"},{"site":"grenoble","uid":"9263","archi":"a8:at86rf231","state":"Alive","network_address":"a8-136.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"20.10","mobile":0,"x":"20.65"},{"site":"grenoble","uid":"b664","archi":"a8:at86rf231","state":"Alive","network_address":"a8-137.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"20.60","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"9963","archi":"a8:at86rf231","state":"Alive","network_address":"a8-138.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"21.20","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"a264","archi":"a8:at86rf231","state":"Alive","network_address":"a8-139.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"21.20","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"05DF","archi":"a8:at86rf231","state":"Alive","network_address":"a8-140.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"21.80","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"b962","archi":"a8:at86rf231","state":"Alive","network_address":"a8-141.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"22.40","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"b467","archi":"a8:at86rf231","state":"Alive","network_address":"a8-142.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"22.40","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"a052","archi":"a8:at86rf231","state":"Alive","network_address":"a8-143.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"23.00","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"b867","archi":"a8:at86rf231","state":"Alive","network_address":"a8-144.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"23.60","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"a250","archi":"a8:at86rf231","state":"Alive","network_address":"a8-145.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"24.20","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"9162","archi":"a8:at86rf231","state":"Alive","network_address":"a8-146.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.20","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"8864","archi":"a8:at86rf231","state":"Alive","network_address":"a8-147.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"24.80","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"9363","archi":"a8:at86rf231","state":"Alive","network_address":"a8-148.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"25.30","mobile":0,"x":"19.91"},{"site":"grenoble","uid":"8860","archi":"a8:at86rf231","state":"Alive","network_address":"a8-149.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"20.09"},{"site":"grenoble","uid":"2385","archi":"a8:at86rf231","state":"Alive","network_address":"a8-150.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"20.09"},{"site":"grenoble","uid":"c264","archi":"a8:at86rf231","state":"Alive","network_address":"a8-151.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"20.69"},{"site":"grenoble","uid":"3087","archi":"a8:at86rf231","state":"Alive","network_address":"a8-152.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"21.29"},{"site":"grenoble","uid":"2585","archi":"a8:at86rf231","state":"Alive","network_address":"a8-153.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"21.29"},{"site":"grenoble","uid":"2586","archi":"a8:at86rf231","state":"Alive","network_address":"a8-154.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"21.89"},{"site":"grenoble","uid":"3285","archi":"a8:at86rf231","state":"Alive","network_address":"a8-155.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"21.89"},{"site":"grenoble","uid":"2285","archi":"a8:at86rf231","state":"Alive","network_address":"a8-156.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"23.09"},{"site":"grenoble","uid":"9763","archi":"a8:at86rf231","state":"Alive","network_address":"a8-157.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"23.09"},{"site":"grenoble","uid":"1286","archi":"a8:at86rf231","state":"Alive","network_address":"a8-158.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"23.82"},{"site":"grenoble","uid":"a462","archi":"a8:at86rf231","state":"Alive","network_address":"a8-159.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"23.82"},{"site":"grenoble","uid":"3187","archi":"a8:at86rf231","state":"Alive","network_address":"a8-160.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.66","mobile":0,"x":"24.17"},{"site":"grenoble","uid":"2187","archi":"a8:at86rf231","state":"Alive","network_address":"a8-161.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"26.49"},{"site":"grenoble","uid":"3486","archi":"a8:at86rf231","state":"Alive","network_address":"a8-162.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"26.49"},{"site":"grenoble","uid":"2085","archi":"a8:at86rf231","state":"Alive","network_address":"a8-163.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"27.29"},{"site":"grenoble","uid":"8760","archi":"a8:at86rf231","state":"Alive","network_address":"a8-164.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"27.29"},{"site":"grenoble","uid":"3885","archi":"a8:at86rf231","state":"Alive","network_address":"a8-165.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"27.89"},{"site":"grenoble","uid":"1385","archi":"a8:at86rf231","state":"Alive","network_address":"a8-166.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"28.49"},{"site":"grenoble","uid":"2985","archi":"a8:at86rf231","state":"Alive","network_address":"a8-167.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"29.09"},{"site":"grenoble","uid":"1886","archi":"a8:at86rf231","state":"Alive","network_address":"a8-168.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"29.69"},{"site":"grenoble","uid":"2584","archi":"a8:at86rf231","state":"Alive","network_address":"a8-169.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"29.69"},{"site":"grenoble","uid":"b562","archi":"a8:at86rf231","state":"Alive","network_address":"a8-170.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"30.29"},{"site":"grenoble","uid":"3089","archi":"a8:at86rf231","state":"Alive","network_address":"a8-171.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"30.29"},{"site":"grenoble","uid":"c065","archi":"a8:at86rf231","state":"Alive","network_address":"a8-172.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"30.89"},{"site":"grenoble","uid":"0985","archi":"a8:at86rf231","state":"Alive","network_address":"a8-173.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"31.49"},{"site":"grenoble","uid":"b065","archi":"a8:at86rf231","state":"Alive","network_address":"a8-174.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"31.49"},{"site":"grenoble","uid":"b462","archi":"a8:at86rf231","state":"Alive","network_address":"a8-175.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"32.09"},{"site":"grenoble","uid":"c364","archi":"a8:at86rf231","state":"Alive","network_address":"a8-176.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"32.09"},{"site":"grenoble","uid":"9462","archi":"a8:at86rf231","state":"Alive","network_address":"a8-177.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"32.69"},{"site":"grenoble","uid":"1585","archi":"a8:at86rf231","state":"Alive","network_address":"a8-178.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"33.29"},{"site":"grenoble","uid":"a050","archi":"a8:at86rf231","state":"Alive","network_address":"a8-179.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"33.89"},{"site":"grenoble","uid":"c062","archi":"a8:at86rf231","state":"Alive","network_address":"a8-180.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"34.49"},{"site":"grenoble","uid":"b362","archi":"a8:at86rf231","state":"Alive","network_address":"a8-181.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"35.09"},{"site":"grenoble","uid":"a360","archi":"a8:at86rf231","state":"Alive","network_address":"a8-182.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"35.69"},{"site":"grenoble","uid":"8859","archi":"a8:at86rf231","state":"Alive","network_address":"a8-183.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"36.29"},{"site":"grenoble","uid":"a964","archi":"a8:at86rf231","state":"Alive","network_address":"a8-184.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"36.89"},{"site":"grenoble","uid":"8661","archi":"a8:at86rf231","state":"Alive","network_address":"a8-185.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"37.49"},{"site":"grenoble","uid":"b860","archi":"a8:at86rf231","state":"Alive","network_address":"a8-186.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"38.09"},{"site":"grenoble","uid":"b159","archi":"a8:at86rf231","state":"Alive","network_address":"a8-187.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"38.69"},{"site":"grenoble","uid":"3485","archi":"a8:at86rf231","state":"Alive","network_address":"a8-188.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"39.29"},{"site":"grenoble","uid":"b966","archi":"a8:at86rf231","state":"Alive","network_address":"a8-189.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"39.29"},{"site":"grenoble","uid":"8761","archi":"a8:at86rf231","state":"Alive","network_address":"a8-190.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"39.89"},{"site":"grenoble","uid":"a660","archi":"a8:at86rf231","state":"Alive","network_address":"a8-191.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"40.49"},{"site":"grenoble","uid":"9758","archi":"a8:at86rf231","state":"Alive","network_address":"a8-192.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"41.09"},{"site":"grenoble","uid":"1885","archi":"a8:at86rf231","state":"Alive","network_address":"a8-193.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"41.69"},{"site":"grenoble","uid":"9664","archi":"a8:at86rf231","state":"Alive","network_address":"a8-194.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"42.29"},{"site":"grenoble","uid":"9460","archi":"a8:at86rf231","state":"Alive","network_address":"a8-195.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"42.36"},{"site":"grenoble","uid":"a960","archi":"a8:at86rf231","state":"Alive","network_address":"a8-196.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"42.89"},{"site":"grenoble","uid":"a262","archi":"a8:at86rf231","state":"Alive","network_address":"a8-197.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"43.49"},{"site":"grenoble","uid":"b259","archi":"a8:at86rf231","state":"Alive","network_address":"a8-198.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"43.49"},{"site":"grenoble","uid":"8961","archi":"a8:at86rf231","state":"Alive","network_address":"a8-199.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"45.96"},{"site":"grenoble","uid":"3587","archi":"a8:at86rf231","state":"Alive","network_address":"a8-200.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"45.90"},{"site":"grenoble","uid":"2887","archi":"a8:at86rf231","state":"Alive","network_address":"a8-201.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"46.49"},{"site":"grenoble","uid":"9958","archi":"a8:at86rf231","state":"Alive","network_address":"a8-202.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"47.09"},{"site":"grenoble","uid":"a150","archi":"a8:at86rf231","state":"Alive","network_address":"a8-203.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"47.69"},{"site":"grenoble","uid":"2087","archi":"a8:at86rf231","state":"Alive","network_address":"a8-204.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"48.29"},{"site":"grenoble","uid":"8662","archi":"a8:at86rf231","state":"Alive","network_address":"a8-205.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"48.29"},{"site":"grenoble","uid":"8959","archi":"a8:at86rf231","state":"Alive","network_address":"a8-206.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"48.89"},{"site":"grenoble","uid":"a951","archi":"a8:at86rf231","state":"Alive","network_address":"a8-207.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"2.34","mobile":0,"x":"49.49"},{"site":"grenoble","uid":"1685","archi":"a8:at86rf231","state":"Alive","network_address":"a8-208.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"50.09"},{"site":"grenoble","uid":"9161","archi":"a8:at86rf231","state":"Alive","network_address":"a8-209.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"51.29"},{"site":"grenoble","uid":"b759","archi":"a8:at86rf231","state":"Alive","network_address":"a8-210.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"51.29"},{"site":"grenoble","uid":"2386","archi":"a8:at86rf231","state":"Alive","network_address":"a8-211.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"51.89"},{"site":"grenoble","uid":"9563","archi":"a8:at86rf231","state":"Alive","network_address":"a8-212.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"52.49"},{"site":"grenoble","uid":"9861","archi":"a8:at86rf231","state":"Alive","network_address":"a8-213.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"53.09"},{"site":"grenoble","uid":"3884","archi":"a8:at86rf231","state":"Alive","network_address":"a8-214.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"53.69"},{"site":"grenoble","uid":"a460","archi":"a8:at86rf231","state":"Alive","network_address":"a8-215.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"54.29"},{"site":"grenoble","uid":"b459","archi":"a8:at86rf231","state":"Alive","network_address":"a8-216.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"54.89"},{"site":"grenoble","uid":"1785","archi":"a8:at86rf231","state":"Alive","network_address":"a8-217.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"55.49"},{"site":"grenoble","uid":"a851","archi":"a8:at86rf231","state":"Alive","network_address":"a8-218.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"56.09"},{"site":"grenoble","uid":"9464","archi":"a8:at86rf231","state":"Alive","network_address":"a8-219.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"56.69"},{"site":"grenoble","uid":"a861","archi":"a8:at86rf231","state":"Alive","network_address":"a8-220.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"57.29"},{"site":"grenoble","uid":"a664","archi":"a8:at86rf231","state":"Alive","network_address":"a8-221.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"2.34","mobile":0,"x":"57.89"},{"site":"grenoble","uid":"2084","archi":"a8:at86rf231","state":"Alive","network_address":"a8-222.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"57.89"},{"site":"grenoble","uid":"05DF","archi":"a8:at86rf231","state":"Suspected","network_address":"a8-223.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"58.49"},{"site":"grenoble","uid":"8561","archi":"a8:at86rf231","state":"Alive","network_address":"a8-224.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"59.09"},{"site":"grenoble","uid":"b558","archi":"a8:at86rf231","state":"Alive","network_address":"a8-225.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"59.69"},{"site":"grenoble","uid":"b561","archi":"a8:at86rf231","state":"Alive","network_address":"a8-226.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"60.29"},{"site":"grenoble","uid":"9663","archi":"a8:at86rf231","state":"Alive","network_address":"a8-227.grenoble.iot-lab.info","mobility_type":"null","z":"3.23","y":"1.54","mobile":0,"x":"60.89"},{"site":"grenoble","uid":"9950","archi":"a8:at86rf231","state":"Alive","network_address":"a8-228.grenoble.iot-lab.info","mobility_type":"null","z":"2.63","y":"1.54","mobile":0,"x":"61.49"},{"site":"strasbourg","uid":"9355","archi":"a8:at86rf231","state":"Alive","network_address":"a8-1.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"9455","archi":"a8:at86rf231","state":"Alive","network_address":"a8-2.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"a456","archi":"a8:at86rf231","state":"Alive","network_address":"a8-3.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"b857","archi":"a8:at86rf231","state":"Alive","network_address":"a8-4.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"9255","archi":"a8:at86rf231","state":"Alive","network_address":"a8-5.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"a155","archi":"a8:at86rf231","state":"Alive","network_address":"a8-6.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"a956","archi":"a8:at86rf231","state":"Alive","network_address":"a8-7.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"a856","archi":"a8:at86rf231","state":"Alive","network_address":"a8-8.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"b556","archi":"a8:at86rf231","state":"Alive","network_address":"a8-9.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"a656","archi":"a8:at86rf231","state":"Alive","network_address":"a8-10.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"a256","archi":"a8:at86rf231","state":"Alive","network_address":"a8-11.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"9155","archi":"a8:at86rf231","state":"Alive","network_address":"a8-12.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"9555","archi":"a8:at86rf231","state":"Alive","network_address":"a8-13.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"9656","archi":"a8:at86rf231","state":"Alive","network_address":"a8-14.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"11.00"},{"site":"lille","uid":"3051","archi":"m3:at86rf231","state":"Alive","network_address":"m3-2.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"0.82"},{"site":"lille","uid":"3259","archi":"m3:at86rf231","state":"Alive","network_address":"m3-4.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"2.02"},{"site":"lille","uid":"1453","archi":"m3:at86rf231","state":"Alive","network_address":"m3-5.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"3.22"},{"site":"lille","uid":"a590","archi":"m3:at86rf231","state":"Alive","network_address":"m3-7.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"4.42"},{"site":"lille","uid":"8974","archi":"m3:at86rf231","state":"Alive","network_address":"m3-8.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"4.42"},{"site":"lille","uid":"1158","archi":"m3:at86rf231","state":"Alive","network_address":"m3-12.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"6.82"},{"site":"lille","uid":"3455","archi":"m3:at86rf231","state":"Alive","network_address":"m3-13.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"8.02"},{"site":"lille","uid":"2655","archi":"m3:at86rf231","state":"Alive","network_address":"m3-16.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"9.22"},{"site":"lille","uid":"2355","archi":"m3:at86rf231","state":"Alive","network_address":"m3-17.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"10.42"},{"site":"lille","uid":"3353","archi":"m3:at86rf231","state":"Alive","network_address":"m3-20.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"11.62"},{"site":"lille","uid":"2652","archi":"m3:at86rf231","state":"Alive","network_address":"m3-21.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"12.82"},{"site":"lille","uid":"2758","archi":"m3:at86rf231","state":"Alive","network_address":"m3-22.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"0.1","mobile":0,"x":"12.82"},{"site":"lille","uid":"1656","archi":"m3:at86rf231","state":"Alive","network_address":"m3-25.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.1","mobile":0,"x":"15.22"},{"site":"lille","uid":"3862","archi":"m3:at86rf231","state":"Alive","network_address":"m3-30.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"2.02"},{"site":"lille","uid":"0761","archi":"m3:at86rf231","state":"Alive","network_address":"m3-31.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"3.22"},{"site":"lille","uid":"b772","archi":"m3:at86rf231","state":"Alive","network_address":"m3-35.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"8.02"},{"site":"lille","uid":"b189","archi":"m3:at86rf231","state":"Alive","network_address":"m3-36.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"9.22"},{"site":"lille","uid":"a489","archi":"m3:at86rf231","state":"Alive","network_address":"m3-37.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"10.42"},{"site":"lille","uid":"b870","archi":"m3:at86rf231","state":"Alive","network_address":"m3-41.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"0.3","mobile":0,"x":"15.22"},{"site":"lille","uid":"c473","archi":"m3:at86rf231","state":"Alive","network_address":"m3-43.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"0.3","mobile":0,"x":"16.1"},{"site":"lille","uid":"1161","archi":"m3:at86rf231","state":"Alive","network_address":"m3-45.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.5","mobile":0,"x":"0.1"},{"site":"lille","uid":"a090","archi":"m3:at86rf231","state":"Alive","network_address":"m3-46.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"1.5","mobile":0,"x":"0.1"},{"site":"lille","uid":"1651","archi":"m3:at86rf231","state":"Alive","network_address":"m3-48.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"2.02"},{"site":"lille","uid":"c070","archi":"m3:at86rf231","state":"Alive","network_address":"m3-50.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"4.42"},{"site":"lille","uid":"b372","archi":"m3:at86rf231","state":"Alive","network_address":"m3-53.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"8.02"},{"site":"lille","uid":"3759","archi":"m3:at86rf231","state":"Alive","network_address":"m3-55.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"10.42"},{"site":"lille","uid":"1852","archi":"m3:at86rf231","state":"Alive","network_address":"m3-58.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"14.02"},{"site":"lille","uid":"2154","archi":"m3:at86rf231","state":"Alive","network_address":"m3-59.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"1.5","mobile":0,"x":"15.22"},{"site":"lille","uid":"0961","archi":"m3:at86rf231","state":"Alive","network_address":"m3-60.lille.iot-lab.info","mobility_type":"null","z":"2.4","y":"1.5","mobile":0,"x":"16.1"},{"site":"lille","uid":"1657","archi":"m3:at86rf231","state":"Alive","network_address":"m3-61.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"1.5","mobile":0,"x":"16.1"},{"site":"lille","uid":"3758","archi":"m3:at86rf231","state":"Alive","network_address":"m3-62.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"1.5","mobile":0,"x":"16.1"},{"site":"lille","uid":"2854","archi":"m3:at86rf231","state":"Alive","network_address":"m3-68.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"4.42"},{"site":"lille","uid":"9370","archi":"m3:at86rf231","state":"Alive","network_address":"m3-69.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"5.62"},{"site":"lille","uid":"3258","archi":"m3:at86rf231","state":"Alive","network_address":"m3-75.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"12.82"},{"site":"lille","uid":"9977","archi":"m3:at86rf231","state":"Alive","network_address":"m3-77.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"2.7","mobile":0,"x":"15.22"},{"site":"lille","uid":"3052","archi":"m3:at86rf231","state":"Alive","network_address":"m3-78.lille.iot-lab.info","mobility_type":"null","z":"2.4","y":"2.7","mobile":0,"x":"16.1"},{"site":"lille","uid":"1454","archi":"m3:at86rf231","state":"Alive","network_address":"m3-81.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"3.9","mobile":0,"x":"0.1"},{"site":"lille","uid":"1556","archi":"m3:at86rf231","state":"Alive","network_address":"m3-84.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"2.02"},{"site":"lille","uid":"b771","archi":"m3:at86rf231","state":"Alive","network_address":"m3-86.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"4.42"},{"site":"lille","uid":"9273","archi":"m3:at86rf231","state":"Alive","network_address":"m3-93.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"3.9","mobile":0,"x":"12.82"},{"site":"lille","uid":"0857","archi":"m3:at86rf231","state":"Alive","network_address":"m3-96.lille.iot-lab.info","mobility_type":"null","z":"2.4","y":"3.9","mobile":0,"x":"16.1"},{"site":"lille","uid":"9873","archi":"m3:at86rf231","state":"Alive","network_address":"m3-98.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"3.9","mobile":0,"x":"16.1"},{"site":"lille","uid":"9070","archi":"m3:at86rf231","state":"Alive","network_address":"m3-99.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.1","mobile":0,"x":"0.1"},{"site":"lille","uid":"1951","archi":"m3:at86rf231","state":"Alive","network_address":"m3-101.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"0.82"},{"site":"lille","uid":"1654","archi":"m3:at86rf231","state":"Alive","network_address":"m3-103.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"3.22"},{"site":"lille","uid":"2855","archi":"m3:at86rf231","state":"Alive","network_address":"m3-105.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"5.62"},{"site":"lille","uid":"b289","archi":"m3:at86rf231","state":"Alive","network_address":"m3-107.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"8.02"},{"site":"lille","uid":"0958","archi":"m3:at86rf231","state":"Alive","network_address":"m3-109.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"10.42"},{"site":"lille","uid":"a270","archi":"m3:at86rf231","state":"Alive","network_address":"m3-112.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"5.1","mobile":0,"x":"14.02"},{"site":"lille","uid":"1154","archi":"m3:at86rf231","state":"Alive","network_address":"m3-117.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.45","mobile":0,"x":"5.42"},{"site":"lille","uid":"1356","archi":"m3:at86rf231","state":"Alive","network_address":"m3-119.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"5.45","mobile":0,"x":"10.82"},{"site":"lille","uid":"0758","archi":"m3:at86rf231","state":"Alive","network_address":"m3-120.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"5.45","mobile":0,"x":"10.82"},{"site":"lille","uid":"8473","archi":"m3:at86rf231","state":"Alive","network_address":"m3-123.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"0.82"},{"site":"lille","uid":"b471","archi":"m3:at86rf231","state":"Alive","network_address":"m3-124.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"2.02"},{"site":"lille","uid":"1956","archi":"m3:at86rf231","state":"Alive","network_address":"m3-126.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"4.42"},{"site":"lille","uid":"1159","archi":"m3:at86rf231","state":"Alive","network_address":"m3-129.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"6.3","mobile":0,"x":"8.02"},{"site":"lille","uid":"2650","archi":"m3:at86rf231","state":"Alive","network_address":"m3-137.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"0.82"},{"site":"lille","uid":"a990","archi":"m3:at86rf231","state":"Alive","network_address":"m3-139.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"3.22"},{"site":"lille","uid":"3155","archi":"m3:at86rf231","state":"Alive","network_address":"m3-141.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"5.62"},{"site":"lille","uid":"9877","archi":"m3:at86rf231","state":"Alive","network_address":"m3-146.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"11.62"},{"site":"lille","uid":"1359","archi":"m3:at86rf231","state":"Alive","network_address":"m3-147.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"7.5","mobile":0,"x":"12.82"},{"site":"lille","uid":"b972","archi":"m3:at86rf231","state":"Alive","network_address":"m3-150.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"7.5","mobile":0,"x":"14.18"},{"site":"lille","uid":"b173","archi":"m3:at86rf231","state":"Alive","network_address":"m3-151.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"0.82"},{"site":"lille","uid":"c073","archi":"m3:at86rf231","state":"Alive","network_address":"m3-152.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"2.02"},{"site":"lille","uid":"2850","archi":"m3:at86rf231","state":"Alive","network_address":"m3-153.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"3.22"},{"site":"lille","uid":"3254","archi":"m3:at86rf231","state":"Alive","network_address":"m3-154.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"4.42"},{"site":"lille","uid":"3359","archi":"m3:at86rf231","state":"Alive","network_address":"m3-155.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"5.62"},{"site":"lille","uid":"b472","archi":"m3:at86rf231","state":"Alive","network_address":"m3-158.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"9.22"},{"site":"lille","uid":"2257","archi":"m3:at86rf231","state":"Alive","network_address":"m3-162.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"8.7","mobile":0,"x":"14.02"},{"site":"lille","uid":"8673","archi":"m3:at86rf231","state":"Alive","network_address":"m3-164.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"8.7","mobile":0,"x":"14.18"},{"site":"lille","uid":"a070","archi":"m3:at86rf231","state":"Alive","network_address":"m3-165.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"0.82"},{"site":"lille","uid":"c373","archi":"m3:at86rf231","state":"Alive","network_address":"m3-166.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"0.82"},{"site":"lille","uid":"1355","archi":"m3:at86rf231","state":"Alive","network_address":"m3-167.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"2.02"},{"site":"lille","uid":"3159","archi":"m3:at86rf231","state":"Alive","network_address":"m3-168.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"2.02"},{"site":"lille","uid":"2959","archi":"m3:at86rf231","state":"Alive","network_address":"m3-171.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"4.42"},{"site":"lille","uid":"a771","archi":"m3:at86rf231","state":"Alive","network_address":"m3-172.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"4.42"},{"site":"lille","uid":"3962","archi":"m3:at86rf231","state":"Alive","network_address":"m3-175.lille.iot-lab.info","mobility_type":"null","z":"1.5","y":"9.16","mobile":0,"x":"8.02"},{"site":"lille","uid":"b970","archi":"m3:at86rf231","state":"Alive","network_address":"m3-176.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.16","mobile":0,"x":"8.02"},{"site":"lille","uid":"2456","archi":"m3:at86rf231","state":"Alive","network_address":"m3-180.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"2.02"},{"site":"lille","uid":"a873","archi":"m3:at86rf231","state":"Alive","network_address":"m3-183.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"6.82"},{"site":"lille","uid":"3059","archi":"m3:at86rf231","state":"Alive","network_address":"m3-185.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"9.22"},{"site":"lille","uid":"a373","archi":"m3:at86rf231","state":"Alive","network_address":"m3-186.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"10.42"},{"site":"lille","uid":"a289","archi":"m3:at86rf231","state":"Alive","network_address":"m3-189.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"9.9","mobile":0,"x":"14.02"},{"site":"lille","uid":"a490","archi":"m3:at86rf231","state":"Alive","network_address":"m3-191.lille.iot-lab.info","mobility_type":"null","z":"0.6","y":"9.9","mobile":0,"x":"14.18"},{"site":"lille","uid":"a573","archi":"m3:at86rf231","state":"Alive","network_address":"m3-192.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"0.82"},{"site":"lille","uid":"1455","archi":"m3:at86rf231","state":"Alive","network_address":"m3-198.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"8.02"},{"site":"lille","uid":"1652","archi":"m3:at86rf231","state":"Alive","network_address":"m3-199.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"9.22"},{"site":"lille","uid":"a871","archi":"m3:at86rf231","state":"Alive","network_address":"m3-201.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"11.1","mobile":0,"x":"11.62"},{"site":"lille","uid":"1857","archi":"m3:at86rf231","state":"Alive","network_address":"m3-205.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"0.82"},{"site":"lille","uid":"3659","archi":"m3:at86rf231","state":"Alive","network_address":"m3-206.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"2.02"},{"site":"lille","uid":"2651","archi":"m3:at86rf231","state":"Alive","network_address":"m3-207.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"3.22"},{"site":"lille","uid":"8873","archi":"m3:at86rf231","state":"Alive","network_address":"m3-208.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"12.3","mobile":0,"x":"4.42"},{"site":"lille","uid":"b288","archi":"m3:at86rf231","state":"Alive","network_address":"m3-222.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"5.62"},{"site":"lille","uid":"b070","archi":"m3:at86rf231","state":"Alive","network_address":"m3-224.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"8.02"},{"site":"lille","uid":"1357","archi":"m3:at86rf231","state":"Alive","network_address":"m3-225.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"9.22"},{"site":"lille","uid":"0959","archi":"m3:at86rf231","state":"Alive","network_address":"m3-227.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"13.5","mobile":0,"x":"11.62"},{"site":"lille","uid":"2159","archi":"m3:at86rf231","state":"Alive","network_address":"m3-231.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"0.82"},{"site":"lille","uid":"2251","archi":"m3:at86rf231","state":"Alive","network_address":"m3-234.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"4.42"},{"site":"lille","uid":"a889","archi":"m3:at86rf231","state":"Alive","network_address":"m3-235.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"5.62"},{"site":"lille","uid":"1658","archi":"m3:at86rf231","state":"Alive","network_address":"m3-237.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"8.02"},{"site":"lille","uid":"2054","archi":"m3:at86rf231","state":"Alive","network_address":"m3-242.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"14.7","mobile":0,"x":"14.02"},{"site":"lille","uid":"1554","archi":"m3:at86rf231","state":"Alive","network_address":"m3-247.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"4.42"},{"site":"lille","uid":"b770","archi":"m3:at86rf231","state":"Alive","network_address":"m3-249.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"6.82"},{"site":"lille","uid":"0759","archi":"m3:at86rf231","state":"Alive","network_address":"m3-251.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"9.22"},{"site":"lille","uid":"2358","archi":"m3:at86rf231","state":"Alive","network_address":"m3-252.lille.iot-lab.info","mobility_type":"null","z":"2.6","y":"15.9","mobile":0,"x":"10.42"},{"site":"rocquencourt","uid":"1160","archi":"m3:at86rf231","state":"Alive","network_address":"m3-1.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"4.0","mobile":0,"x":"43.4"},{"site":"rocquencourt","uid":"4061","archi":"m3:at86rf231","state":"Alive","network_address":"m3-2.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"2.8","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"2453","archi":"m3:at86rf231","state":"Alive","network_address":"m3-3.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"4.0","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"2061","archi":"m3:at86rf231","state":"Alive","network_address":"m3-4.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"1.6","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"c374","archi":"m3:at86rf231","state":"Alive","network_address":"m3-5.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"4.0","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"2460","archi":"m3:at86rf231","state":"Alive","network_address":"m3-6.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"0.4","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"1360","archi":"m3:at86rf231","state":"Alive","network_address":"m3-7.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"2.8","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"3560","archi":"m3:at86rf231","state":"Alive","network_address":"m3-8.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"4.0","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"2760","archi":"m3:at86rf231","state":"Alive","network_address":"m3-9.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"0.4","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"c471","archi":"m3:at86rf231","state":"Alive","network_address":"m3-10.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"1.6","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"2353","archi":"m3:at86rf231","state":"Alive","network_address":"m3-11.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"2.8","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"unknown","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-12.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"0.4","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"2661","archi":"m3:at86rf231","state":"Alive","network_address":"m3-13.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"1.6","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"2053","archi":"m3:at86rf231","state":"Alive","network_address":"m3-14.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"2.8","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"unknown","archi":"m3:at86rf231","state":"Suspected","network_address":"m3-15.rocquencourt.iot-lab.info","mobility_type":"null","z":"0.2","y":"0.4","mobile":0,"x":"50.6"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-1.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"9065","archi":"a8:at86rf231","state":"Alive","network_address":"a8-2.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"a051","archi":"a8:at86rf231","state":"Alive","network_address":"a8-3.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"9764","archi":"a8:at86rf231","state":"Alive","network_address":"a8-4.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"a151","archi":"a8:at86rf231","state":"Alive","network_address":"a8-5.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-6.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"a065","archi":"a8:at86rf231","state":"Alive","network_address":"a8-7.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a053","archi":"a8:at86rf231","state":"Alive","network_address":"a8-8.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"a167","archi":"a8:at86rf231","state":"Alive","network_address":"a8-9.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-10.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"a166","archi":"a8:at86rf231","state":"Alive","network_address":"a8-11.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"9463","archi":"a8:at86rf231","state":"Alive","network_address":"a8-12.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"b967","archi":"a8:at86rf231","state":"Alive","network_address":"a8-13.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"8857","archi":"a8:at86rf231","state":"Alive","network_address":"a8-14.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"a753","archi":"a8:at86rf231","state":"Alive","network_address":"a8-15.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"b766","archi":"a8:at86rf231","state":"Alive","network_address":"a8-16.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"b056","archi":"a8:at86rf231","state":"Alive","network_address":"a8-17.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"a451","archi":"a8:at86rf231","state":"Alive","network_address":"a8-18.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a663","archi":"a8:at86rf231","state":"Alive","network_address":"a8-19.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"a665","archi":"a8:at86rf231","state":"Alive","network_address":"a8-20.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"b052","archi":"a8:at86rf231","state":"Alive","network_address":"a8-21.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"b063","archi":"a8:at86rf231","state":"Alive","network_address":"a8-22.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"b154","archi":"a8:at86rf231","state":"Alive","network_address":"a8-23.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"a666","archi":"a8:at86rf231","state":"Alive","network_address":"a8-24.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"b153","archi":"a8:at86rf231","state":"Alive","network_address":"a8-25.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"9753","archi":"a8:at86rf231","state":"Alive","network_address":"a8-26.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"9954","archi":"a8:at86rf231","state":"Alive","network_address":"a8-27.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"9163","archi":"a8:at86rf231","state":"Alive","network_address":"a8-28.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"b658","archi":"a8:at86rf231","state":"Alive","network_address":"a8-29.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a367","archi":"a8:at86rf231","state":"Alive","network_address":"a8-30.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"9165","archi":"a8:at86rf231","state":"Alive","network_address":"a8-31.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"9166","archi":"a8:at86rf231","state":"Alive","network_address":"a8-32.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"8966","archi":"a8:at86rf231","state":"Alive","network_address":"a8-33.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"a267","archi":"a8:at86rf231","state":"Alive","network_address":"a8-34.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"b567","archi":"a8:at86rf231","state":"Alive","network_address":"a8-35.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"b066","archi":"a8:at86rf231","state":"Alive","network_address":"a8-36.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"9964","archi":"a8:at86rf231","state":"Alive","network_address":"a8-37.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"a366","archi":"a8:at86rf231","state":"Alive","network_address":"a8-38.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-39.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"9266","archi":"a8:at86rf231","state":"Alive","network_address":"a8-40.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"9458","archi":"a8:at86rf231","state":"Alive","network_address":"a8-41.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"b863","archi":"a8:at86rf231","state":"Alive","network_address":"a8-42.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"9253","archi":"a8:at86rf231","state":"Alive","network_address":"a8-43.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-44.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"9653","archi":"a8:at86rf231","state":"Alive","network_address":"a8-45.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"a566","archi":"a8:at86rf231","state":"Alive","network_address":"a8-46.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"a254","archi":"a8:at86rf231","state":"Alive","network_address":"a8-47.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Suspected","network_address":"a8-48.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-49.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"9966","archi":"a8:at86rf231","state":"Alive","network_address":"a8-50.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"a452","archi":"a8:at86rf231","state":"Alive","network_address":"a8-51.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"8866","archi":"a8:at86rf231","state":"Alive","network_address":"a8-52.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"9452","archi":"a8:at86rf231","state":"Alive","network_address":"a8-53.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"b367","archi":"a8:at86rf231","state":"Alive","network_address":"a8-54.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"9466","archi":"a8:at86rf231","state":"Alive","network_address":"a8-55.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"5.2","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"b465","archi":"a8:at86rf231","state":"Alive","network_address":"a8-56.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"6.4","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a765","archi":"a8:at86rf231","state":"Alive","network_address":"a8-57.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"6.4","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"8957","archi":"a8:at86rf231","state":"Alive","network_address":"a8-58.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"6.4","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"9754","archi":"a8:at86rf231","state":"Alive","network_address":"a8-59.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"6.4","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"a067","archi":"a8:at86rf231","state":"Alive","network_address":"a8-60.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"6.4","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"a351","archi":"a8:at86rf231","state":"Alive","network_address":"a8-61.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"1.4"},{"site":"rocquencourt","uid":"9755","archi":"a8:at86rf231","state":"Alive","network_address":"a8-62.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"2.6"},{"site":"rocquencourt","uid":"a252","archi":"a8:at86rf231","state":"Alive","network_address":"a8-63.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"3.8"},{"site":"rocquencourt","uid":"a054","archi":"a8:at86rf231","state":"Alive","network_address":"a8-64.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"5.0"},{"site":"rocquencourt","uid":"9867","archi":"a8:at86rf231","state":"Alive","network_address":"a8-65.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"6.2"},{"site":"rocquencourt","uid":"c163","archi":"a8:at86rf231","state":"Alive","network_address":"a8-66.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"7.4"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-67.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"8.6"},{"site":"rocquencourt","uid":"b166","archi":"a8:at86rf231","state":"Alive","network_address":"a8-68.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"9.8"},{"site":"rocquencourt","uid":"9855","archi":"a8:at86rf231","state":"Alive","network_address":"a8-69.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"11.0"},{"site":"rocquencourt","uid":"9354","archi":"a8:at86rf231","state":"Alive","network_address":"a8-70.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"12.2"},{"site":"rocquencourt","uid":"a754","archi":"a8:at86rf231","state":"Alive","network_address":"a8-71.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"13.4"},{"site":"rocquencourt","uid":"b454","archi":"a8:at86rf231","state":"Alive","network_address":"a8-72.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"14.6"},{"site":"rocquencourt","uid":"b964","archi":"a8:at86rf231","state":"Alive","network_address":"a8-73.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"15.8"},{"site":"rocquencourt","uid":"b053","archi":"a8:at86rf231","state":"Alive","network_address":"a8-74.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"17.0"},{"site":"rocquencourt","uid":"9866","archi":"a8:at86rf231","state":"Alive","network_address":"a8-75.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"18.2"},{"site":"rocquencourt","uid":"b356","archi":"a8:at86rf231","state":"Alive","network_address":"a8-76.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"19.4"},{"site":"rocquencourt","uid":"b254","archi":"a8:at86rf231","state":"Alive","network_address":"a8-77.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"20.6"},{"site":"rocquencourt","uid":"8666","archi":"a8:at86rf231","state":"Alive","network_address":"a8-78.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"21.8"},{"site":"rocquencourt","uid":"a967","archi":"a8:at86rf231","state":"Alive","network_address":"a8-79.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"23.0"},{"site":"rocquencourt","uid":"9258","archi":"a8:at86rf231","state":"Alive","network_address":"a8-80.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"24.2"},{"site":"rocquencourt","uid":"a454","archi":"a8:at86rf231","state":"Alive","network_address":"a8-81.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"25.4"},{"site":"rocquencourt","uid":"b763","archi":"a8:at86rf231","state":"Alive","network_address":"a8-82.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"26.6"},{"site":"rocquencourt","uid":"a353","archi":"a8:at86rf231","state":"Alive","network_address":"a8-83.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"27.8"},{"site":"rocquencourt","uid":"9953","archi":"a8:at86rf231","state":"Alive","network_address":"a8-84.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"29.0"},{"site":"rocquencourt","uid":"b256","archi":"a8:at86rf231","state":"Alive","network_address":"a8-85.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"30.2"},{"site":"rocquencourt","uid":"a954","archi":"a8:at86rf231","state":"Alive","network_address":"a8-86.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"31.4"},{"site":"rocquencourt","uid":"a653","archi":"a8:at86rf231","state":"Alive","network_address":"a8-87.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"32.6"},{"site":"rocquencourt","uid":"b466","archi":"a8:at86rf231","state":"Alive","network_address":"a8-88.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"33.8"},{"site":"rocquencourt","uid":"a567","archi":"a8:at86rf231","state":"Alive","network_address":"a8-89.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"35.0"},{"site":"rocquencourt","uid":"a352","archi":"a8:at86rf231","state":"Alive","network_address":"a8-90.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"36.2"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-91.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"37.4"},{"site":"rocquencourt","uid":"a063","archi":"a8:at86rf231","state":"Alive","network_address":"a8-92.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"38.6"},{"site":"rocquencourt","uid":"a854","archi":"a8:at86rf231","state":"Alive","network_address":"a8-93.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"39.8"},{"site":"rocquencourt","uid":"8466","archi":"a8:at86rf231","state":"Alive","network_address":"a8-94.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"41.0"},{"site":"rocquencourt","uid":"b758","archi":"a8:at86rf231","state":"Alive","network_address":"a8-95.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"42.2"},{"site":"rocquencourt","uid":"b263","archi":"a8:at86rf231","state":"Alive","network_address":"a8-96.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"43.4"},{"site":"rocquencourt","uid":"a466","archi":"a8:at86rf231","state":"Alive","network_address":"a8-97.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"7.9","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"b654","archi":"a8:at86rf231","state":"Alive","network_address":"a8-98.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"9864","archi":"a8:at86rf231","state":"Alive","network_address":"a8-99.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"7.9","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"a866","archi":"a8:at86rf231","state":"Alive","network_address":"a8-100.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"7.9","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"9566","archi":"a8:at86rf231","state":"Alive","network_address":"a8-101.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"a752","archi":"a8:at86rf231","state":"Alive","network_address":"a8-102.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"9853","archi":"a8:at86rf231","state":"Alive","network_address":"a8-103.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"b767","archi":"a8:at86rf231","state":"Alive","network_address":"a8-104.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"0.4","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"9766","archi":"a8:at86rf231","state":"Alive","network_address":"a8-105.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"43.4"},{"site":"rocquencourt","uid":"a464","archi":"a8:at86rf231","state":"Alive","network_address":"a8-106.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"9655","archi":"a8:at86rf231","state":"Alive","network_address":"a8-107.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"9967","archi":"a8:at86rf231","state":"Alive","network_address":"a8-108.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"b667","archi":"a8:at86rf231","state":"Alive","network_address":"a8-109.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"a552","archi":"a8:at86rf231","state":"Alive","network_address":"a8-110.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"9852","archi":"a8:at86rf231","state":"Alive","network_address":"a8-111.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"50.6"},{"site":"rocquencourt","uid":"a551","archi":"a8:at86rf231","state":"Alive","network_address":"a8-112.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"51.8"},{"site":"rocquencourt","uid":"b566","archi":"a8:at86rf231","state":"Alive","network_address":"a8-113.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"53.0"},{"site":"rocquencourt","uid":"a163","archi":"a8:at86rf231","state":"Alive","network_address":"a8-114.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"54.2"},{"site":"rocquencourt","uid":"8465","archi":"a8:at86rf231","state":"Alive","network_address":"a8-115.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"55.4"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-116.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"1.6","mobile":0,"x":"56.6"},{"site":"rocquencourt","uid":"a952","archi":"a8:at86rf231","state":"Alive","network_address":"a8-117.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"43.4"},{"site":"rocquencourt","uid":"9154","archi":"a8:at86rf231","state":"Alive","network_address":"a8-118.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"b054","archi":"a8:at86rf231","state":"Alive","network_address":"a8-119.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"8566","archi":"a8:at86rf231","state":"Alive","network_address":"a8-120.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-121.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"9665","archi":"a8:at86rf231","state":"Alive","network_address":"a8-122.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"2.8","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"a465","archi":"a8:at86rf231","state":"Alive","network_address":"a8-123.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"43.4"},{"site":"rocquencourt","uid":"9365","archi":"a8:at86rf231","state":"Alive","network_address":"a8-124.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"b366","archi":"a8:at86rf231","state":"Alive","network_address":"a8-125.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"b365","archi":"a8:at86rf231","state":"Alive","network_address":"a8-126.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"a354","archi":"a8:at86rf231","state":"Alive","network_address":"a8-127.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"9952","archi":"a8:at86rf231","state":"Alive","network_address":"a8-128.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"4.0","mobile":0,"x":"49.4"},{"site":"rocquencourt","uid":"a654","archi":"a8:at86rf231","state":"Alive","network_address":"a8-129.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Alive","network_address":"a8-130.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"a766","archi":"a8:at86rf231","state":"Alive","network_address":"a8-131.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"a867","archi":"a8:at86rf231","state":"Alive","network_address":"a8-132.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"9158","archi":"a8:at86rf231","state":"Alive","network_address":"a8-133.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"9364","archi":"a8:at86rf231","state":"Alive","network_address":"a8-134.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"8565","archi":"a8:at86rf231","state":"Alive","network_address":"a8-135.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"c267","archi":"a8:at86rf231","state":"Alive","network_address":"a8-136.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"9552","archi":"a8:at86rf231","state":"Alive","network_address":"a8-137.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"a763","archi":"a8:at86rf231","state":"Alive","network_address":"a8-138.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"a767","archi":"a8:at86rf231","state":"Alive","network_address":"a8-139.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"a553","archi":"a8:at86rf231","state":"Alive","network_address":"a8-140.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"9057","archi":"a8:at86rf231","state":"Alive","network_address":"a8-141.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"9465","archi":"a8:at86rf231","state":"Alive","network_address":"a8-142.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"9666","archi":"a8:at86rf231","state":"Alive","network_address":"a8-143.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a253","archi":"a8:at86rf231","state":"Alive","network_address":"a8-144.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"a265","archi":"a8:at86rf231","state":"Alive","network_address":"a8-145.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"b067","archi":"a8:at86rf231","state":"Alive","network_address":"a8-146.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"1.6"},{"site":"rocquencourt","uid":"9254","archi":"a8:at86rf231","state":"Alive","network_address":"a8-147.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"4.0"},{"site":"rocquencourt","uid":"unknown","archi":"a8:at86rf231","state":"Suspected","network_address":"a8-148.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"6.4"},{"site":"rocquencourt","uid":"b264","archi":"a8:at86rf231","state":"Alive","network_address":"a8-149.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"b167","archi":"a8:at86rf231","state":"Alive","network_address":"a8-150.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"a165","archi":"a8:at86rf231","state":"Alive","network_address":"a8-151.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"0.4"},{"site":"rocquencourt","uid":"a853","archi":"a8:at86rf231","state":"Alive","network_address":"a8-152.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"2.8"},{"site":"rocquencourt","uid":"b666","archi":"a8:at86rf231","state":"Alive","network_address":"a8-153.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"5.2"},{"site":"rocquencourt","uid":"a263","archi":"a8:at86rf231","state":"Alive","network_address":"a8-154.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"7.6"},{"site":"rocquencourt","uid":"a363","archi":"a8:at86rf231","state":"Alive","network_address":"a8-155.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"10.0"},{"site":"rocquencourt","uid":"a667","archi":"a8:at86rf231","state":"Alive","network_address":"a8-156.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"5.2","mobile":0,"x":"12.4"},{"site":"rocquencourt","uid":"9863","archi":"a8:at86rf231","state":"Alive","network_address":"a8-157.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"6.4","mobile":0,"x":"8.8"},{"site":"rocquencourt","uid":"b253","archi":"a8:at86rf231","state":"Alive","network_address":"a8-158.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"6.4","mobile":0,"x":"11.2"},{"site":"rocquencourt","uid":"a066","archi":"a8:at86rf231","state":"Alive","network_address":"a8-159.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"45.8"},{"site":"rocquencourt","uid":"b353","archi":"a8:at86rf231","state":"Alive","network_address":"a8-160.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"0.4","mobile":0,"x":"50.6"},{"site":"rocquencourt","uid":"a852","archi":"a8:at86rf231","state":"Alive","network_address":"a8-161.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"b152","archi":"a8:at86rf231","state":"Alive","network_address":"a8-162.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"1.6","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"a554","archi":"a8:at86rf231","state":"Alive","network_address":"a8-163.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"2.8","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"9765","archi":"a8:at86rf231","state":"Alive","network_address":"a8-164.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"44.6"},{"site":"rocquencourt","uid":"9854","archi":"a8:at86rf231","state":"Alive","network_address":"a8-165.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"4.0","mobile":0,"x":"47.0"},{"site":"rocquencourt","uid":"9358","archi":"a8:at86rf231","state":"Alive","network_address":"a8-166.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"-0.8"},{"site":"rocquencourt","uid":"b352","archi":"a8:at86rf231","state":"Alive","network_address":"a8-167.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"6.2"},{"site":"rocquencourt","uid":"8665","archi":"a8:at86rf231","state":"Alive","network_address":"a8-168.rocquencourt.iot-lab.info","mobility_type":"null","z":"2.0","y":"23.2","mobile":0,"x":"13.2"},{"site":"rocquencourt","uid":"a152","archi":"a8:at86rf231","state":"Alive","network_address":"a8-169.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"20.2"},{"site":"rocquencourt","uid":"b866","archi":"a8:at86rf231","state":"Alive","network_address":"a8-170.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"27.2"},{"site":"rocquencourt","uid":"b858","archi":"a8:at86rf231","state":"Alive","network_address":"a8-171.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"34.2"},{"site":"rocquencourt","uid":"b554","archi":"a8:at86rf231","state":"Alive","network_address":"a8-172.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"41.2"},{"site":"rocquencourt","uid":"8865","archi":"a8:at86rf231","state":"Alive","network_address":"a8-173.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"48.2"},{"site":"rocquencourt","uid":"9553","archi":"a8:at86rf231","state":"Alive","network_address":"a8-174.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"55.2"},{"site":"rocquencourt","uid":"9058","archi":"a8:at86rf231","state":"Alive","network_address":"a8-175.rocquencourt.iot-lab.info","mobility_type":"null","z":"1.1","y":"23.2","mobile":0,"x":"62.2"},{"site":"strasbourg","uid":"a484","archi":"m3:at86rf231","state":"Alive","network_address":"m3-1.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"a685","archi":"m3:at86rf231","state":"Alive","network_address":"m3-2.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"9787","archi":"m3:at86rf231","state":"Alive","network_address":"m3-3.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"9388","archi":"m3:at86rf231","state":"Alive","network_address":"m3-4.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"9889","archi":"m3:at86rf231","state":"Alive","network_address":"m3-5.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"9287","archi":"m3:at86rf231","state":"Alive","network_address":"m3-6.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"b184","archi":"m3:at86rf231","state":"Alive","network_address":"m3-7.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"a887","archi":"m3:at86rf231","state":"Alive","network_address":"m3-8.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"b885","archi":"m3:at86rf231","state":"Alive","network_address":"m3-9.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9387","archi":"m3:at86rf231","state":"Alive","network_address":"m3-10.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"8984","archi":"m3:at86rf231","state":"Alive","network_address":"m3-11.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"9588","archi":"m3:at86rf231","state":"Alive","network_address":"m3-12.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"b384","archi":"m3:at86rf231","state":"Alive","network_address":"m3-13.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"b187","archi":"m3:at86rf231","state":"Alive","network_address":"m3-14.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"9488","archi":"m3:at86rf231","state":"Alive","network_address":"m3-15.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"9385","archi":"m3:at86rf231","state":"Alive","network_address":"m3-16.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"b585","archi":"m3:at86rf231","state":"Alive","network_address":"m3-17.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"2.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"a587","archi":"m3:at86rf231","state":"Alive","network_address":"m3-18.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"2.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"9083","archi":"m3:at86rf231","state":"Alive","network_address":"m3-19.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"b786","archi":"m3:at86rf231","state":"Alive","network_address":"m3-20.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"a385","archi":"m3:at86rf231","state":"Alive","network_address":"m3-21.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a488","archi":"m3:at86rf231","state":"Alive","network_address":"m3-22.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a984","archi":"m3:at86rf231","state":"Alive","network_address":"m3-23.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9084","archi":"m3:at86rf231","state":"Alive","network_address":"m3-24.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"a187","archi":"m3:at86rf231","state":"Alive","network_address":"m3-25.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"b685","archi":"m3:at86rf231","state":"Alive","network_address":"m3-26.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"a185","archi":"m3:at86rf231","state":"Alive","network_address":"m3-27.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"4.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"a586","archi":"m3:at86rf231","state":"Alive","network_address":"m3-28.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"4.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"a284","archi":"m3:at86rf231","state":"Alive","network_address":"m3-29.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"b086","archi":"m3:at86rf231","state":"Alive","network_address":"m3-30.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"a885","archi":"m3:at86rf231","state":"Alive","network_address":"m3-31.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"b287","archi":"m3:at86rf231","state":"Alive","network_address":"m3-32.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"b286","archi":"m3:at86rf231","state":"Alive","network_address":"m3-33.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a786","archi":"m3:at86rf231","state":"Alive","network_address":"m3-34.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a784","archi":"m3:at86rf231","state":"Alive","network_address":"m3-35.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"9184","archi":"m3:at86rf231","state":"Alive","network_address":"m3-36.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"a386","archi":"m3:at86rf231","state":"Alive","network_address":"m3-37.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9589","archi":"m3:at86rf231","state":"Alive","network_address":"m3-38.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"a184","archi":"m3:at86rf231","state":"Alive","network_address":"m3-39.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"6.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"9885","archi":"m3:at86rf231","state":"Alive","network_address":"m3-41.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"5.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"b186","archi":"m3:at86rf231","state":"Alive","network_address":"m3-42.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"5.00","mobile":0,"x":"13.00"},{"site":"strasbourg","uid":"9285","archi":"m3:at86rf231","state":"Alive","network_address":"m3-43.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"5.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"9990","archi":"m3:at86rf231","state":"Alive","network_address":"m3-44.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"5.00","mobile":0,"x":"15.00"},{"site":"strasbourg","uid":"b385","archi":"m3:at86rf231","state":"Alive","network_address":"m3-45.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"5.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"9985","archi":"m3:at86rf231","state":"Alive","network_address":"m3-46.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"5.00","mobile":0,"x":"17.00"},{"site":"strasbourg","uid":"a487","archi":"m3:at86rf231","state":"Alive","network_address":"m3-47.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"9789","archi":"m3:at86rf231","state":"Alive","network_address":"m3-48.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"a186","archi":"m3:at86rf231","state":"Alive","network_address":"m3-49.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"b586","archi":"m3:at86rf231","state":"Alive","network_address":"m3-50.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a585","archi":"m3:at86rf231","state":"Alive","network_address":"m3-51.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"8.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9689","archi":"m3:at86rf231","state":"Alive","network_address":"m3-52.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"8.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9890","archi":"m3:at86rf231","state":"Alive","network_address":"m3-53.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"9788","archi":"m3:at86rf231","state":"Alive","network_address":"m3-54.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"1.00"},{"site":"strasbourg","uid":"b486","archi":"m3:at86rf231","state":"Alive","network_address":"m3-55.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"a288","archi":"m3:at86rf231","state":"Alive","network_address":"m3-56.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"3.00"},{"site":"strasbourg","uid":"9986","archi":"m3:at86rf231","state":"Alive","network_address":"m3-57.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"a788","archi":"m3:at86rf231","state":"Alive","network_address":"m3-58.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"5.00"},{"site":"strasbourg","uid":"9586","archi":"m3:at86rf231","state":"Alive","network_address":"m3-59.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"a686","archi":"m3:at86rf231","state":"Alive","network_address":"m3-60.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"7.00"},{"site":"strasbourg","uid":"a988","archi":"m3:at86rf231","state":"Alive","network_address":"m3-61.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"b386","archi":"m3:at86rf231","state":"Alive","network_address":"m3-62.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"9.00"},{"site":"strasbourg","uid":"9887","archi":"m3:at86rf231","state":"Alive","network_address":"m3-63.strasbourg.iot-lab.info","mobility_type":"null","z":"1.20","y":"10.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"9687","archi":"m3:at86rf231","state":"Alive","network_address":"m3-64.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"10.00","mobile":0,"x":"11.00"},{"site":"strasbourg","uid":"b587","archi":"m3:at86rf231","state":"Alive","network_address":"m3-40.strasbourg.iot-lab.info","mobility_type":"null","z":"2.10","y":"6.00","mobile":0,"x":"11.00"},{"site":"grenoble","uid":"05DF","archi":"m3:at86rf231","state":"Alive","network_address":"m3-381.grenoble.iot-lab.info","mobility_type":"turtlebot2","z":"null","y":"null","mobile":1,"x":"null"},{"site":"strasbourg","uid":"9286","archi":"m3:at86rf231","state":"Alive","network_address":"m3-96.strasbourg.iot-lab.info","mobility_type":"turtlebot2","z":"null","y":"null","mobile":1,"x":"null"}]} \ No newline at end of file diff --git a/metas/sites.csv b/metas/sites.csv deleted file mode 100644 index 5e5c59aeb5..0000000000 --- a/metas/sites.csv +++ /dev/null @@ -1,2 +0,0 @@ -site -grenoble \ No newline at end of file diff --git a/metas/states.json b/metas/states.json deleted file mode 100644 index f5786389de..0000000000 --- a/metas/states.json +++ /dev/null @@ -1,2123 +0,0 @@ -{ - "lyon": [ - "a8-1.lyon.iot-lab.info", - "a8-2.lyon.iot-lab.info", - "a8-3.lyon.iot-lab.info", - "a8-4.lyon.iot-lab.info", - "a8-5.lyon.iot-lab.info", - "a8-6.lyon.iot-lab.info", - "a8-7.lyon.iot-lab.info", - "a8-8.lyon.iot-lab.info", - "a8-9.lyon.iot-lab.info", - "a8-10.lyon.iot-lab.info", - "a8-11.lyon.iot-lab.info", - "m3-1.lyon.iot-lab.info", - "m3-2.lyon.iot-lab.info", - "m3-3.lyon.iot-lab.info", - "m3-4.lyon.iot-lab.info", - "m3-5.lyon.iot-lab.info", - "m3-6.lyon.iot-lab.info", - "m3-7.lyon.iot-lab.info", - "m3-8.lyon.iot-lab.info", - "m3-9.lyon.iot-lab.info", - "m3-10.lyon.iot-lab.info", - "m3-11.lyon.iot-lab.info", - "m3-12.lyon.iot-lab.info", - "m3-13.lyon.iot-lab.info", - "m3-14.lyon.iot-lab.info", - "m3-15.lyon.iot-lab.info", - "m3-16.lyon.iot-lab.info", - "m3-17.lyon.iot-lab.info", - "m3-18.lyon.iot-lab.info" - ], - "strasbourg": [ - "wsn430-1.strasbourg.iot-lab.info", - "wsn430-2.strasbourg.iot-lab.info", - "wsn430-3.strasbourg.iot-lab.info", - "wsn430-4.strasbourg.iot-lab.info", - "wsn430-5.strasbourg.iot-lab.info", - "wsn430-6.strasbourg.iot-lab.info", - "wsn430-7.strasbourg.iot-lab.info", - "wsn430-8.strasbourg.iot-lab.info", - "wsn430-9.strasbourg.iot-lab.info", - "wsn430-10.strasbourg.iot-lab.info", - "wsn430-11.strasbourg.iot-lab.info", - "wsn430-12.strasbourg.iot-lab.info", - "wsn430-13.strasbourg.iot-lab.info", - "wsn430-14.strasbourg.iot-lab.info", - "wsn430-15.strasbourg.iot-lab.info", - "wsn430-16.strasbourg.iot-lab.info", - "wsn430-17.strasbourg.iot-lab.info", - "wsn430-18.strasbourg.iot-lab.info", - "wsn430-19.strasbourg.iot-lab.info", - "wsn430-20.strasbourg.iot-lab.info", - "wsn430-21.strasbourg.iot-lab.info", - "wsn430-22.strasbourg.iot-lab.info", - "wsn430-23.strasbourg.iot-lab.info", - "wsn430-25.strasbourg.iot-lab.info", - "wsn430-26.strasbourg.iot-lab.info", - "wsn430-27.strasbourg.iot-lab.info", - "wsn430-28.strasbourg.iot-lab.info", - "wsn430-29.strasbourg.iot-lab.info", - "wsn430-30.strasbourg.iot-lab.info", - "wsn430-31.strasbourg.iot-lab.info", - "wsn430-32.strasbourg.iot-lab.info", - "wsn430-33.strasbourg.iot-lab.info", - "wsn430-34.strasbourg.iot-lab.info", - "wsn430-35.strasbourg.iot-lab.info", - "wsn430-36.strasbourg.iot-lab.info", - "wsn430-37.strasbourg.iot-lab.info", - "wsn430-38.strasbourg.iot-lab.info", - "wsn430-39.strasbourg.iot-lab.info", - "wsn430-40.strasbourg.iot-lab.info", - "wsn430-41.strasbourg.iot-lab.info", - "wsn430-42.strasbourg.iot-lab.info", - "wsn430-43.strasbourg.iot-lab.info", - "wsn430-44.strasbourg.iot-lab.info", - "wsn430-45.strasbourg.iot-lab.info", - "wsn430-46.strasbourg.iot-lab.info", - "wsn430-47.strasbourg.iot-lab.info", - "wsn430-48.strasbourg.iot-lab.info", - "wsn430-49.strasbourg.iot-lab.info", - "wsn430-50.strasbourg.iot-lab.info", - "wsn430-51.strasbourg.iot-lab.info", - "wsn430-52.strasbourg.iot-lab.info", - "wsn430-53.strasbourg.iot-lab.info", - "wsn430-54.strasbourg.iot-lab.info", - "wsn430-55.strasbourg.iot-lab.info", - "wsn430-56.strasbourg.iot-lab.info", - "wsn430-57.strasbourg.iot-lab.info", - "wsn430-58.strasbourg.iot-lab.info", - "wsn430-60.strasbourg.iot-lab.info", - "wsn430-61.strasbourg.iot-lab.info", - "wsn430-62.strasbourg.iot-lab.info", - "wsn430-63.strasbourg.iot-lab.info", - "wsn430-64.strasbourg.iot-lab.info", - "wsn430-65.strasbourg.iot-lab.info", - "wsn430-66.strasbourg.iot-lab.info", - "wsn430-67.strasbourg.iot-lab.info", - "wsn430-68.strasbourg.iot-lab.info", - "wsn430-69.strasbourg.iot-lab.info", - "wsn430-70.strasbourg.iot-lab.info", - "wsn430-71.strasbourg.iot-lab.info", - "wsn430-72.strasbourg.iot-lab.info", - "wsn430-73.strasbourg.iot-lab.info", - "wsn430-74.strasbourg.iot-lab.info", - "wsn430-75.strasbourg.iot-lab.info", - "wsn430-76.strasbourg.iot-lab.info", - "wsn430-77.strasbourg.iot-lab.info", - "wsn430-78.strasbourg.iot-lab.info", - "wsn430-79.strasbourg.iot-lab.info", - "wsn430-80.strasbourg.iot-lab.info", - "wsn430-81.strasbourg.iot-lab.info", - "wsn430-82.strasbourg.iot-lab.info", - "wsn430-83.strasbourg.iot-lab.info", - "wsn430-84.strasbourg.iot-lab.info", - "wsn430-85.strasbourg.iot-lab.info", - "wsn430-86.strasbourg.iot-lab.info", - "wsn430-87.strasbourg.iot-lab.info", - "wsn430-88.strasbourg.iot-lab.info", - "wsn430-89.strasbourg.iot-lab.info", - "wsn430-90.strasbourg.iot-lab.info", - "wsn430-91.strasbourg.iot-lab.info", - "wsn430-92.strasbourg.iot-lab.info", - "wsn430-93.strasbourg.iot-lab.info", - "wsn430-94.strasbourg.iot-lab.info", - "wsn430-95.strasbourg.iot-lab.info", - "wsn430-96.strasbourg.iot-lab.info", - "wsn430-97.strasbourg.iot-lab.info", - "wsn430-98.strasbourg.iot-lab.info", - "wsn430-99.strasbourg.iot-lab.info", - "wsn430-100.strasbourg.iot-lab.info", - "wsn430-101.strasbourg.iot-lab.info", - "wsn430-102.strasbourg.iot-lab.info", - "wsn430-103.strasbourg.iot-lab.info", - "wsn430-104.strasbourg.iot-lab.info", - "wsn430-105.strasbourg.iot-lab.info", - "wsn430-106.strasbourg.iot-lab.info", - "wsn430-107.strasbourg.iot-lab.info", - "wsn430-108.strasbourg.iot-lab.info", - "wsn430-109.strasbourg.iot-lab.info", - "wsn430-110.strasbourg.iot-lab.info", - "wsn430-111.strasbourg.iot-lab.info", - "wsn430-112.strasbourg.iot-lab.info", - "wsn430-113.strasbourg.iot-lab.info", - "wsn430-114.strasbourg.iot-lab.info", - "wsn430-115.strasbourg.iot-lab.info", - "wsn430-116.strasbourg.iot-lab.info", - "wsn430-117.strasbourg.iot-lab.info", - "wsn430-118.strasbourg.iot-lab.info", - "wsn430-119.strasbourg.iot-lab.info", - "wsn430-120.strasbourg.iot-lab.info", - "wsn430-121.strasbourg.iot-lab.info", - "wsn430-122.strasbourg.iot-lab.info", - "wsn430-123.strasbourg.iot-lab.info", - "wsn430-124.strasbourg.iot-lab.info", - "wsn430-125.strasbourg.iot-lab.info", - "wsn430-126.strasbourg.iot-lab.info", - "wsn430-127.strasbourg.iot-lab.info", - "wsn430-128.strasbourg.iot-lab.info", - "wsn430-129.strasbourg.iot-lab.info", - "wsn430-130.strasbourg.iot-lab.info", - "wsn430-131.strasbourg.iot-lab.info", - "wsn430-132.strasbourg.iot-lab.info", - "wsn430-133.strasbourg.iot-lab.info", - "wsn430-134.strasbourg.iot-lab.info", - "wsn430-135.strasbourg.iot-lab.info", - "wsn430-136.strasbourg.iot-lab.info", - "wsn430-138.strasbourg.iot-lab.info", - "wsn430-139.strasbourg.iot-lab.info", - "wsn430-140.strasbourg.iot-lab.info", - "wsn430-141.strasbourg.iot-lab.info", - "wsn430-142.strasbourg.iot-lab.info", - "wsn430-143.strasbourg.iot-lab.info", - "wsn430-145.strasbourg.iot-lab.info", - "wsn430-146.strasbourg.iot-lab.info", - "wsn430-147.strasbourg.iot-lab.info", - "wsn430-148.strasbourg.iot-lab.info", - "wsn430-149.strasbourg.iot-lab.info", - "wsn430-150.strasbourg.iot-lab.info", - "wsn430-151.strasbourg.iot-lab.info", - "wsn430-152.strasbourg.iot-lab.info", - "wsn430-153.strasbourg.iot-lab.info", - "wsn430-154.strasbourg.iot-lab.info", - "wsn430-155.strasbourg.iot-lab.info", - "wsn430-156.strasbourg.iot-lab.info", - "wsn430-157.strasbourg.iot-lab.info", - "wsn430-158.strasbourg.iot-lab.info", - "wsn430-159.strasbourg.iot-lab.info", - "wsn430-160.strasbourg.iot-lab.info", - "wsn430-161.strasbourg.iot-lab.info", - "wsn430-162.strasbourg.iot-lab.info", - "wsn430-163.strasbourg.iot-lab.info", - "wsn430-164.strasbourg.iot-lab.info", - "wsn430-165.strasbourg.iot-lab.info", - "wsn430-166.strasbourg.iot-lab.info", - "wsn430-167.strasbourg.iot-lab.info", - "wsn430-168.strasbourg.iot-lab.info", - "wsn430-169.strasbourg.iot-lab.info", - "wsn430-170.strasbourg.iot-lab.info", - "wsn430-171.strasbourg.iot-lab.info", - "wsn430-172.strasbourg.iot-lab.info", - "wsn430-173.strasbourg.iot-lab.info", - "wsn430-174.strasbourg.iot-lab.info", - "wsn430-175.strasbourg.iot-lab.info", - "wsn430-176.strasbourg.iot-lab.info", - "wsn430-177.strasbourg.iot-lab.info", - "wsn430-178.strasbourg.iot-lab.info", - "wsn430-179.strasbourg.iot-lab.info", - "wsn430-180.strasbourg.iot-lab.info", - "wsn430-181.strasbourg.iot-lab.info", - "wsn430-182.strasbourg.iot-lab.info", - "wsn430-183.strasbourg.iot-lab.info", - "wsn430-184.strasbourg.iot-lab.info", - "wsn430-185.strasbourg.iot-lab.info", - "wsn430-186.strasbourg.iot-lab.info", - "wsn430-187.strasbourg.iot-lab.info", - "wsn430-188.strasbourg.iot-lab.info", - "wsn430-189.strasbourg.iot-lab.info", - "wsn430-190.strasbourg.iot-lab.info", - "wsn430-191.strasbourg.iot-lab.info", - "wsn430-192.strasbourg.iot-lab.info", - "wsn430-193.strasbourg.iot-lab.info", - "wsn430-194.strasbourg.iot-lab.info", - "wsn430-195.strasbourg.iot-lab.info", - "wsn430-196.strasbourg.iot-lab.info", - "wsn430-197.strasbourg.iot-lab.info", - "wsn430-198.strasbourg.iot-lab.info", - "wsn430-199.strasbourg.iot-lab.info", - "wsn430-200.strasbourg.iot-lab.info", - "wsn430-201.strasbourg.iot-lab.info", - "wsn430-202.strasbourg.iot-lab.info", - "wsn430-203.strasbourg.iot-lab.info", - "wsn430-204.strasbourg.iot-lab.info", - "wsn430-205.strasbourg.iot-lab.info", - "wsn430-206.strasbourg.iot-lab.info", - "wsn430-207.strasbourg.iot-lab.info", - "wsn430-208.strasbourg.iot-lab.info", - "wsn430-209.strasbourg.iot-lab.info", - "wsn430-210.strasbourg.iot-lab.info", - "wsn430-211.strasbourg.iot-lab.info", - "wsn430-212.strasbourg.iot-lab.info", - "wsn430-213.strasbourg.iot-lab.info", - "wsn430-214.strasbourg.iot-lab.info", - "wsn430-215.strasbourg.iot-lab.info", - "wsn430-216.strasbourg.iot-lab.info", - "wsn430-217.strasbourg.iot-lab.info", - "wsn430-218.strasbourg.iot-lab.info", - "wsn430-219.strasbourg.iot-lab.info", - "wsn430-220.strasbourg.iot-lab.info", - "wsn430-221.strasbourg.iot-lab.info", - "wsn430-222.strasbourg.iot-lab.info", - "wsn430-223.strasbourg.iot-lab.info", - "wsn430-224.strasbourg.iot-lab.info", - "wsn430-225.strasbourg.iot-lab.info", - "wsn430-226.strasbourg.iot-lab.info", - "wsn430-227.strasbourg.iot-lab.info", - "wsn430-228.strasbourg.iot-lab.info", - "wsn430-229.strasbourg.iot-lab.info", - "wsn430-230.strasbourg.iot-lab.info", - "wsn430-231.strasbourg.iot-lab.info", - "wsn430-232.strasbourg.iot-lab.info", - "wsn430-233.strasbourg.iot-lab.info", - "wsn430-234.strasbourg.iot-lab.info", - "wsn430-235.strasbourg.iot-lab.info", - "wsn430-236.strasbourg.iot-lab.info", - "wsn430-237.strasbourg.iot-lab.info", - "wsn430-238.strasbourg.iot-lab.info", - "wsn430-239.strasbourg.iot-lab.info", - "wsn430-240.strasbourg.iot-lab.info", - "a8-1.strasbourg.iot-lab.info", - "a8-2.strasbourg.iot-lab.info", - "a8-3.strasbourg.iot-lab.info", - "a8-4.strasbourg.iot-lab.info", - "a8-5.strasbourg.iot-lab.info", - "a8-6.strasbourg.iot-lab.info", - "a8-7.strasbourg.iot-lab.info", - "a8-8.strasbourg.iot-lab.info", - "a8-10.strasbourg.iot-lab.info", - "a8-11.strasbourg.iot-lab.info", - "a8-12.strasbourg.iot-lab.info", - "a8-13.strasbourg.iot-lab.info", - "a8-14.strasbourg.iot-lab.info", - "m3-1.strasbourg.iot-lab.info", - "m3-2.strasbourg.iot-lab.info", - "m3-3.strasbourg.iot-lab.info", - "m3-5.strasbourg.iot-lab.info", - "m3-6.strasbourg.iot-lab.info", - "m3-7.strasbourg.iot-lab.info", - "m3-8.strasbourg.iot-lab.info", - "m3-9.strasbourg.iot-lab.info", - "m3-10.strasbourg.iot-lab.info", - "m3-11.strasbourg.iot-lab.info", - "m3-12.strasbourg.iot-lab.info", - "m3-13.strasbourg.iot-lab.info", - "m3-14.strasbourg.iot-lab.info", - "m3-15.strasbourg.iot-lab.info", - "m3-16.strasbourg.iot-lab.info", - "m3-17.strasbourg.iot-lab.info", - "m3-18.strasbourg.iot-lab.info", - "m3-19.strasbourg.iot-lab.info", - "m3-20.strasbourg.iot-lab.info", - "m3-21.strasbourg.iot-lab.info", - "m3-22.strasbourg.iot-lab.info", - "m3-23.strasbourg.iot-lab.info", - "m3-24.strasbourg.iot-lab.info", - "m3-25.strasbourg.iot-lab.info", - "m3-27.strasbourg.iot-lab.info", - "m3-28.strasbourg.iot-lab.info", - "m3-29.strasbourg.iot-lab.info", - "m3-30.strasbourg.iot-lab.info", - "m3-31.strasbourg.iot-lab.info", - "m3-32.strasbourg.iot-lab.info", - "m3-33.strasbourg.iot-lab.info", - "m3-34.strasbourg.iot-lab.info", - "m3-35.strasbourg.iot-lab.info", - "m3-36.strasbourg.iot-lab.info", - "m3-37.strasbourg.iot-lab.info", - "m3-38.strasbourg.iot-lab.info", - "m3-39.strasbourg.iot-lab.info", - "m3-41.strasbourg.iot-lab.info", - "m3-42.strasbourg.iot-lab.info", - "m3-43.strasbourg.iot-lab.info", - "m3-44.strasbourg.iot-lab.info", - "m3-45.strasbourg.iot-lab.info", - "m3-46.strasbourg.iot-lab.info", - "m3-47.strasbourg.iot-lab.info", - "m3-48.strasbourg.iot-lab.info", - "m3-49.strasbourg.iot-lab.info", - "m3-50.strasbourg.iot-lab.info", - "m3-51.strasbourg.iot-lab.info", - "m3-52.strasbourg.iot-lab.info", - "m3-53.strasbourg.iot-lab.info", - "m3-54.strasbourg.iot-lab.info", - "m3-55.strasbourg.iot-lab.info", - "m3-56.strasbourg.iot-lab.info", - "m3-57.strasbourg.iot-lab.info", - "m3-58.strasbourg.iot-lab.info", - "m3-59.strasbourg.iot-lab.info", - "m3-60.strasbourg.iot-lab.info", - "m3-61.strasbourg.iot-lab.info", - "m3-62.strasbourg.iot-lab.info", - "m3-63.strasbourg.iot-lab.info", - "m3-64.strasbourg.iot-lab.info", - "m3-40.strasbourg.iot-lab.info", - "m3-96.strasbourg.iot-lab.info", - "m3-97.strasbourg.iot-lab.info", - "m3-100.strasbourg.iot-lab.info" - ], - "lille": [ - "m3-6.lille.iot-lab.info", - "m3-9.lille.iot-lab.info", - "m3-10.lille.iot-lab.info", - "m3-11.lille.iot-lab.info", - "m3-14.lille.iot-lab.info", - "m3-15.lille.iot-lab.info", - "m3-18.lille.iot-lab.info", - "m3-19.lille.iot-lab.info", - "m3-23.lille.iot-lab.info", - "m3-24.lille.iot-lab.info", - "m3-26.lille.iot-lab.info", - "m3-27.lille.iot-lab.info", - "m3-28.lille.iot-lab.info", - "m3-32.lille.iot-lab.info", - "m3-33.lille.iot-lab.info", - "m3-38.lille.iot-lab.info", - "m3-39.lille.iot-lab.info", - "m3-40.lille.iot-lab.info", - "m3-42.lille.iot-lab.info", - "m3-47.lille.iot-lab.info", - "m3-49.lille.iot-lab.info", - "m3-51.lille.iot-lab.info", - "m3-52.lille.iot-lab.info", - "m3-54.lille.iot-lab.info", - "m3-56.lille.iot-lab.info", - "m3-57.lille.iot-lab.info", - "m3-63.lille.iot-lab.info", - "m3-64.lille.iot-lab.info", - "m3-65.lille.iot-lab.info", - "m3-66.lille.iot-lab.info", - "m3-67.lille.iot-lab.info", - "m3-70.lille.iot-lab.info", - "m3-71.lille.iot-lab.info", - "m3-72.lille.iot-lab.info", - "m3-73.lille.iot-lab.info", - "m3-74.lille.iot-lab.info", - "m3-76.lille.iot-lab.info", - "m3-82.lille.iot-lab.info", - "m3-83.lille.iot-lab.info", - "m3-85.lille.iot-lab.info", - "m3-87.lille.iot-lab.info", - "m3-88.lille.iot-lab.info", - "m3-89.lille.iot-lab.info", - "m3-90.lille.iot-lab.info", - "m3-91.lille.iot-lab.info", - "m3-92.lille.iot-lab.info", - "m3-94.lille.iot-lab.info", - "m3-95.lille.iot-lab.info", - "m3-97.lille.iot-lab.info", - "m3-100.lille.iot-lab.info", - "m3-102.lille.iot-lab.info", - "m3-104.lille.iot-lab.info", - "m3-106.lille.iot-lab.info", - "m3-108.lille.iot-lab.info", - "m3-110.lille.iot-lab.info", - "m3-111.lille.iot-lab.info", - "m3-113.lille.iot-lab.info", - "m3-114.lille.iot-lab.info", - "m3-115.lille.iot-lab.info", - "m3-116.lille.iot-lab.info", - "m3-118.lille.iot-lab.info", - "m3-121.lille.iot-lab.info", - "m3-122.lille.iot-lab.info", - "m3-125.lille.iot-lab.info", - "m3-127.lille.iot-lab.info", - "m3-130.lille.iot-lab.info", - "m3-131.lille.iot-lab.info", - "m3-132.lille.iot-lab.info", - "m3-133.lille.iot-lab.info", - "m3-134.lille.iot-lab.info", - "m3-135.lille.iot-lab.info", - "m3-136.lille.iot-lab.info", - "m3-138.lille.iot-lab.info", - "m3-140.lille.iot-lab.info", - "m3-142.lille.iot-lab.info", - "m3-143.lille.iot-lab.info", - "m3-144.lille.iot-lab.info", - "m3-145.lille.iot-lab.info", - "m3-148.lille.iot-lab.info", - "m3-156.lille.iot-lab.info", - "m3-157.lille.iot-lab.info", - "m3-159.lille.iot-lab.info", - "m3-161.lille.iot-lab.info", - "m3-163.lille.iot-lab.info", - "m3-169.lille.iot-lab.info", - "m3-170.lille.iot-lab.info", - "m3-173.lille.iot-lab.info", - "m3-174.lille.iot-lab.info", - "m3-177.lille.iot-lab.info", - "m3-179.lille.iot-lab.info", - "m3-181.lille.iot-lab.info", - "m3-182.lille.iot-lab.info", - "m3-184.lille.iot-lab.info", - "m3-187.lille.iot-lab.info", - "m3-188.lille.iot-lab.info", - "m3-190.lille.iot-lab.info", - "m3-193.lille.iot-lab.info", - "m3-194.lille.iot-lab.info", - "m3-195.lille.iot-lab.info", - "m3-196.lille.iot-lab.info", - "m3-197.lille.iot-lab.info", - "m3-200.lille.iot-lab.info", - "m3-202.lille.iot-lab.info", - "m3-203.lille.iot-lab.info", - "m3-204.lille.iot-lab.info", - "m3-209.lille.iot-lab.info", - "m3-211.lille.iot-lab.info", - "m3-212.lille.iot-lab.info", - "m3-213.lille.iot-lab.info", - "m3-214.lille.iot-lab.info", - "m3-215.lille.iot-lab.info", - "m3-217.lille.iot-lab.info", - "m3-218.lille.iot-lab.info", - "m3-219.lille.iot-lab.info", - "m3-220.lille.iot-lab.info", - "m3-221.lille.iot-lab.info", - "m3-223.lille.iot-lab.info", - "m3-226.lille.iot-lab.info", - "m3-228.lille.iot-lab.info", - "m3-229.lille.iot-lab.info", - "m3-230.lille.iot-lab.info", - "m3-232.lille.iot-lab.info", - "m3-233.lille.iot-lab.info", - "m3-238.lille.iot-lab.info", - "m3-239.lille.iot-lab.info", - "m3-240.lille.iot-lab.info", - "m3-241.lille.iot-lab.info", - "m3-243.lille.iot-lab.info", - "m3-244.lille.iot-lab.info", - "m3-245.lille.iot-lab.info", - "m3-246.lille.iot-lab.info", - "m3-248.lille.iot-lab.info", - "m3-250.lille.iot-lab.info", - "m3-253.lille.iot-lab.info", - "m3-254.lille.iot-lab.info", - "m3-255.lille.iot-lab.info", - "m3-256.lille.iot-lab.info", - "m3-2.lille.iot-lab.info", - "m3-4.lille.iot-lab.info", - "m3-5.lille.iot-lab.info", - "m3-7.lille.iot-lab.info", - "m3-12.lille.iot-lab.info", - "m3-13.lille.iot-lab.info", - "m3-16.lille.iot-lab.info", - "m3-17.lille.iot-lab.info", - "m3-20.lille.iot-lab.info", - "m3-21.lille.iot-lab.info", - "m3-22.lille.iot-lab.info", - "m3-30.lille.iot-lab.info", - "m3-31.lille.iot-lab.info", - "m3-35.lille.iot-lab.info", - "m3-36.lille.iot-lab.info", - "m3-37.lille.iot-lab.info", - "m3-43.lille.iot-lab.info", - "m3-45.lille.iot-lab.info", - "m3-46.lille.iot-lab.info", - "m3-48.lille.iot-lab.info", - "m3-50.lille.iot-lab.info", - "m3-53.lille.iot-lab.info", - "m3-58.lille.iot-lab.info", - "m3-59.lille.iot-lab.info", - "m3-60.lille.iot-lab.info", - "m3-61.lille.iot-lab.info", - "m3-62.lille.iot-lab.info", - "m3-69.lille.iot-lab.info", - "m3-75.lille.iot-lab.info", - "m3-77.lille.iot-lab.info", - "m3-78.lille.iot-lab.info", - "m3-81.lille.iot-lab.info", - "m3-84.lille.iot-lab.info", - "m3-86.lille.iot-lab.info", - "m3-93.lille.iot-lab.info", - "m3-96.lille.iot-lab.info", - "m3-98.lille.iot-lab.info", - "m3-99.lille.iot-lab.info", - "m3-103.lille.iot-lab.info", - "m3-105.lille.iot-lab.info", - "m3-107.lille.iot-lab.info", - "m3-109.lille.iot-lab.info", - "m3-112.lille.iot-lab.info", - "m3-117.lille.iot-lab.info", - "m3-120.lille.iot-lab.info", - "m3-123.lille.iot-lab.info", - "m3-124.lille.iot-lab.info", - "m3-126.lille.iot-lab.info", - "m3-137.lille.iot-lab.info", - "m3-139.lille.iot-lab.info", - "m3-141.lille.iot-lab.info", - "m3-146.lille.iot-lab.info", - "m3-147.lille.iot-lab.info", - "m3-151.lille.iot-lab.info", - "m3-152.lille.iot-lab.info", - "m3-153.lille.iot-lab.info", - "m3-154.lille.iot-lab.info", - "m3-155.lille.iot-lab.info", - "m3-158.lille.iot-lab.info", - "m3-162.lille.iot-lab.info", - "m3-164.lille.iot-lab.info", - "m3-165.lille.iot-lab.info", - "m3-166.lille.iot-lab.info", - "m3-167.lille.iot-lab.info", - "m3-168.lille.iot-lab.info", - "m3-171.lille.iot-lab.info", - "m3-172.lille.iot-lab.info", - "m3-175.lille.iot-lab.info", - "m3-176.lille.iot-lab.info", - "m3-180.lille.iot-lab.info", - "m3-183.lille.iot-lab.info", - "m3-185.lille.iot-lab.info", - "m3-191.lille.iot-lab.info", - "m3-192.lille.iot-lab.info", - "m3-198.lille.iot-lab.info", - "m3-199.lille.iot-lab.info", - "m3-201.lille.iot-lab.info", - "m3-205.lille.iot-lab.info", - "m3-207.lille.iot-lab.info", - "m3-208.lille.iot-lab.info", - "m3-222.lille.iot-lab.info", - "m3-224.lille.iot-lab.info", - "m3-227.lille.iot-lab.info", - "m3-231.lille.iot-lab.info", - "m3-234.lille.iot-lab.info", - "m3-242.lille.iot-lab.info", - "m3-247.lille.iot-lab.info", - "m3-249.lille.iot-lab.info", - "m3-252.lille.iot-lab.info" - ], - "paris": [ - "m3-1.paris.iot-lab.info", - "m3-2.paris.iot-lab.info", - "m3-3.paris.iot-lab.info", - "m3-4.paris.iot-lab.info", - "m3-5.paris.iot-lab.info", - "m3-7.paris.iot-lab.info", - "m3-8.paris.iot-lab.info", - "m3-9.paris.iot-lab.info", - "m3-10.paris.iot-lab.info", - "m3-11.paris.iot-lab.info", - "m3-12.paris.iot-lab.info", - "m3-13.paris.iot-lab.info", - "m3-14.paris.iot-lab.info", - "m3-15.paris.iot-lab.info", - "m3-16.paris.iot-lab.info", - "m3-17.paris.iot-lab.info", - "m3-18.paris.iot-lab.info", - "m3-19.paris.iot-lab.info", - "m3-20.paris.iot-lab.info", - "m3-21.paris.iot-lab.info", - "m3-22.paris.iot-lab.info", - "m3-23.paris.iot-lab.info", - "m3-24.paris.iot-lab.info", - "m3-25.paris.iot-lab.info", - "m3-26.paris.iot-lab.info", - "m3-27.paris.iot-lab.info", - "m3-28.paris.iot-lab.info", - "m3-29.paris.iot-lab.info", - "m3-30.paris.iot-lab.info", - "m3-31.paris.iot-lab.info", - "m3-32.paris.iot-lab.info", - "m3-33.paris.iot-lab.info", - "m3-35.paris.iot-lab.info", - "m3-36.paris.iot-lab.info", - "m3-37.paris.iot-lab.info", - "m3-38.paris.iot-lab.info", - "m3-39.paris.iot-lab.info", - "m3-40.paris.iot-lab.info", - "m3-41.paris.iot-lab.info", - "m3-42.paris.iot-lab.info", - "m3-43.paris.iot-lab.info", - "m3-45.paris.iot-lab.info", - "m3-46.paris.iot-lab.info", - "m3-47.paris.iot-lab.info", - "m3-49.paris.iot-lab.info", - "m3-50.paris.iot-lab.info", - "m3-51.paris.iot-lab.info", - "m3-52.paris.iot-lab.info", - "m3-53.paris.iot-lab.info", - "m3-54.paris.iot-lab.info", - "m3-55.paris.iot-lab.info", - "m3-56.paris.iot-lab.info", - "m3-57.paris.iot-lab.info", - "m3-58.paris.iot-lab.info", - "m3-59.paris.iot-lab.info", - "m3-60.paris.iot-lab.info", - "m3-61.paris.iot-lab.info", - "m3-62.paris.iot-lab.info", - "m3-63.paris.iot-lab.info", - "m3-64.paris.iot-lab.info", - "m3-65.paris.iot-lab.info", - "m3-66.paris.iot-lab.info", - "m3-67.paris.iot-lab.info", - "m3-68.paris.iot-lab.info", - "m3-69.paris.iot-lab.info", - "a8-1.paris.iot-lab.info", - "a8-2.paris.iot-lab.info", - "a8-3.paris.iot-lab.info", - "a8-4.paris.iot-lab.info", - "a8-5.paris.iot-lab.info", - "a8-6.paris.iot-lab.info", - "a8-7.paris.iot-lab.info", - "a8-8.paris.iot-lab.info", - "a8-9.paris.iot-lab.info", - "a8-10.paris.iot-lab.info", - "a8-11.paris.iot-lab.info", - "a8-12.paris.iot-lab.info", - "a8-13.paris.iot-lab.info", - "a8-14.paris.iot-lab.info", - "a8-15.paris.iot-lab.info", - "a8-16.paris.iot-lab.info", - "a8-17.paris.iot-lab.info", - "a8-18.paris.iot-lab.info", - "a8-19.paris.iot-lab.info", - "a8-20.paris.iot-lab.info", - "a8-21.paris.iot-lab.info", - "a8-22.paris.iot-lab.info", - "a8-23.paris.iot-lab.info", - "a8-24.paris.iot-lab.info", - "a8-25.paris.iot-lab.info", - "a8-26.paris.iot-lab.info", - "a8-27.paris.iot-lab.info", - "a8-28.paris.iot-lab.info", - "a8-29.paris.iot-lab.info", - "a8-30.paris.iot-lab.info", - "a8-31.paris.iot-lab.info", - "a8-32.paris.iot-lab.info", - "a8-33.paris.iot-lab.info", - "a8-34.paris.iot-lab.info", - "a8-35.paris.iot-lab.info", - "a8-36.paris.iot-lab.info", - "a8-37.paris.iot-lab.info", - "a8-38.paris.iot-lab.info", - "a8-39.paris.iot-lab.info", - "a8-40.paris.iot-lab.info", - "a8-41.paris.iot-lab.info", - "a8-42.paris.iot-lab.info", - "a8-43.paris.iot-lab.info", - "a8-44.paris.iot-lab.info", - "a8-45.paris.iot-lab.info", - "a8-46.paris.iot-lab.info", - "a8-47.paris.iot-lab.info", - "a8-48.paris.iot-lab.info", - "a8-49.paris.iot-lab.info", - "a8-50.paris.iot-lab.info", - "a8-51.paris.iot-lab.info", - "a8-52.paris.iot-lab.info", - "a8-53.paris.iot-lab.info", - "a8-54.paris.iot-lab.info", - "a8-55.paris.iot-lab.info", - "a8-56.paris.iot-lab.info", - "a8-57.paris.iot-lab.info", - "a8-58.paris.iot-lab.info", - "a8-59.paris.iot-lab.info", - "a8-60.paris.iot-lab.info", - "a8-61.paris.iot-lab.info", - "a8-62.paris.iot-lab.info" - ], - "euratech": [ - "wsn430-1.euratech.iot-lab.info", - "wsn430-2.euratech.iot-lab.info", - "wsn430-3.euratech.iot-lab.info", - "wsn430-4.euratech.iot-lab.info", - "wsn430-6.euratech.iot-lab.info", - "wsn430-7.euratech.iot-lab.info", - "wsn430-8.euratech.iot-lab.info", - "wsn430-9.euratech.iot-lab.info", - "wsn430-10.euratech.iot-lab.info", - "wsn430-11.euratech.iot-lab.info", - "wsn430-12.euratech.iot-lab.info", - "wsn430-14.euratech.iot-lab.info", - "wsn430-15.euratech.iot-lab.info", - "wsn430-17.euratech.iot-lab.info", - "wsn430-18.euratech.iot-lab.info", - "wsn430-19.euratech.iot-lab.info", - "wsn430-20.euratech.iot-lab.info", - "wsn430-21.euratech.iot-lab.info", - "wsn430-22.euratech.iot-lab.info", - "wsn430-23.euratech.iot-lab.info", - "wsn430-24.euratech.iot-lab.info", - "wsn430-25.euratech.iot-lab.info", - "wsn430-26.euratech.iot-lab.info", - "wsn430-27.euratech.iot-lab.info", - "wsn430-28.euratech.iot-lab.info", - "wsn430-29.euratech.iot-lab.info", - "wsn430-30.euratech.iot-lab.info", - "wsn430-31.euratech.iot-lab.info", - "wsn430-32.euratech.iot-lab.info", - "wsn430-33.euratech.iot-lab.info", - "wsn430-34.euratech.iot-lab.info", - "wsn430-35.euratech.iot-lab.info", - "wsn430-36.euratech.iot-lab.info", - "wsn430-37.euratech.iot-lab.info", - "wsn430-38.euratech.iot-lab.info", - "wsn430-39.euratech.iot-lab.info", - "wsn430-40.euratech.iot-lab.info", - "wsn430-41.euratech.iot-lab.info", - "wsn430-42.euratech.iot-lab.info", - "wsn430-43.euratech.iot-lab.info", - "wsn430-44.euratech.iot-lab.info", - "wsn430-46.euratech.iot-lab.info", - "wsn430-47.euratech.iot-lab.info", - "wsn430-48.euratech.iot-lab.info", - "wsn430-49.euratech.iot-lab.info", - "wsn430-50.euratech.iot-lab.info", - "wsn430-51.euratech.iot-lab.info", - "wsn430-52.euratech.iot-lab.info", - "wsn430-53.euratech.iot-lab.info", - "wsn430-54.euratech.iot-lab.info", - "wsn430-55.euratech.iot-lab.info", - "wsn430-56.euratech.iot-lab.info", - "wsn430-57.euratech.iot-lab.info", - "wsn430-58.euratech.iot-lab.info", - "wsn430-59.euratech.iot-lab.info", - "wsn430-60.euratech.iot-lab.info", - "wsn430-61.euratech.iot-lab.info", - "wsn430-62.euratech.iot-lab.info", - "wsn430-63.euratech.iot-lab.info", - "wsn430-64.euratech.iot-lab.info", - "wsn430-65.euratech.iot-lab.info", - "wsn430-66.euratech.iot-lab.info", - "wsn430-67.euratech.iot-lab.info", - "wsn430-68.euratech.iot-lab.info", - "wsn430-69.euratech.iot-lab.info", - "wsn430-70.euratech.iot-lab.info", - "wsn430-71.euratech.iot-lab.info", - "wsn430-72.euratech.iot-lab.info", - "wsn430-73.euratech.iot-lab.info", - "wsn430-74.euratech.iot-lab.info", - "wsn430-75.euratech.iot-lab.info", - "wsn430-76.euratech.iot-lab.info", - "wsn430-77.euratech.iot-lab.info", - "wsn430-78.euratech.iot-lab.info", - "wsn430-79.euratech.iot-lab.info", - "wsn430-80.euratech.iot-lab.info", - "wsn430-81.euratech.iot-lab.info", - "wsn430-82.euratech.iot-lab.info", - "wsn430-83.euratech.iot-lab.info", - "wsn430-84.euratech.iot-lab.info", - "wsn430-85.euratech.iot-lab.info", - "wsn430-86.euratech.iot-lab.info", - "wsn430-87.euratech.iot-lab.info", - "wsn430-88.euratech.iot-lab.info", - "wsn430-89.euratech.iot-lab.info", - "wsn430-90.euratech.iot-lab.info", - "wsn430-91.euratech.iot-lab.info", - "wsn430-92.euratech.iot-lab.info", - "wsn430-93.euratech.iot-lab.info", - "wsn430-94.euratech.iot-lab.info", - "wsn430-95.euratech.iot-lab.info", - "wsn430-96.euratech.iot-lab.info", - "wsn430-97.euratech.iot-lab.info", - "wsn430-98.euratech.iot-lab.info", - "wsn430-99.euratech.iot-lab.info", - "wsn430-100.euratech.iot-lab.info", - "wsn430-101.euratech.iot-lab.info", - "wsn430-102.euratech.iot-lab.info", - "wsn430-103.euratech.iot-lab.info", - "wsn430-104.euratech.iot-lab.info", - "wsn430-105.euratech.iot-lab.info", - "wsn430-106.euratech.iot-lab.info", - "wsn430-107.euratech.iot-lab.info", - "wsn430-108.euratech.iot-lab.info", - "wsn430-109.euratech.iot-lab.info", - "wsn430-110.euratech.iot-lab.info", - "wsn430-111.euratech.iot-lab.info", - "wsn430-112.euratech.iot-lab.info", - "wsn430-113.euratech.iot-lab.info", - "wsn430-114.euratech.iot-lab.info", - "wsn430-115.euratech.iot-lab.info", - "wsn430-116.euratech.iot-lab.info", - "wsn430-117.euratech.iot-lab.info", - "wsn430-118.euratech.iot-lab.info", - "wsn430-120.euratech.iot-lab.info", - "wsn430-121.euratech.iot-lab.info", - "wsn430-122.euratech.iot-lab.info", - "wsn430-123.euratech.iot-lab.info", - "wsn430-124.euratech.iot-lab.info", - "wsn430-125.euratech.iot-lab.info", - "wsn430-127.euratech.iot-lab.info", - "wsn430-128.euratech.iot-lab.info", - "wsn430-129.euratech.iot-lab.info", - "wsn430-130.euratech.iot-lab.info", - "wsn430-131.euratech.iot-lab.info", - "wsn430-132.euratech.iot-lab.info", - "wsn430-133.euratech.iot-lab.info", - "wsn430-134.euratech.iot-lab.info", - "wsn430-135.euratech.iot-lab.info", - "wsn430-136.euratech.iot-lab.info", - "wsn430-137.euratech.iot-lab.info", - "wsn430-138.euratech.iot-lab.info", - "wsn430-139.euratech.iot-lab.info", - "wsn430-140.euratech.iot-lab.info", - "wsn430-141.euratech.iot-lab.info", - "wsn430-142.euratech.iot-lab.info", - "wsn430-143.euratech.iot-lab.info", - "wsn430-144.euratech.iot-lab.info", - "wsn430-145.euratech.iot-lab.info", - "wsn430-146.euratech.iot-lab.info", - "wsn430-147.euratech.iot-lab.info", - "wsn430-148.euratech.iot-lab.info", - "wsn430-149.euratech.iot-lab.info", - "wsn430-150.euratech.iot-lab.info", - "wsn430-151.euratech.iot-lab.info", - "wsn430-152.euratech.iot-lab.info", - "wsn430-153.euratech.iot-lab.info", - "wsn430-154.euratech.iot-lab.info", - "wsn430-155.euratech.iot-lab.info", - "wsn430-156.euratech.iot-lab.info", - "wsn430-157.euratech.iot-lab.info", - "wsn430-158.euratech.iot-lab.info", - "wsn430-159.euratech.iot-lab.info", - "wsn430-160.euratech.iot-lab.info", - "wsn430-161.euratech.iot-lab.info", - "wsn430-162.euratech.iot-lab.info", - "wsn430-163.euratech.iot-lab.info", - "wsn430-164.euratech.iot-lab.info", - "wsn430-165.euratech.iot-lab.info", - "wsn430-166.euratech.iot-lab.info", - "wsn430-167.euratech.iot-lab.info", - "wsn430-169.euratech.iot-lab.info", - "wsn430-170.euratech.iot-lab.info", - "wsn430-171.euratech.iot-lab.info", - "wsn430-172.euratech.iot-lab.info", - "wsn430-173.euratech.iot-lab.info", - "wsn430-174.euratech.iot-lab.info", - "wsn430-175.euratech.iot-lab.info", - "wsn430-176.euratech.iot-lab.info", - "wsn430-177.euratech.iot-lab.info", - "wsn430-178.euratech.iot-lab.info", - "wsn430-179.euratech.iot-lab.info", - "wsn430-180.euratech.iot-lab.info", - "wsn430-181.euratech.iot-lab.info", - "wsn430-182.euratech.iot-lab.info", - "wsn430-183.euratech.iot-lab.info", - "wsn430-184.euratech.iot-lab.info", - "wsn430-185.euratech.iot-lab.info", - "wsn430-186.euratech.iot-lab.info", - "wsn430-187.euratech.iot-lab.info", - "wsn430-188.euratech.iot-lab.info", - "wsn430-189.euratech.iot-lab.info", - "wsn430-191.euratech.iot-lab.info", - "wsn430-192.euratech.iot-lab.info", - "wsn430-193.euratech.iot-lab.info", - "wsn430-194.euratech.iot-lab.info", - "wsn430-195.euratech.iot-lab.info", - "wsn430-196.euratech.iot-lab.info", - "wsn430-197.euratech.iot-lab.info", - "wsn430-198.euratech.iot-lab.info", - "wsn430-199.euratech.iot-lab.info", - "wsn430-200.euratech.iot-lab.info", - "wsn430-202.euratech.iot-lab.info", - "wsn430-203.euratech.iot-lab.info", - "wsn430-204.euratech.iot-lab.info", - "wsn430-205.euratech.iot-lab.info", - "wsn430-206.euratech.iot-lab.info", - "wsn430-207.euratech.iot-lab.info", - "wsn430-208.euratech.iot-lab.info", - "wsn430-209.euratech.iot-lab.info", - "wsn430-210.euratech.iot-lab.info", - "wsn430-211.euratech.iot-lab.info", - "wsn430-212.euratech.iot-lab.info", - "wsn430-213.euratech.iot-lab.info", - "wsn430-214.euratech.iot-lab.info", - "wsn430-215.euratech.iot-lab.info", - "wsn430-216.euratech.iot-lab.info", - "wsn430-217.euratech.iot-lab.info", - "wsn430-218.euratech.iot-lab.info", - "wsn430-219.euratech.iot-lab.info", - "wsn430-220.euratech.iot-lab.info", - "wsn430-221.euratech.iot-lab.info", - "wsn430-222.euratech.iot-lab.info", - "wsn430-223.euratech.iot-lab.info", - "wsn430-224.euratech.iot-lab.info" - ], - "saclay": [ - "m3-1.saclay.iot-lab.info", - "m3-2.saclay.iot-lab.info", - "m3-3.saclay.iot-lab.info", - "m3-4.saclay.iot-lab.info", - "m3-5.saclay.iot-lab.info", - "m3-6.saclay.iot-lab.info", - "m3-7.saclay.iot-lab.info", - "m3-8.saclay.iot-lab.info", - "m3-9.saclay.iot-lab.info", - "m3-10.saclay.iot-lab.info", - "m3-11.saclay.iot-lab.info", - "m3-12.saclay.iot-lab.info", - "a8-1.saclay.iot-lab.info", - "a8-2.saclay.iot-lab.info", - "a8-3.saclay.iot-lab.info", - "a8-4.saclay.iot-lab.info", - "a8-5.saclay.iot-lab.info", - "a8-6.saclay.iot-lab.info", - "a8-7.saclay.iot-lab.info", - "a8-8.saclay.iot-lab.info", - "a8-9.saclay.iot-lab.info", - "a8-10.saclay.iot-lab.info", - "a8-11.saclay.iot-lab.info", - "a8-12.saclay.iot-lab.info", - "a8-13.saclay.iot-lab.info", - "a8-14.saclay.iot-lab.info", - "a8-16.saclay.iot-lab.info", - "a8-17.saclay.iot-lab.info", - "a8-18.saclay.iot-lab.info", - "a8-19.saclay.iot-lab.info", - "a8-20.saclay.iot-lab.info", - "a8-21.saclay.iot-lab.info", - "a8-22.saclay.iot-lab.info", - "a8-23.saclay.iot-lab.info", - "a8-24.saclay.iot-lab.info", - "a8-25.saclay.iot-lab.info", - "a8-26.saclay.iot-lab.info", - "a8-27.saclay.iot-lab.info", - "a8-28.saclay.iot-lab.info", - "a8-29.saclay.iot-lab.info", - "a8-30.saclay.iot-lab.info", - "a8-31.saclay.iot-lab.info", - "a8-32.saclay.iot-lab.info", - "a8-33.saclay.iot-lab.info", - "a8-34.saclay.iot-lab.info", - "a8-35.saclay.iot-lab.info", - "a8-36.saclay.iot-lab.info", - "a8-37.saclay.iot-lab.info", - "a8-38.saclay.iot-lab.info", - "a8-39.saclay.iot-lab.info", - "a8-40.saclay.iot-lab.info", - "a8-41.saclay.iot-lab.info", - "a8-42.saclay.iot-lab.info", - "a8-43.saclay.iot-lab.info", - "a8-44.saclay.iot-lab.info", - "a8-45.saclay.iot-lab.info", - "a8-46.saclay.iot-lab.info", - "a8-47.saclay.iot-lab.info", - "a8-49.saclay.iot-lab.info", - "a8-50.saclay.iot-lab.info", - "a8-51.saclay.iot-lab.info", - "a8-52.saclay.iot-lab.info", - "a8-53.saclay.iot-lab.info", - "a8-54.saclay.iot-lab.info", - "a8-55.saclay.iot-lab.info", - "a8-56.saclay.iot-lab.info", - "a8-57.saclay.iot-lab.info", - "a8-58.saclay.iot-lab.info", - "a8-59.saclay.iot-lab.info", - "a8-60.saclay.iot-lab.info", - "a8-61.saclay.iot-lab.info", - "a8-62.saclay.iot-lab.info", - "a8-63.saclay.iot-lab.info", - "a8-64.saclay.iot-lab.info", - "a8-65.saclay.iot-lab.info", - "a8-66.saclay.iot-lab.info", - "a8-67.saclay.iot-lab.info", - "a8-68.saclay.iot-lab.info", - "a8-69.saclay.iot-lab.info", - "a8-70.saclay.iot-lab.info", - "a8-71.saclay.iot-lab.info", - "a8-72.saclay.iot-lab.info", - "a8-73.saclay.iot-lab.info", - "a8-74.saclay.iot-lab.info", - "a8-75.saclay.iot-lab.info", - "a8-76.saclay.iot-lab.info", - "a8-77.saclay.iot-lab.info", - "a8-78.saclay.iot-lab.info", - "a8-79.saclay.iot-lab.info", - "a8-80.saclay.iot-lab.info", - "a8-81.saclay.iot-lab.info", - "a8-82.saclay.iot-lab.info", - "a8-83.saclay.iot-lab.info", - "a8-84.saclay.iot-lab.info", - "a8-85.saclay.iot-lab.info", - "a8-86.saclay.iot-lab.info", - "a8-87.saclay.iot-lab.info", - "a8-88.saclay.iot-lab.info", - "a8-89.saclay.iot-lab.info", - "a8-90.saclay.iot-lab.info", - "a8-91.saclay.iot-lab.info", - "a8-92.saclay.iot-lab.info", - "a8-93.saclay.iot-lab.info", - "a8-94.saclay.iot-lab.info", - "a8-95.saclay.iot-lab.info", - "a8-96.saclay.iot-lab.info", - "a8-97.saclay.iot-lab.info", - "a8-98.saclay.iot-lab.info", - "a8-99.saclay.iot-lab.info", - "a8-100.saclay.iot-lab.info", - "a8-101.saclay.iot-lab.info", - "a8-102.saclay.iot-lab.info", - "a8-103.saclay.iot-lab.info", - "a8-104.saclay.iot-lab.info", - "a8-105.saclay.iot-lab.info", - "a8-106.saclay.iot-lab.info", - "a8-107.saclay.iot-lab.info", - "a8-108.saclay.iot-lab.info", - "a8-109.saclay.iot-lab.info", - "a8-110.saclay.iot-lab.info", - "a8-111.saclay.iot-lab.info", - "a8-112.saclay.iot-lab.info", - "a8-113.saclay.iot-lab.info", - "a8-114.saclay.iot-lab.info", - "a8-115.saclay.iot-lab.info", - "a8-116.saclay.iot-lab.info", - "a8-117.saclay.iot-lab.info", - "a8-118.saclay.iot-lab.info", - "a8-119.saclay.iot-lab.info", - "a8-120.saclay.iot-lab.info", - "a8-121.saclay.iot-lab.info", - "a8-122.saclay.iot-lab.info", - "a8-124.saclay.iot-lab.info", - "a8-125.saclay.iot-lab.info", - "a8-126.saclay.iot-lab.info", - "a8-127.saclay.iot-lab.info", - "a8-128.saclay.iot-lab.info", - "a8-130.saclay.iot-lab.info", - "a8-131.saclay.iot-lab.info", - "a8-132.saclay.iot-lab.info", - "a8-133.saclay.iot-lab.info", - "a8-134.saclay.iot-lab.info", - "a8-135.saclay.iot-lab.info", - "a8-136.saclay.iot-lab.info", - "a8-137.saclay.iot-lab.info", - "a8-138.saclay.iot-lab.info", - "a8-139.saclay.iot-lab.info", - "a8-140.saclay.iot-lab.info", - "a8-141.saclay.iot-lab.info", - "a8-142.saclay.iot-lab.info", - "a8-143.saclay.iot-lab.info", - "a8-144.saclay.iot-lab.info", - "a8-145.saclay.iot-lab.info", - "a8-146.saclay.iot-lab.info", - "a8-147.saclay.iot-lab.info", - "a8-148.saclay.iot-lab.info", - "a8-149.saclay.iot-lab.info", - "a8-150.saclay.iot-lab.info", - "a8-151.saclay.iot-lab.info", - "a8-152.saclay.iot-lab.info", - "a8-153.saclay.iot-lab.info", - "a8-154.saclay.iot-lab.info", - "a8-155.saclay.iot-lab.info", - "a8-156.saclay.iot-lab.info", - "a8-157.saclay.iot-lab.info", - "a8-158.saclay.iot-lab.info", - "a8-159.saclay.iot-lab.info", - "a8-160.saclay.iot-lab.info", - "a8-162.saclay.iot-lab.info", - "a8-163.saclay.iot-lab.info", - "a8-164.saclay.iot-lab.info", - "a8-165.saclay.iot-lab.info", - "a8-166.saclay.iot-lab.info", - "a8-167.saclay.iot-lab.info", - "a8-168.saclay.iot-lab.info", - "a8-169.saclay.iot-lab.info", - "a8-170.saclay.iot-lab.info", - "a8-171.saclay.iot-lab.info", - "a8-172.saclay.iot-lab.info", - "a8-173.saclay.iot-lab.info", - "a8-174.saclay.iot-lab.info", - "a8-175.saclay.iot-lab.info", - "custom-1.saclay.iot-lab.info", - "custom-2.saclay.iot-lab.info", - "custom-3.saclay.iot-lab.info", - "custom-4.saclay.iot-lab.info", - "custom-5.saclay.iot-lab.info", - "custom-6.saclay.iot-lab.info", - "custom-7.saclay.iot-lab.info", - "custom-8.saclay.iot-lab.info" - ], - "rennes": [ - "wsn430-2.rennes.iot-lab.info", - "wsn430-3.rennes.iot-lab.info", - "wsn430-5.rennes.iot-lab.info", - "wsn430-6.rennes.iot-lab.info", - "wsn430-7.rennes.iot-lab.info", - "wsn430-8.rennes.iot-lab.info", - "wsn430-9.rennes.iot-lab.info", - "wsn430-10.rennes.iot-lab.info", - "wsn430-11.rennes.iot-lab.info", - "wsn430-12.rennes.iot-lab.info", - "wsn430-13.rennes.iot-lab.info", - "wsn430-14.rennes.iot-lab.info", - "wsn430-15.rennes.iot-lab.info", - "wsn430-16.rennes.iot-lab.info", - "wsn430-17.rennes.iot-lab.info", - "wsn430-18.rennes.iot-lab.info", - "wsn430-19.rennes.iot-lab.info", - "wsn430-20.rennes.iot-lab.info", - "wsn430-21.rennes.iot-lab.info", - "wsn430-22.rennes.iot-lab.info", - "wsn430-23.rennes.iot-lab.info", - "wsn430-24.rennes.iot-lab.info", - "wsn430-25.rennes.iot-lab.info", - "wsn430-26.rennes.iot-lab.info", - "wsn430-27.rennes.iot-lab.info", - "wsn430-28.rennes.iot-lab.info", - "wsn430-29.rennes.iot-lab.info", - "wsn430-30.rennes.iot-lab.info", - "wsn430-31.rennes.iot-lab.info", - "wsn430-32.rennes.iot-lab.info", - "wsn430-34.rennes.iot-lab.info", - "wsn430-35.rennes.iot-lab.info", - "wsn430-36.rennes.iot-lab.info", - "wsn430-37.rennes.iot-lab.info", - "wsn430-38.rennes.iot-lab.info", - "wsn430-39.rennes.iot-lab.info", - "wsn430-40.rennes.iot-lab.info", - "wsn430-41.rennes.iot-lab.info", - "wsn430-42.rennes.iot-lab.info", - "wsn430-43.rennes.iot-lab.info", - "wsn430-44.rennes.iot-lab.info", - "wsn430-45.rennes.iot-lab.info", - "wsn430-46.rennes.iot-lab.info", - "wsn430-49.rennes.iot-lab.info", - "wsn430-50.rennes.iot-lab.info", - "wsn430-51.rennes.iot-lab.info", - "wsn430-52.rennes.iot-lab.info", - "wsn430-53.rennes.iot-lab.info", - "wsn430-54.rennes.iot-lab.info", - "wsn430-55.rennes.iot-lab.info", - "wsn430-56.rennes.iot-lab.info", - "wsn430-57.rennes.iot-lab.info", - "wsn430-58.rennes.iot-lab.info", - "wsn430-59.rennes.iot-lab.info", - "wsn430-60.rennes.iot-lab.info", - "wsn430-61.rennes.iot-lab.info", - "wsn430-62.rennes.iot-lab.info", - "wsn430-63.rennes.iot-lab.info", - "wsn430-64.rennes.iot-lab.info", - "wsn430-65.rennes.iot-lab.info", - "wsn430-66.rennes.iot-lab.info", - "wsn430-67.rennes.iot-lab.info", - "wsn430-68.rennes.iot-lab.info", - "wsn430-69.rennes.iot-lab.info", - "wsn430-70.rennes.iot-lab.info", - "wsn430-71.rennes.iot-lab.info", - "wsn430-73.rennes.iot-lab.info", - "wsn430-74.rennes.iot-lab.info", - "wsn430-75.rennes.iot-lab.info", - "wsn430-76.rennes.iot-lab.info", - "wsn430-77.rennes.iot-lab.info", - "wsn430-78.rennes.iot-lab.info", - "wsn430-80.rennes.iot-lab.info", - "wsn430-81.rennes.iot-lab.info", - "wsn430-82.rennes.iot-lab.info", - "wsn430-83.rennes.iot-lab.info", - "wsn430-84.rennes.iot-lab.info", - "wsn430-85.rennes.iot-lab.info", - "wsn430-86.rennes.iot-lab.info", - "wsn430-87.rennes.iot-lab.info", - "wsn430-88.rennes.iot-lab.info", - "wsn430-89.rennes.iot-lab.info", - "wsn430-90.rennes.iot-lab.info", - "wsn430-91.rennes.iot-lab.info", - "wsn430-92.rennes.iot-lab.info", - "wsn430-93.rennes.iot-lab.info", - "wsn430-94.rennes.iot-lab.info", - "wsn430-95.rennes.iot-lab.info", - "wsn430-96.rennes.iot-lab.info", - "wsn430-97.rennes.iot-lab.info", - "wsn430-101.rennes.iot-lab.info", - "wsn430-102.rennes.iot-lab.info", - "wsn430-104.rennes.iot-lab.info", - "wsn430-106.rennes.iot-lab.info", - "wsn430-109.rennes.iot-lab.info", - "wsn430-110.rennes.iot-lab.info", - "wsn430-111.rennes.iot-lab.info", - "wsn430-112.rennes.iot-lab.info", - "wsn430-113.rennes.iot-lab.info", - "wsn430-114.rennes.iot-lab.info", - "wsn430-116.rennes.iot-lab.info", - "wsn430-118.rennes.iot-lab.info", - "wsn430-119.rennes.iot-lab.info", - "wsn430-120.rennes.iot-lab.info", - "wsn430-121.rennes.iot-lab.info", - "wsn430-122.rennes.iot-lab.info", - "wsn430-123.rennes.iot-lab.info", - "wsn430-125.rennes.iot-lab.info", - "wsn430-126.rennes.iot-lab.info", - "wsn430-127.rennes.iot-lab.info", - "wsn430-128.rennes.iot-lab.info", - "wsn430-129.rennes.iot-lab.info", - "wsn430-133.rennes.iot-lab.info", - "wsn430-134.rennes.iot-lab.info", - "wsn430-135.rennes.iot-lab.info", - "wsn430-136.rennes.iot-lab.info", - "wsn430-138.rennes.iot-lab.info", - "wsn430-139.rennes.iot-lab.info", - "wsn430-140.rennes.iot-lab.info", - "wsn430-141.rennes.iot-lab.info", - "wsn430-142.rennes.iot-lab.info", - "wsn430-143.rennes.iot-lab.info", - "wsn430-144.rennes.iot-lab.info", - "wsn430-145.rennes.iot-lab.info", - "wsn430-146.rennes.iot-lab.info", - "wsn430-147.rennes.iot-lab.info", - "wsn430-148.rennes.iot-lab.info", - "wsn430-150.rennes.iot-lab.info", - "wsn430-152.rennes.iot-lab.info", - "wsn430-153.rennes.iot-lab.info", - "wsn430-154.rennes.iot-lab.info", - "wsn430-155.rennes.iot-lab.info", - "wsn430-156.rennes.iot-lab.info", - "wsn430-157.rennes.iot-lab.info", - "wsn430-158.rennes.iot-lab.info", - "wsn430-159.rennes.iot-lab.info", - "wsn430-160.rennes.iot-lab.info", - "wsn430-161.rennes.iot-lab.info", - "wsn430-162.rennes.iot-lab.info", - "wsn430-163.rennes.iot-lab.info", - "wsn430-164.rennes.iot-lab.info", - "wsn430-165.rennes.iot-lab.info", - "wsn430-166.rennes.iot-lab.info", - "wsn430-167.rennes.iot-lab.info", - "wsn430-168.rennes.iot-lab.info", - "wsn430-169.rennes.iot-lab.info", - "wsn430-170.rennes.iot-lab.info", - "wsn430-171.rennes.iot-lab.info", - "wsn430-172.rennes.iot-lab.info", - "wsn430-173.rennes.iot-lab.info", - "wsn430-174.rennes.iot-lab.info", - "wsn430-175.rennes.iot-lab.info", - "wsn430-176.rennes.iot-lab.info", - "wsn430-177.rennes.iot-lab.info", - "wsn430-178.rennes.iot-lab.info", - "wsn430-179.rennes.iot-lab.info", - "wsn430-180.rennes.iot-lab.info", - "wsn430-181.rennes.iot-lab.info", - "wsn430-182.rennes.iot-lab.info", - "wsn430-183.rennes.iot-lab.info", - "wsn430-184.rennes.iot-lab.info", - "wsn430-185.rennes.iot-lab.info", - "wsn430-186.rennes.iot-lab.info", - "wsn430-187.rennes.iot-lab.info", - "wsn430-188.rennes.iot-lab.info", - "wsn430-189.rennes.iot-lab.info", - "wsn430-190.rennes.iot-lab.info", - "wsn430-191.rennes.iot-lab.info", - "wsn430-193.rennes.iot-lab.info", - "wsn430-194.rennes.iot-lab.info", - "wsn430-195.rennes.iot-lab.info", - "wsn430-196.rennes.iot-lab.info", - "wsn430-197.rennes.iot-lab.info", - "wsn430-198.rennes.iot-lab.info", - "wsn430-199.rennes.iot-lab.info", - "wsn430-200.rennes.iot-lab.info", - "wsn430-201.rennes.iot-lab.info", - "wsn430-202.rennes.iot-lab.info", - "wsn430-203.rennes.iot-lab.info", - "wsn430-204.rennes.iot-lab.info", - "wsn430-205.rennes.iot-lab.info", - "wsn430-206.rennes.iot-lab.info", - "wsn430-207.rennes.iot-lab.info", - "wsn430-208.rennes.iot-lab.info", - "wsn430-209.rennes.iot-lab.info", - "wsn430-210.rennes.iot-lab.info", - "wsn430-211.rennes.iot-lab.info", - "wsn430-212.rennes.iot-lab.info", - "wsn430-213.rennes.iot-lab.info", - "wsn430-214.rennes.iot-lab.info", - "wsn430-215.rennes.iot-lab.info", - "wsn430-216.rennes.iot-lab.info", - "wsn430-217.rennes.iot-lab.info", - "wsn430-218.rennes.iot-lab.info", - "wsn430-219.rennes.iot-lab.info", - "wsn430-220.rennes.iot-lab.info", - "wsn430-221.rennes.iot-lab.info", - "wsn430-222.rennes.iot-lab.info", - "wsn430-223.rennes.iot-lab.info", - "wsn430-225.rennes.iot-lab.info", - "wsn430-226.rennes.iot-lab.info", - "wsn430-227.rennes.iot-lab.info", - "wsn430-228.rennes.iot-lab.info", - "wsn430-229.rennes.iot-lab.info", - "wsn430-230.rennes.iot-lab.info", - "wsn430-231.rennes.iot-lab.info", - "wsn430-232.rennes.iot-lab.info", - "wsn430-233.rennes.iot-lab.info", - "wsn430-234.rennes.iot-lab.info", - "wsn430-235.rennes.iot-lab.info", - "wsn430-236.rennes.iot-lab.info", - "wsn430-237.rennes.iot-lab.info", - "wsn430-238.rennes.iot-lab.info", - "wsn430-240.rennes.iot-lab.info", - "wsn430-241.rennes.iot-lab.info", - "wsn430-242.rennes.iot-lab.info", - "wsn430-243.rennes.iot-lab.info", - "wsn430-244.rennes.iot-lab.info", - "wsn430-245.rennes.iot-lab.info", - "wsn430-247.rennes.iot-lab.info", - "wsn430-248.rennes.iot-lab.info", - "wsn430-249.rennes.iot-lab.info", - "wsn430-250.rennes.iot-lab.info", - "wsn430-251.rennes.iot-lab.info", - "wsn430-252.rennes.iot-lab.info", - "wsn430-253.rennes.iot-lab.info", - "wsn430-254.rennes.iot-lab.info", - "wsn430-255.rennes.iot-lab.info", - "wsn430-256.rennes.iot-lab.info" - ], - "grenoble": [ - "wsn430-1.grenoble.iot-lab.info", - "wsn430-2.grenoble.iot-lab.info", - "wsn430-3.grenoble.iot-lab.info", - "wsn430-4.grenoble.iot-lab.info", - "wsn430-5.grenoble.iot-lab.info", - "wsn430-6.grenoble.iot-lab.info", - "wsn430-7.grenoble.iot-lab.info", - "wsn430-8.grenoble.iot-lab.info", - "wsn430-10.grenoble.iot-lab.info", - "wsn430-11.grenoble.iot-lab.info", - "wsn430-12.grenoble.iot-lab.info", - "wsn430-13.grenoble.iot-lab.info", - "wsn430-14.grenoble.iot-lab.info", - "wsn430-15.grenoble.iot-lab.info", - "wsn430-16.grenoble.iot-lab.info", - "wsn430-17.grenoble.iot-lab.info", - "wsn430-18.grenoble.iot-lab.info", - "wsn430-19.grenoble.iot-lab.info", - "wsn430-20.grenoble.iot-lab.info", - "wsn430-21.grenoble.iot-lab.info", - "wsn430-22.grenoble.iot-lab.info", - "wsn430-23.grenoble.iot-lab.info", - "wsn430-24.grenoble.iot-lab.info", - "wsn430-25.grenoble.iot-lab.info", - "wsn430-26.grenoble.iot-lab.info", - "wsn430-27.grenoble.iot-lab.info", - "wsn430-28.grenoble.iot-lab.info", - "wsn430-29.grenoble.iot-lab.info", - "wsn430-30.grenoble.iot-lab.info", - "wsn430-31.grenoble.iot-lab.info", - "wsn430-32.grenoble.iot-lab.info", - "wsn430-33.grenoble.iot-lab.info", - "wsn430-34.grenoble.iot-lab.info", - "wsn430-35.grenoble.iot-lab.info", - "wsn430-36.grenoble.iot-lab.info", - "wsn430-37.grenoble.iot-lab.info", - "wsn430-38.grenoble.iot-lab.info", - "wsn430-39.grenoble.iot-lab.info", - "wsn430-40.grenoble.iot-lab.info", - "wsn430-41.grenoble.iot-lab.info", - "wsn430-42.grenoble.iot-lab.info", - "wsn430-43.grenoble.iot-lab.info", - "wsn430-44.grenoble.iot-lab.info", - "wsn430-45.grenoble.iot-lab.info", - "wsn430-46.grenoble.iot-lab.info", - "wsn430-47.grenoble.iot-lab.info", - "wsn430-48.grenoble.iot-lab.info", - "wsn430-49.grenoble.iot-lab.info", - "wsn430-50.grenoble.iot-lab.info", - "wsn430-51.grenoble.iot-lab.info", - "wsn430-52.grenoble.iot-lab.info", - "wsn430-53.grenoble.iot-lab.info", - "wsn430-54.grenoble.iot-lab.info", - "wsn430-55.grenoble.iot-lab.info", - "wsn430-56.grenoble.iot-lab.info", - "wsn430-57.grenoble.iot-lab.info", - "wsn430-58.grenoble.iot-lab.info", - "wsn430-59.grenoble.iot-lab.info", - "wsn430-60.grenoble.iot-lab.info", - "wsn430-61.grenoble.iot-lab.info", - "wsn430-62.grenoble.iot-lab.info", - "wsn430-63.grenoble.iot-lab.info", - "wsn430-64.grenoble.iot-lab.info", - "wsn430-65.grenoble.iot-lab.info", - "wsn430-66.grenoble.iot-lab.info", - "wsn430-69.grenoble.iot-lab.info", - "wsn430-70.grenoble.iot-lab.info", - "wsn430-71.grenoble.iot-lab.info", - "wsn430-72.grenoble.iot-lab.info", - "wsn430-73.grenoble.iot-lab.info", - "wsn430-74.grenoble.iot-lab.info", - "wsn430-75.grenoble.iot-lab.info", - "wsn430-76.grenoble.iot-lab.info", - "wsn430-77.grenoble.iot-lab.info", - "wsn430-78.grenoble.iot-lab.info", - "wsn430-79.grenoble.iot-lab.info", - "wsn430-80.grenoble.iot-lab.info", - "wsn430-81.grenoble.iot-lab.info", - "wsn430-82.grenoble.iot-lab.info", - "wsn430-83.grenoble.iot-lab.info", - "wsn430-84.grenoble.iot-lab.info", - "wsn430-85.grenoble.iot-lab.info", - "wsn430-86.grenoble.iot-lab.info", - "wsn430-87.grenoble.iot-lab.info", - "wsn430-88.grenoble.iot-lab.info", - "wsn430-89.grenoble.iot-lab.info", - "wsn430-90.grenoble.iot-lab.info", - "wsn430-91.grenoble.iot-lab.info", - "wsn430-92.grenoble.iot-lab.info", - "wsn430-93.grenoble.iot-lab.info", - "wsn430-94.grenoble.iot-lab.info", - "wsn430-95.grenoble.iot-lab.info", - "wsn430-96.grenoble.iot-lab.info", - "wsn430-97.grenoble.iot-lab.info", - "wsn430-98.grenoble.iot-lab.info", - "wsn430-99.grenoble.iot-lab.info", - "wsn430-100.grenoble.iot-lab.info", - "wsn430-101.grenoble.iot-lab.info", - "wsn430-102.grenoble.iot-lab.info", - "wsn430-126.grenoble.iot-lab.info", - "wsn430-127.grenoble.iot-lab.info", - "wsn430-128.grenoble.iot-lab.info", - "wsn430-129.grenoble.iot-lab.info", - "wsn430-130.grenoble.iot-lab.info", - "wsn430-131.grenoble.iot-lab.info", - "wsn430-132.grenoble.iot-lab.info", - "wsn430-133.grenoble.iot-lab.info", - "wsn430-134.grenoble.iot-lab.info", - "wsn430-135.grenoble.iot-lab.info", - "wsn430-136.grenoble.iot-lab.info", - "wsn430-137.grenoble.iot-lab.info", - "wsn430-138.grenoble.iot-lab.info", - "wsn430-139.grenoble.iot-lab.info", - "wsn430-140.grenoble.iot-lab.info", - "wsn430-141.grenoble.iot-lab.info", - "wsn430-142.grenoble.iot-lab.info", - "wsn430-143.grenoble.iot-lab.info", - "wsn430-144.grenoble.iot-lab.info", - "wsn430-145.grenoble.iot-lab.info", - "wsn430-146.grenoble.iot-lab.info", - "wsn430-147.grenoble.iot-lab.info", - "wsn430-148.grenoble.iot-lab.info", - "wsn430-149.grenoble.iot-lab.info", - "wsn430-150.grenoble.iot-lab.info", - "wsn430-151.grenoble.iot-lab.info", - "wsn430-152.grenoble.iot-lab.info", - "wsn430-153.grenoble.iot-lab.info", - "wsn430-154.grenoble.iot-lab.info", - "wsn430-155.grenoble.iot-lab.info", - "wsn430-156.grenoble.iot-lab.info", - "wsn430-157.grenoble.iot-lab.info", - "wsn430-158.grenoble.iot-lab.info", - "wsn430-159.grenoble.iot-lab.info", - "wsn430-160.grenoble.iot-lab.info", - "wsn430-161.grenoble.iot-lab.info", - "wsn430-162.grenoble.iot-lab.info", - "wsn430-163.grenoble.iot-lab.info", - "wsn430-164.grenoble.iot-lab.info", - "wsn430-165.grenoble.iot-lab.info", - "wsn430-166.grenoble.iot-lab.info", - "wsn430-167.grenoble.iot-lab.info", - "wsn430-168.grenoble.iot-lab.info", - "wsn430-169.grenoble.iot-lab.info", - "wsn430-171.grenoble.iot-lab.info", - "wsn430-172.grenoble.iot-lab.info", - "wsn430-173.grenoble.iot-lab.info", - "wsn430-174.grenoble.iot-lab.info", - "wsn430-175.grenoble.iot-lab.info", - "wsn430-176.grenoble.iot-lab.info", - "wsn430-177.grenoble.iot-lab.info", - "wsn430-178.grenoble.iot-lab.info", - "wsn430-179.grenoble.iot-lab.info", - "wsn430-180.grenoble.iot-lab.info", - "wsn430-181.grenoble.iot-lab.info", - "wsn430-182.grenoble.iot-lab.info", - "wsn430-183.grenoble.iot-lab.info", - "wsn430-184.grenoble.iot-lab.info", - "wsn430-185.grenoble.iot-lab.info", - "wsn430-186.grenoble.iot-lab.info", - "wsn430-187.grenoble.iot-lab.info", - "wsn430-188.grenoble.iot-lab.info", - "wsn430-189.grenoble.iot-lab.info", - "wsn430-190.grenoble.iot-lab.info", - "wsn430-191.grenoble.iot-lab.info", - "wsn430-192.grenoble.iot-lab.info", - "wsn430-193.grenoble.iot-lab.info", - "wsn430-194.grenoble.iot-lab.info", - "wsn430-195.grenoble.iot-lab.info", - "wsn430-196.grenoble.iot-lab.info", - "wsn430-197.grenoble.iot-lab.info", - "wsn430-198.grenoble.iot-lab.info", - "wsn430-199.grenoble.iot-lab.info", - "wsn430-200.grenoble.iot-lab.info", - "wsn430-201.grenoble.iot-lab.info", - "wsn430-202.grenoble.iot-lab.info", - "wsn430-203.grenoble.iot-lab.info", - "wsn430-204.grenoble.iot-lab.info", - "wsn430-205.grenoble.iot-lab.info", - "wsn430-206.grenoble.iot-lab.info", - "wsn430-207.grenoble.iot-lab.info", - "wsn430-208.grenoble.iot-lab.info", - "wsn430-209.grenoble.iot-lab.info", - "wsn430-210.grenoble.iot-lab.info", - "wsn430-211.grenoble.iot-lab.info", - "wsn430-212.grenoble.iot-lab.info", - "wsn430-213.grenoble.iot-lab.info", - "wsn430-214.grenoble.iot-lab.info", - "wsn430-215.grenoble.iot-lab.info", - "wsn430-216.grenoble.iot-lab.info", - "wsn430-217.grenoble.iot-lab.info", - "wsn430-218.grenoble.iot-lab.info", - "wsn430-219.grenoble.iot-lab.info", - "wsn430-220.grenoble.iot-lab.info", - "wsn430-221.grenoble.iot-lab.info", - "wsn430-222.grenoble.iot-lab.info", - "wsn430-223.grenoble.iot-lab.info", - "wsn430-224.grenoble.iot-lab.info", - "wsn430-225.grenoble.iot-lab.info", - "wsn430-226.grenoble.iot-lab.info", - "wsn430-227.grenoble.iot-lab.info", - "wsn430-228.grenoble.iot-lab.info", - "wsn430-229.grenoble.iot-lab.info", - "wsn430-230.grenoble.iot-lab.info", - "wsn430-231.grenoble.iot-lab.info", - "wsn430-232.grenoble.iot-lab.info", - "wsn430-233.grenoble.iot-lab.info", - "wsn430-234.grenoble.iot-lab.info", - "wsn430-235.grenoble.iot-lab.info", - "wsn430-236.grenoble.iot-lab.info", - "wsn430-237.grenoble.iot-lab.info", - "wsn430-238.grenoble.iot-lab.info", - "wsn430-239.grenoble.iot-lab.info", - "wsn430-241.grenoble.iot-lab.info", - "wsn430-242.grenoble.iot-lab.info", - "wsn430-243.grenoble.iot-lab.info", - "wsn430-244.grenoble.iot-lab.info", - "wsn430-245.grenoble.iot-lab.info", - "wsn430-246.grenoble.iot-lab.info", - "wsn430-247.grenoble.iot-lab.info", - "wsn430-248.grenoble.iot-lab.info", - "wsn430-249.grenoble.iot-lab.info", - "wsn430-250.grenoble.iot-lab.info", - "wsn430-251.grenoble.iot-lab.info", - "wsn430-252.grenoble.iot-lab.info", - "wsn430-253.grenoble.iot-lab.info", - "wsn430-254.grenoble.iot-lab.info", - "wsn430-255.grenoble.iot-lab.info", - "m3-2.grenoble.iot-lab.info", - "m3-4.grenoble.iot-lab.info", - "m3-5.grenoble.iot-lab.info", - "m3-11.grenoble.iot-lab.info", - "m3-13.grenoble.iot-lab.info", - "m3-14.grenoble.iot-lab.info", - "m3-15.grenoble.iot-lab.info", - "m3-21.grenoble.iot-lab.info", - "m3-23.grenoble.iot-lab.info", - "m3-25.grenoble.iot-lab.info", - "m3-29.grenoble.iot-lab.info", - "m3-30.grenoble.iot-lab.info", - "m3-31.grenoble.iot-lab.info", - "m3-32.grenoble.iot-lab.info", - "m3-33.grenoble.iot-lab.info", - "m3-35.grenoble.iot-lab.info", - "m3-37.grenoble.iot-lab.info", - "m3-38.grenoble.iot-lab.info", - "m3-39.grenoble.iot-lab.info", - "m3-40.grenoble.iot-lab.info", - "m3-45.grenoble.iot-lab.info", - "m3-48.grenoble.iot-lab.info", - "m3-49.grenoble.iot-lab.info", - "m3-51.grenoble.iot-lab.info", - "m3-55.grenoble.iot-lab.info", - "m3-59.grenoble.iot-lab.info", - "m3-61.grenoble.iot-lab.info", - "m3-63.grenoble.iot-lab.info", - "m3-65.grenoble.iot-lab.info", - "m3-68.grenoble.iot-lab.info", - "m3-69.grenoble.iot-lab.info", - "m3-71.grenoble.iot-lab.info", - "m3-72.grenoble.iot-lab.info", - "m3-73.grenoble.iot-lab.info", - "m3-77.grenoble.iot-lab.info", - "m3-80.grenoble.iot-lab.info", - "m3-85.grenoble.iot-lab.info", - "m3-88.grenoble.iot-lab.info", - "m3-91.grenoble.iot-lab.info", - "m3-94.grenoble.iot-lab.info", - "m3-101.grenoble.iot-lab.info", - "m3-102.grenoble.iot-lab.info", - "m3-105.grenoble.iot-lab.info", - "m3-106.grenoble.iot-lab.info", - "m3-109.grenoble.iot-lab.info", - "m3-113.grenoble.iot-lab.info", - "m3-114.grenoble.iot-lab.info", - "m3-115.grenoble.iot-lab.info", - "m3-116.grenoble.iot-lab.info", - "m3-117.grenoble.iot-lab.info", - "m3-118.grenoble.iot-lab.info", - "m3-122.grenoble.iot-lab.info", - "m3-123.grenoble.iot-lab.info", - "m3-125.grenoble.iot-lab.info", - "m3-129.grenoble.iot-lab.info", - "m3-130.grenoble.iot-lab.info", - "m3-131.grenoble.iot-lab.info", - "m3-132.grenoble.iot-lab.info", - "m3-133.grenoble.iot-lab.info", - "m3-135.grenoble.iot-lab.info", - "m3-136.grenoble.iot-lab.info", - "m3-139.grenoble.iot-lab.info", - "m3-140.grenoble.iot-lab.info", - "m3-141.grenoble.iot-lab.info", - "m3-142.grenoble.iot-lab.info", - "m3-146.grenoble.iot-lab.info", - "m3-147.grenoble.iot-lab.info", - "m3-148.grenoble.iot-lab.info", - "m3-150.grenoble.iot-lab.info", - "m3-151.grenoble.iot-lab.info", - "m3-152.grenoble.iot-lab.info", - "m3-155.grenoble.iot-lab.info", - "m3-157.grenoble.iot-lab.info", - "m3-158.grenoble.iot-lab.info", - "m3-159.grenoble.iot-lab.info", - "m3-160.grenoble.iot-lab.info", - "m3-161.grenoble.iot-lab.info", - "m3-162.grenoble.iot-lab.info", - "m3-167.grenoble.iot-lab.info", - "m3-169.grenoble.iot-lab.info", - "m3-171.grenoble.iot-lab.info", - "m3-174.grenoble.iot-lab.info", - "m3-175.grenoble.iot-lab.info", - "m3-179.grenoble.iot-lab.info", - "m3-180.grenoble.iot-lab.info", - "m3-181.grenoble.iot-lab.info", - "m3-182.grenoble.iot-lab.info", - "m3-188.grenoble.iot-lab.info", - "m3-189.grenoble.iot-lab.info", - "m3-191.grenoble.iot-lab.info", - "m3-192.grenoble.iot-lab.info", - "m3-194.grenoble.iot-lab.info", - "m3-196.grenoble.iot-lab.info", - "m3-197.grenoble.iot-lab.info", - "m3-198.grenoble.iot-lab.info", - "m3-204.grenoble.iot-lab.info", - "m3-206.grenoble.iot-lab.info", - "m3-208.grenoble.iot-lab.info", - "m3-210.grenoble.iot-lab.info", - "m3-212.grenoble.iot-lab.info", - "m3-213.grenoble.iot-lab.info", - "m3-214.grenoble.iot-lab.info", - "m3-216.grenoble.iot-lab.info", - "m3-219.grenoble.iot-lab.info", - "m3-220.grenoble.iot-lab.info", - "m3-222.grenoble.iot-lab.info", - "m3-226.grenoble.iot-lab.info", - "m3-227.grenoble.iot-lab.info", - "m3-231.grenoble.iot-lab.info", - "m3-232.grenoble.iot-lab.info", - "m3-234.grenoble.iot-lab.info", - "m3-235.grenoble.iot-lab.info", - "m3-236.grenoble.iot-lab.info", - "m3-237.grenoble.iot-lab.info", - "m3-239.grenoble.iot-lab.info", - "m3-241.grenoble.iot-lab.info", - "m3-242.grenoble.iot-lab.info", - "m3-244.grenoble.iot-lab.info", - "m3-245.grenoble.iot-lab.info", - "m3-246.grenoble.iot-lab.info", - "m3-248.grenoble.iot-lab.info", - "m3-252.grenoble.iot-lab.info", - "m3-253.grenoble.iot-lab.info", - "m3-254.grenoble.iot-lab.info", - "m3-257.grenoble.iot-lab.info", - "m3-258.grenoble.iot-lab.info", - "m3-260.grenoble.iot-lab.info", - "m3-262.grenoble.iot-lab.info", - "m3-263.grenoble.iot-lab.info", - "m3-264.grenoble.iot-lab.info", - "m3-265.grenoble.iot-lab.info", - "m3-267.grenoble.iot-lab.info", - "m3-271.grenoble.iot-lab.info", - "m3-272.grenoble.iot-lab.info", - "m3-273.grenoble.iot-lab.info", - "m3-278.grenoble.iot-lab.info", - "m3-280.grenoble.iot-lab.info", - "m3-282.grenoble.iot-lab.info", - "m3-285.grenoble.iot-lab.info", - "m3-288.grenoble.iot-lab.info", - "m3-289.grenoble.iot-lab.info", - "m3-290.grenoble.iot-lab.info", - "m3-292.grenoble.iot-lab.info", - "m3-293.grenoble.iot-lab.info", - "m3-297.grenoble.iot-lab.info", - "m3-298.grenoble.iot-lab.info", - "m3-299.grenoble.iot-lab.info", - "m3-301.grenoble.iot-lab.info", - "m3-303.grenoble.iot-lab.info", - "m3-307.grenoble.iot-lab.info", - "m3-309.grenoble.iot-lab.info", - "m3-310.grenoble.iot-lab.info", - "m3-311.grenoble.iot-lab.info", - "m3-312.grenoble.iot-lab.info", - "m3-313.grenoble.iot-lab.info", - "m3-314.grenoble.iot-lab.info", - "m3-317.grenoble.iot-lab.info", - "m3-318.grenoble.iot-lab.info", - "m3-321.grenoble.iot-lab.info", - "m3-322.grenoble.iot-lab.info", - "m3-324.grenoble.iot-lab.info", - "m3-325.grenoble.iot-lab.info", - "m3-328.grenoble.iot-lab.info", - "m3-335.grenoble.iot-lab.info", - "m3-337.grenoble.iot-lab.info", - "m3-338.grenoble.iot-lab.info", - "m3-339.grenoble.iot-lab.info", - "m3-343.grenoble.iot-lab.info", - "m3-344.grenoble.iot-lab.info", - "m3-346.grenoble.iot-lab.info", - "m3-348.grenoble.iot-lab.info", - "m3-349.grenoble.iot-lab.info", - "m3-354.grenoble.iot-lab.info", - "m3-359.grenoble.iot-lab.info", - "m3-360.grenoble.iot-lab.info", - "m3-363.grenoble.iot-lab.info", - "m3-366.grenoble.iot-lab.info", - "m3-367.grenoble.iot-lab.info", - "m3-368.grenoble.iot-lab.info", - "m3-371.grenoble.iot-lab.info", - "m3-374.grenoble.iot-lab.info", - "m3-375.grenoble.iot-lab.info", - "m3-376.grenoble.iot-lab.info", - "m3-377.grenoble.iot-lab.info", - "m3-1.grenoble.iot-lab.info", - "m3-3.grenoble.iot-lab.info", - "m3-6.grenoble.iot-lab.info", - "m3-7.grenoble.iot-lab.info", - "m3-8.grenoble.iot-lab.info", - "m3-10.grenoble.iot-lab.info", - "m3-12.grenoble.iot-lab.info", - "m3-16.grenoble.iot-lab.info", - "m3-19.grenoble.iot-lab.info", - "m3-20.grenoble.iot-lab.info", - "m3-22.grenoble.iot-lab.info", - "m3-24.grenoble.iot-lab.info", - "m3-26.grenoble.iot-lab.info", - "m3-27.grenoble.iot-lab.info", - "m3-28.grenoble.iot-lab.info", - "m3-34.grenoble.iot-lab.info", - "m3-36.grenoble.iot-lab.info", - "m3-41.grenoble.iot-lab.info", - "m3-42.grenoble.iot-lab.info", - "m3-43.grenoble.iot-lab.info", - "m3-46.grenoble.iot-lab.info", - "m3-47.grenoble.iot-lab.info", - "m3-50.grenoble.iot-lab.info", - "m3-52.grenoble.iot-lab.info", - "m3-53.grenoble.iot-lab.info", - "m3-56.grenoble.iot-lab.info", - "m3-57.grenoble.iot-lab.info", - "m3-58.grenoble.iot-lab.info", - "m3-60.grenoble.iot-lab.info", - "m3-62.grenoble.iot-lab.info", - "m3-64.grenoble.iot-lab.info", - "m3-66.grenoble.iot-lab.info", - "m3-67.grenoble.iot-lab.info", - "m3-70.grenoble.iot-lab.info", - "m3-74.grenoble.iot-lab.info", - "m3-75.grenoble.iot-lab.info", - "m3-76.grenoble.iot-lab.info", - "m3-78.grenoble.iot-lab.info", - "m3-79.grenoble.iot-lab.info", - "m3-83.grenoble.iot-lab.info", - "m3-86.grenoble.iot-lab.info", - "m3-87.grenoble.iot-lab.info", - "m3-89.grenoble.iot-lab.info", - "m3-90.grenoble.iot-lab.info", - "m3-92.grenoble.iot-lab.info", - "m3-93.grenoble.iot-lab.info", - "m3-95.grenoble.iot-lab.info", - "m3-96.grenoble.iot-lab.info", - "m3-97.grenoble.iot-lab.info", - "m3-98.grenoble.iot-lab.info", - "m3-99.grenoble.iot-lab.info", - "m3-100.grenoble.iot-lab.info", - "m3-103.grenoble.iot-lab.info", - "m3-104.grenoble.iot-lab.info", - "m3-107.grenoble.iot-lab.info", - "m3-108.grenoble.iot-lab.info", - "m3-110.grenoble.iot-lab.info", - "m3-112.grenoble.iot-lab.info", - "m3-119.grenoble.iot-lab.info", - "m3-120.grenoble.iot-lab.info", - "m3-121.grenoble.iot-lab.info", - "m3-126.grenoble.iot-lab.info", - "m3-127.grenoble.iot-lab.info", - "m3-128.grenoble.iot-lab.info", - "m3-137.grenoble.iot-lab.info", - "m3-144.grenoble.iot-lab.info", - "m3-145.grenoble.iot-lab.info", - "m3-149.grenoble.iot-lab.info", - "m3-153.grenoble.iot-lab.info", - "m3-154.grenoble.iot-lab.info", - "m3-156.grenoble.iot-lab.info", - "m3-163.grenoble.iot-lab.info", - "m3-164.grenoble.iot-lab.info", - "m3-166.grenoble.iot-lab.info", - "m3-168.grenoble.iot-lab.info", - "m3-170.grenoble.iot-lab.info", - "m3-172.grenoble.iot-lab.info", - "m3-173.grenoble.iot-lab.info", - "m3-176.grenoble.iot-lab.info", - "m3-177.grenoble.iot-lab.info", - "m3-184.grenoble.iot-lab.info", - "m3-186.grenoble.iot-lab.info", - "m3-190.grenoble.iot-lab.info", - "m3-193.grenoble.iot-lab.info", - "m3-195.grenoble.iot-lab.info", - "m3-199.grenoble.iot-lab.info", - "m3-200.grenoble.iot-lab.info", - "m3-201.grenoble.iot-lab.info", - "m3-202.grenoble.iot-lab.info", - "m3-207.grenoble.iot-lab.info", - "m3-209.grenoble.iot-lab.info", - "m3-211.grenoble.iot-lab.info", - "m3-215.grenoble.iot-lab.info", - "m3-217.grenoble.iot-lab.info", - "m3-218.grenoble.iot-lab.info", - "m3-221.grenoble.iot-lab.info", - "m3-223.grenoble.iot-lab.info", - "m3-224.grenoble.iot-lab.info", - "m3-225.grenoble.iot-lab.info", - "m3-228.grenoble.iot-lab.info", - "m3-229.grenoble.iot-lab.info", - "m3-230.grenoble.iot-lab.info", - "m3-233.grenoble.iot-lab.info", - "m3-238.grenoble.iot-lab.info", - "m3-240.grenoble.iot-lab.info", - "m3-247.grenoble.iot-lab.info", - "m3-249.grenoble.iot-lab.info", - "m3-250.grenoble.iot-lab.info", - "m3-251.grenoble.iot-lab.info", - "m3-256.grenoble.iot-lab.info", - "m3-259.grenoble.iot-lab.info", - "m3-261.grenoble.iot-lab.info", - "m3-266.grenoble.iot-lab.info", - "m3-268.grenoble.iot-lab.info", - "m3-269.grenoble.iot-lab.info", - "m3-274.grenoble.iot-lab.info", - "m3-275.grenoble.iot-lab.info", - "m3-276.grenoble.iot-lab.info", - "m3-277.grenoble.iot-lab.info", - "m3-279.grenoble.iot-lab.info", - "m3-281.grenoble.iot-lab.info", - "m3-283.grenoble.iot-lab.info", - "m3-286.grenoble.iot-lab.info", - "m3-287.grenoble.iot-lab.info", - "m3-291.grenoble.iot-lab.info", - "m3-294.grenoble.iot-lab.info", - "m3-295.grenoble.iot-lab.info", - "m3-296.grenoble.iot-lab.info", - "m3-302.grenoble.iot-lab.info", - "m3-304.grenoble.iot-lab.info", - "m3-305.grenoble.iot-lab.info", - "m3-306.grenoble.iot-lab.info", - "m3-308.grenoble.iot-lab.info", - "m3-315.grenoble.iot-lab.info", - "m3-316.grenoble.iot-lab.info", - "m3-320.grenoble.iot-lab.info", - "m3-323.grenoble.iot-lab.info", - "m3-326.grenoble.iot-lab.info", - "m3-327.grenoble.iot-lab.info", - "m3-329.grenoble.iot-lab.info", - "m3-330.grenoble.iot-lab.info", - "m3-332.grenoble.iot-lab.info", - "m3-333.grenoble.iot-lab.info", - "m3-334.grenoble.iot-lab.info", - "m3-336.grenoble.iot-lab.info", - "m3-340.grenoble.iot-lab.info", - "m3-341.grenoble.iot-lab.info", - "m3-342.grenoble.iot-lab.info", - "m3-345.grenoble.iot-lab.info", - "m3-347.grenoble.iot-lab.info", - "m3-350.grenoble.iot-lab.info", - "m3-352.grenoble.iot-lab.info", - "m3-353.grenoble.iot-lab.info", - "m3-355.grenoble.iot-lab.info", - "m3-356.grenoble.iot-lab.info", - "m3-357.grenoble.iot-lab.info", - "m3-358.grenoble.iot-lab.info", - "m3-361.grenoble.iot-lab.info", - "m3-362.grenoble.iot-lab.info", - "m3-364.grenoble.iot-lab.info", - "m3-365.grenoble.iot-lab.info", - "m3-369.grenoble.iot-lab.info", - "m3-370.grenoble.iot-lab.info", - "m3-372.grenoble.iot-lab.info", - "m3-373.grenoble.iot-lab.info", - "a8-1.grenoble.iot-lab.info", - "a8-2.grenoble.iot-lab.info", - "a8-3.grenoble.iot-lab.info", - "a8-4.grenoble.iot-lab.info", - "a8-5.grenoble.iot-lab.info", - "a8-6.grenoble.iot-lab.info", - "a8-7.grenoble.iot-lab.info", - "a8-8.grenoble.iot-lab.info", - "a8-9.grenoble.iot-lab.info", - "a8-10.grenoble.iot-lab.info", - "a8-12.grenoble.iot-lab.info", - "a8-13.grenoble.iot-lab.info", - "a8-14.grenoble.iot-lab.info", - "a8-15.grenoble.iot-lab.info", - "a8-16.grenoble.iot-lab.info", - "a8-17.grenoble.iot-lab.info", - "a8-18.grenoble.iot-lab.info", - "a8-19.grenoble.iot-lab.info", - "a8-20.grenoble.iot-lab.info", - "a8-21.grenoble.iot-lab.info", - "a8-22.grenoble.iot-lab.info", - "a8-23.grenoble.iot-lab.info", - "a8-24.grenoble.iot-lab.info", - "a8-25.grenoble.iot-lab.info", - "a8-26.grenoble.iot-lab.info", - "a8-28.grenoble.iot-lab.info", - "a8-29.grenoble.iot-lab.info", - "a8-30.grenoble.iot-lab.info", - "a8-31.grenoble.iot-lab.info", - "a8-32.grenoble.iot-lab.info", - "a8-33.grenoble.iot-lab.info", - "a8-34.grenoble.iot-lab.info", - "a8-35.grenoble.iot-lab.info", - "a8-36.grenoble.iot-lab.info", - "a8-37.grenoble.iot-lab.info", - "a8-38.grenoble.iot-lab.info", - "a8-39.grenoble.iot-lab.info", - "a8-40.grenoble.iot-lab.info", - "a8-41.grenoble.iot-lab.info", - "a8-42.grenoble.iot-lab.info", - "a8-43.grenoble.iot-lab.info", - "a8-44.grenoble.iot-lab.info", - "a8-45.grenoble.iot-lab.info", - "a8-46.grenoble.iot-lab.info", - "a8-47.grenoble.iot-lab.info", - "a8-48.grenoble.iot-lab.info", - "a8-49.grenoble.iot-lab.info", - "a8-50.grenoble.iot-lab.info", - "a8-51.grenoble.iot-lab.info", - "a8-52.grenoble.iot-lab.info", - "a8-53.grenoble.iot-lab.info", - "a8-54.grenoble.iot-lab.info", - "a8-55.grenoble.iot-lab.info", - "a8-57.grenoble.iot-lab.info", - "a8-58.grenoble.iot-lab.info", - "a8-59.grenoble.iot-lab.info", - "a8-60.grenoble.iot-lab.info", - "a8-61.grenoble.iot-lab.info", - "a8-63.grenoble.iot-lab.info", - "a8-64.grenoble.iot-lab.info", - "a8-65.grenoble.iot-lab.info", - "a8-66.grenoble.iot-lab.info", - "a8-67.grenoble.iot-lab.info", - "a8-68.grenoble.iot-lab.info", - "a8-69.grenoble.iot-lab.info", - "a8-70.grenoble.iot-lab.info", - "a8-71.grenoble.iot-lab.info", - "a8-72.grenoble.iot-lab.info", - "a8-73.grenoble.iot-lab.info", - "a8-74.grenoble.iot-lab.info", - "a8-75.grenoble.iot-lab.info", - "a8-76.grenoble.iot-lab.info", - "a8-77.grenoble.iot-lab.info", - "a8-78.grenoble.iot-lab.info", - "a8-79.grenoble.iot-lab.info", - "a8-80.grenoble.iot-lab.info", - "a8-81.grenoble.iot-lab.info", - "a8-82.grenoble.iot-lab.info", - "a8-83.grenoble.iot-lab.info", - "a8-84.grenoble.iot-lab.info", - "a8-85.grenoble.iot-lab.info", - "a8-86.grenoble.iot-lab.info", - "a8-87.grenoble.iot-lab.info", - "a8-88.grenoble.iot-lab.info", - "a8-89.grenoble.iot-lab.info", - "a8-90.grenoble.iot-lab.info", - "a8-91.grenoble.iot-lab.info", - "a8-92.grenoble.iot-lab.info", - "a8-93.grenoble.iot-lab.info", - "a8-94.grenoble.iot-lab.info", - "a8-95.grenoble.iot-lab.info", - "a8-96.grenoble.iot-lab.info", - "a8-97.grenoble.iot-lab.info", - "a8-98.grenoble.iot-lab.info", - "a8-99.grenoble.iot-lab.info", - "a8-100.grenoble.iot-lab.info", - "a8-101.grenoble.iot-lab.info", - "a8-102.grenoble.iot-lab.info", - "a8-103.grenoble.iot-lab.info", - "a8-105.grenoble.iot-lab.info", - "a8-106.grenoble.iot-lab.info", - "a8-107.grenoble.iot-lab.info", - "a8-108.grenoble.iot-lab.info", - "a8-109.grenoble.iot-lab.info", - "a8-111.grenoble.iot-lab.info", - "a8-112.grenoble.iot-lab.info", - "a8-113.grenoble.iot-lab.info", - "a8-114.grenoble.iot-lab.info", - "a8-115.grenoble.iot-lab.info", - "a8-116.grenoble.iot-lab.info", - "a8-117.grenoble.iot-lab.info", - "a8-118.grenoble.iot-lab.info", - "a8-119.grenoble.iot-lab.info", - "a8-120.grenoble.iot-lab.info", - "a8-121.grenoble.iot-lab.info", - "a8-122.grenoble.iot-lab.info", - "a8-123.grenoble.iot-lab.info", - "a8-124.grenoble.iot-lab.info", - "a8-127.grenoble.iot-lab.info", - "a8-128.grenoble.iot-lab.info", - "a8-133.grenoble.iot-lab.info", - "a8-140.grenoble.iot-lab.info", - "a8-141.grenoble.iot-lab.info", - "a8-145.grenoble.iot-lab.info", - "a8-146.grenoble.iot-lab.info", - "a8-149.grenoble.iot-lab.info", - "a8-150.grenoble.iot-lab.info", - "a8-151.grenoble.iot-lab.info", - "a8-152.grenoble.iot-lab.info", - "a8-153.grenoble.iot-lab.info", - "a8-154.grenoble.iot-lab.info", - "a8-156.grenoble.iot-lab.info", - "a8-157.grenoble.iot-lab.info", - "a8-158.grenoble.iot-lab.info", - "a8-160.grenoble.iot-lab.info", - "a8-161.grenoble.iot-lab.info", - "a8-162.grenoble.iot-lab.info", - "a8-164.grenoble.iot-lab.info", - "a8-165.grenoble.iot-lab.info", - "a8-166.grenoble.iot-lab.info", - "a8-167.grenoble.iot-lab.info", - "a8-168.grenoble.iot-lab.info", - "a8-169.grenoble.iot-lab.info", - "a8-170.grenoble.iot-lab.info", - "a8-172.grenoble.iot-lab.info", - "a8-173.grenoble.iot-lab.info", - "a8-174.grenoble.iot-lab.info", - "a8-175.grenoble.iot-lab.info", - "a8-176.grenoble.iot-lab.info", - "a8-178.grenoble.iot-lab.info", - "a8-179.grenoble.iot-lab.info", - "a8-180.grenoble.iot-lab.info", - "a8-181.grenoble.iot-lab.info", - "a8-182.grenoble.iot-lab.info", - "a8-183.grenoble.iot-lab.info", - "a8-184.grenoble.iot-lab.info", - "a8-185.grenoble.iot-lab.info", - "a8-186.grenoble.iot-lab.info", - "a8-187.grenoble.iot-lab.info", - "a8-189.grenoble.iot-lab.info", - "a8-190.grenoble.iot-lab.info", - "a8-191.grenoble.iot-lab.info", - "a8-192.grenoble.iot-lab.info", - "a8-193.grenoble.iot-lab.info", - "a8-194.grenoble.iot-lab.info", - "a8-195.grenoble.iot-lab.info", - "a8-196.grenoble.iot-lab.info", - "a8-197.grenoble.iot-lab.info", - "a8-198.grenoble.iot-lab.info", - "a8-199.grenoble.iot-lab.info", - "a8-200.grenoble.iot-lab.info", - "a8-201.grenoble.iot-lab.info", - "a8-202.grenoble.iot-lab.info", - "a8-203.grenoble.iot-lab.info", - "a8-204.grenoble.iot-lab.info", - "a8-205.grenoble.iot-lab.info", - "a8-206.grenoble.iot-lab.info", - "a8-207.grenoble.iot-lab.info", - "a8-208.grenoble.iot-lab.info", - "a8-209.grenoble.iot-lab.info", - "a8-210.grenoble.iot-lab.info", - "a8-211.grenoble.iot-lab.info", - "a8-212.grenoble.iot-lab.info", - "a8-213.grenoble.iot-lab.info", - "a8-214.grenoble.iot-lab.info", - "a8-215.grenoble.iot-lab.info", - "a8-216.grenoble.iot-lab.info", - "a8-217.grenoble.iot-lab.info", - "a8-218.grenoble.iot-lab.info", - "a8-219.grenoble.iot-lab.info", - "a8-220.grenoble.iot-lab.info", - "a8-221.grenoble.iot-lab.info", - "a8-222.grenoble.iot-lab.info", - "a8-223.grenoble.iot-lab.info", - "a8-224.grenoble.iot-lab.info", - "a8-225.grenoble.iot-lab.info", - "a8-226.grenoble.iot-lab.info", - "a8-227.grenoble.iot-lab.info", - "a8-228.grenoble.iot-lab.info" - ] -} \ No newline at end of file diff --git a/metas/strasbourg.csv b/metas/strasbourg.csv deleted file mode 100644 index a96ddb9eed..0000000000 --- a/metas/strasbourg.csv +++ /dev/null @@ -1,241 +0,0 @@ -mac,x,y,z -14-15-92-00-12-91-c0-d8,0.93,0.98,0.5 -14-15-92-00-12-91-b2-a7,0.93,0.98,1.5 -14-15-92-00-12-91-c6-f0,0.93,0.98,2.5 -14-15-92-00-12-91-bc-ab,1.93,0.98,0.5 -14-15-92-00-12-91-c6-6a,1.93,0.98,1.5 -14-15-92-00-12-91-b2-22,1.93,0.98,2.5 -14-15-92-00-12-91-b0-12,2.93,0.98,0.5 -14-15-92-00-12-91-c5-ac,2.93,0.98,1.5 -14-15-92-00-12-91-be-f2,2.93,0.98,2.5 -14-15-92-00-12-91-b7-b2,3.93,0.98,0.5 -14-15-92-00-12-91-b9-f1,3.93,0.98,1.5 -14-15-92-00-12-91-c2-23,3.93,0.98,2.5 -14-15-92-00-12-91-c3-a0,4.93,0.98,0.5 -14-15-92-00-12-91-cb-40,4.93,0.98,1.5 -14-15-92-00-12-91-bd-81,4.93,0.98,2.5 -14-15-92-00-12-91-af-a3,5.93,0.98,0.5 -14-15-92-00-12-91-be-5a,5.93,0.98,1.5 -14-15-92-00-12-91-1b-f9,5.93,0.98,2.5 -14-15-92-00-12-91-bc-a1,6.93,0.98,0.5 -14-15-92-00-12-91-c1-c3,6.93,0.98,1.5 -14-15-92-00-12-91-c6-ce,6.93,0.98,2.5 -14-15-92-00-12-91-c5-d4,7.93,0.98,0.5 -14-15-92-00-12-91-ba-38,7.93,0.98,1.5 -14-15-92-00-12-91-1f-59,7.93,0.98,2.5 -14-15-92-00-12-91-b8-62,0.93,1.98,0.5 -14-15-92-00-12-91-b5-e1,0.93,1.98,1.5 -14-15-92-00-12-91-bb-10,0.93,1.98,2.5 -14-15-92-00-12-91-c6-8a,1.93,1.98,0.5 -14-15-92-00-12-91-b5-76,1.93,1.98,1.5 -14-15-92-00-12-91-b3-43,1.93,1.98,2.5 -14-15-92-00-12-91-c1-9f,2.93,1.98,0.5 -14-15-92-00-12-91-1c-ef,2.93,1.98,1.5 -14-15-92-00-12-91-c2-25,2.93,1.98,2.5 -14-15-92-00-12-91-bc-7a,3.93,1.98,0.5 -14-15-92-00-12-91-ba-03,3.93,1.98,1.5 -14-15-92-00-12-91-c2-62,3.93,1.98,2.5 -14-15-92-00-12-91-ba-7f,4.93,1.98,0.5 -14-15-92-00-12-91-b6-14,4.93,1.98,1.5 -14-15-92-00-12-91-be-35,4.93,1.98,2.5 -14-15-92-00-12-91-b9-a0,5.93,1.98,0.5 -14-15-92-00-12-91-c9-fa,5.93,1.98,1.5 -14-15-92-00-12-91-b4-2e,5.93,1.98,2.5 -14-15-92-00-12-91-c9-35,6.93,1.98,0.5 -14-15-92-00-12-91-bd-d3,6.93,1.98,1.5 -14-15-92-00-12-91-b9-57,6.93,1.98,2.5 -14-15-92-00-12-91-c8-7f,7.93,1.98,0.5 -14-15-92-00-12-91-cd-ac,7.93,1.98,1.5 -14-15-92-00-12-91-bf-84,7.93,1.98,2.5 -14-15-92-00-12-91-cf-14,0.93,2.98,0.5 -14-15-92-00-12-91-c6-05,0.93,2.98,1.5 -14-15-92-00-12-91-af-8a,0.93,2.98,2.5 -14-15-92-00-12-91-c3-5d,1.93,2.98,0.5 -14-15-92-00-12-91-ca-60,1.93,2.98,1.5 -14-15-92-00-12-91-c0-9b,1.93,2.98,2.5 -14-15-92-00-12-91-c4-aa,2.93,2.98,0.5 -14-15-92-00-12-91-ca-01,2.93,2.98,1.5 -14-15-92-00-12-91-bb-25,2.93,2.98,2.5 -14-15-92-00-12-91-b7-af,3.93,2.98,0.5 -14-15-92-00-12-91-b0-57,3.93,2.98,1.5 -14-15-92-00-12-91-cf-0a,3.93,2.98,2.5 -14-15-92-00-12-91-ca-27,4.93,2.98,0.5 -14-15-92-00-12-91-cb-57,4.93,2.98,1.5 -14-15-92-00-12-91-cb-af,4.93,2.98,2.5 -14-15-92-00-12-91-c7-de,5.93,2.98,0.5 -14-15-92-00-12-91-bc-f4,5.93,2.98,1.5 -14-15-92-00-12-91-bf-80,5.93,2.98,2.5 -14-15-92-00-12-91-bd-b0,6.93,2.98,0.5 -14-15-92-00-12-91-be-6b,6.93,2.98,1.5 -14-15-92-00-12-91-cd-74,6.93,2.98,2.5 -14-15-92-00-12-91-b7-e2,7.93,2.98,0.5 -14-15-92-00-12-91-cc-5e,7.93,2.98,1.5 -14-15-92-00-12-91-b4-67,7.93,2.98,2.5 -14-15-92-00-12-91-ce-cf,0.93,3.98,0.5 -14-15-92-00-12-91-cd-64,0.93,3.98,1.5 -14-15-92-00-12-91-c9-cf,0.93,3.98,2.5 -14-15-92-00-12-91-b2-3c,1.93,3.98,0.5 -14-15-92-00-12-91-cd-18,1.93,3.98,1.5 -14-15-92-00-12-91-bb-3a,1.93,3.98,2.5 -14-15-92-00-12-91-c9-87,2.93,3.98,0.5 -14-15-92-00-12-91-c8-ea,2.93,3.98,1.5 -14-15-92-00-12-91-b5-c5,2.93,3.98,2.5 -14-15-92-00-12-91-1f-3c,3.93,3.98,0.5 -14-15-92-00-12-91-bb-11,3.93,3.98,1.5 -14-15-92-00-12-91-c7-df,3.93,3.98,2.5 -14-15-92-00-12-91-c9-86,4.93,3.98,0.5 -14-15-92-00-12-91-c5-e2,4.93,3.98,1.5 -14-15-92-00-12-91-c7-55,4.93,3.98,2.5 -14-15-92-00-12-91-ca-2f,5.93,3.98,0.5 -14-15-92-00-12-91-b1-38,5.93,3.98,1.5 -14-15-92-00-12-91-c9-2f,5.93,3.98,2.5 -14-15-92-00-12-91-c6-81,6.93,3.98,0.5 -14-15-92-00-12-91-cd-2e,6.93,3.98,1.5 -14-15-92-00-12-91-c1-d5,6.93,3.98,2.5 -14-15-92-00-12-91-cc-22,7.93,3.98,0.5 -14-15-92-00-12-91-c4-e5,7.93,3.98,1.5 -14-15-92-00-12-91-c5-b3,7.93,3.98,2.5 -14-15-92-00-12-91-bf-b9,0.93,4.98,0.5 -14-15-92-00-12-91-b8-fb,0.93,4.98,1.5 -14-15-92-00-12-91-bc-1c,0.93,4.98,2.5 -14-15-92-00-12-91-ba-e2,1.93,4.98,0.5 -14-15-92-00-12-91-bb-ff,1.93,4.98,1.5 -14-15-92-00-12-91-c8-81,1.93,4.98,2.5 -14-15-92-00-12-91-ca-54,2.93,4.98,0.5 -14-15-92-00-12-91-c7-1e,2.93,4.98,1.5 -14-15-92-00-12-91-bb-7d,2.93,4.98,2.5 -14-15-92-00-12-91-1f-94,3.93,4.98,0.5 -14-15-92-00-12-91-b4-d8,3.93,4.98,1.5 -14-15-92-00-12-91-cc-cb,3.93,4.98,2.5 -14-15-92-00-12-91-be-59,4.93,4.98,0.5 -14-15-92-00-12-91-ce-b0,4.93,4.98,1.5 -14-15-92-00-12-91-b5-e2,4.93,4.98,2.5 -14-15-92-00-12-91-c3-02,5.93,4.98,0.5 -14-15-92-00-12-91-af-64,5.93,4.98,1.5 -14-15-92-00-12-91-ce-d2,5.93,4.98,2.5 -14-15-92-00-12-91-ce-d4,6.93,4.98,0.5 -14-15-92-00-12-91-20-3f,6.93,4.98,1.5 -14-15-92-00-12-91-c1-4d,6.93,4.98,2.5 -14-15-92-00-12-91-b0-d7,7.93,4.98,0.5 -14-15-92-00-12-91-1c-c4,7.93,4.98,1.5 -14-15-92-00-12-91-bc-76,7.93,4.98,2.5 -14-15-92-00-12-91-b6-34,0.93,5.98,0.5 -14-15-92-00-12-91-af-9d,0.93,5.98,1.5 -14-15-92-00-12-91-bc-2c,0.93,5.98,2.5 -14-15-92-00-12-91-cb-20,1.93,5.98,0.5 -14-15-92-00-12-91-bb-fc,1.93,5.98,1.5 -14-15-92-00-12-91-c2-e8,1.93,5.98,2.5 -14-15-92-00-12-91-cd-45,2.93,5.98,0.5 -14-15-92-00-12-91-b2-68,2.93,5.98,1.5 -14-15-92-00-12-91-c3-96,2.93,5.98,2.5 -14-15-92-00-12-91-c1-d4,3.93,5.98,0.5 -14-15-92-00-12-91-ca-19,3.93,5.98,1.5 -14-15-92-00-12-91-b5-4e,3.93,5.98,2.5 -14-15-92-00-12-91-b6-be,4.93,5.98,0.5 -14-15-92-00-12-91-b0-db,4.93,5.98,1.5 -14-15-92-00-12-91-bb-e8,4.93,5.98,2.5 -14-15-92-00-12-91-ce-dc,5.93,5.98,0.5 -14-15-92-00-12-91-c6-77,5.93,5.98,1.5 -14-15-92-00-12-91-c2-11,5.93,5.98,2.5 -14-15-92-00-12-91-c4-7f,6.93,5.98,0.5 -14-15-92-00-12-91-c3-81,6.93,5.98,1.5 -14-15-92-00-12-91-b2-fa,6.93,5.98,2.5 -14-15-92-00-12-91-ca-a0,7.93,5.98,0.5 -14-15-92-00-12-91-af-d3,7.93,5.98,1.5 -14-15-92-00-12-91-b2-56,7.93,5.98,2.5 -14-15-92-00-12-91-c9-d8,0.93,6.98,0.5 -14-15-92-00-12-91-ce-fd,0.93,6.98,1.5 -14-15-92-00-12-91-ba-79,0.93,6.98,2.5 -14-15-92-00-12-91-b7-1d,1.93,6.98,0.5 -14-15-92-00-12-91-c7-e8,1.93,6.98,1.5 -14-15-92-00-12-91-c9-41,1.93,6.98,2.5 -14-15-92-00-12-91-ba-7d,2.93,6.98,0.5 -14-15-92-00-12-91-ba-0b,2.93,6.98,1.5 -14-15-92-00-12-91-b7-fe,2.93,6.98,2.5 -14-15-92-00-12-91-b9-0e,3.93,6.98,0.5 -14-15-92-00-12-91-c8-4e,3.93,6.98,1.5 -14-15-92-00-12-91-c7-ad,3.93,6.98,2.5 -14-15-92-00-12-91-bd-0f,4.93,6.98,0.5 -14-15-92-00-12-91-ce-62,4.93,6.98,1.5 -14-15-92-00-12-91-b4-f8,4.93,6.98,2.5 -14-15-92-00-12-91-b7-8d,5.93,6.98,0.5 -14-15-92-00-12-91-bf-13,5.93,6.98,1.5 -14-15-92-00-12-91-ba-bf,5.93,6.98,2.5 -14-15-92-00-12-91-bc-2e,6.93,6.98,0.5 -14-15-92-00-12-91-be-2b,6.93,6.98,1.5 -14-15-92-00-12-91-b4-4f,6.93,6.98,2.5 -14-15-92-00-12-91-c1-28,7.93,6.98,0.5 -14-15-92-00-12-91-c8-6d,7.93,6.98,1.5 -14-15-92-00-12-91-b1-a2,7.93,6.98,2.5 -14-15-92-00-12-91-bd-cc,0.93,7.98,0.5 -14-15-92-00-12-91-b8-fa,0.93,7.98,1.5 -14-15-92-00-12-91-1c-26,0.93,7.98,2.5 -14-15-92-00-12-91-bf-f3,1.93,7.98,0.5 -14-15-92-00-12-91-b7-e7,1.93,7.98,1.5 -14-15-92-00-12-91-ca-bc,1.93,7.98,2.5 -14-15-92-00-12-91-c5-d6,2.93,7.98,0.5 -14-15-92-00-12-91-cb-6c,2.93,7.98,1.5 -14-15-92-00-12-91-cc-0a,2.93,7.98,2.5 -14-15-92-00-12-91-b8-47,3.93,7.98,0.5 -14-15-92-00-12-91-c0-2a,3.93,7.98,1.5 -14-15-92-00-12-91-ba-20,3.93,7.98,2.5 -14-15-92-00-12-91-c9-d5,4.93,7.98,0.5 -14-15-92-00-12-91-b6-61,4.93,7.98,1.5 -14-15-92-00-12-91-be-23,4.93,7.98,2.5 -14-15-92-00-12-91-b7-b0,5.93,7.98,0.5 -14-15-92-00-12-91-b4-b9,5.93,7.98,1.5 -14-15-92-00-12-91-bc-68,5.93,7.98,2.5 -14-15-92-00-12-91-b7-c1,6.93,7.98,0.5 -14-15-92-00-12-91-b7-f7,6.93,7.98,1.5 -14-15-92-00-12-91-1c-ad,6.93,7.98,2.5 -14-15-92-00-12-91-1f-7b,7.93,7.98,0.5 -14-15-92-00-12-91-b5-c4,7.93,7.98,1.5 -14-15-92-00-12-91-bf-b7,7.93,7.98,2.5 -14-15-92-00-12-91-b9-dd,0.93,8.98,0.5 -14-15-92-00-12-91-cd-65,0.93,8.98,1.5 -14-15-92-00-12-91-c7-90,0.93,8.98,2.5 -14-15-92-00-12-91-b9-cf,1.93,8.98,0.5 -14-15-92-00-12-91-b3-7d,1.93,8.98,1.5 -14-15-92-00-12-91-c0-c2,1.93,8.98,2.5 -14-15-92-00-12-91-bc-ff,2.93,8.98,0.5 -14-15-92-00-12-91-b1-62,2.93,8.98,1.5 -14-15-92-00-12-91-b3-6d,2.93,8.98,2.5 -14-15-92-00-12-91-af-a5,3.93,8.98,0.5 -14-15-92-00-12-91-bc-e0,3.93,8.98,1.5 -14-15-92-00-12-91-c6-10,3.93,8.98,2.5 -14-15-92-00-12-91-b4-f2,4.93,8.98,0.5 -14-15-92-00-12-91-bc-93,4.93,8.98,1.5 -14-15-92-00-12-91-ca-df,4.93,8.98,2.5 -14-15-92-00-12-91-c3-24,5.93,8.98,0.5 -14-15-92-00-12-91-bf-07,5.93,8.98,1.5 -14-15-92-00-12-91-cd-83,5.93,8.98,2.5 -14-15-92-00-12-91-ce-46,6.93,8.98,0.5 -14-15-92-00-12-91-ba-40,6.93,8.98,1.5 -14-15-92-00-12-91-b3-7a,6.93,8.98,2.5 -14-15-92-00-12-91-c8-bf,7.93,8.98,0.5 -14-15-92-00-12-91-be-c0,7.93,8.98,1.5 -14-15-92-00-12-91-20-37,7.93,8.98,2.5 -14-15-92-00-12-91-ce-48,0.93,9.98,0.5 -14-15-92-00-12-91-b8-14,0.93,9.98,1.5 -14-15-92-00-12-91-b8-a6,0.93,9.98,2.5 -14-15-92-00-12-91-bd-b9,1.93,9.98,0.5 -14-15-92-00-12-91-b6-75,1.93,9.98,1.5 -14-15-92-00-12-91-b7-5f,1.93,9.98,2.5 -14-15-92-00-12-91-af-eb,2.93,9.98,0.5 -14-15-92-00-12-91-b4-2a,2.93,9.98,1.5 -14-15-92-00-12-91-b6-3a,2.93,9.98,2.5 -14-15-92-00-12-91-bf-23,3.93,9.98,0.5 -14-15-92-00-12-91-bf-f9,3.93,9.98,1.5 -14-15-92-00-12-91-c1-cd,3.93,9.98,2.5 -14-15-92-00-12-91-b3-8d,4.93,9.98,0.5 -14-15-92-00-12-91-ce-99,4.93,9.98,1.5 -14-15-92-00-12-91-b1-69,4.93,9.98,2.5 -14-15-92-00-12-91-c6-c5,5.93,9.98,0.5 -14-15-92-00-12-91-b8-e7,5.93,9.98,1.5 -14-15-92-00-12-91-c3-94,5.93,9.98,2.5 -14-15-92-00-12-91-b1-09,6.93,9.98,0.5 -14-15-92-00-12-91-bb-e0,6.93,9.98,1.5 -14-15-92-00-12-91-cd-ef,6.93,9.98,2.5 -14-15-92-00-12-91-cb-29,7.93,9.98,0.5 -14-15-92-00-12-91-b3-8f,7.93,9.98,1.5 -14-15-92-00-12-91-b8-9b,7.93,9.98,2.5 diff --git a/metas/strasbourg.json b/metas/strasbourg.json deleted file mode 100644 index af50fac69c..0000000000 --- a/metas/strasbourg.json +++ /dev/null @@ -1,2552 +0,0 @@ -[ - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-1.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-2.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-3.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-4.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-5.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-6.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-7.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-8.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-9.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-10.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-11.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-12.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-13.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-14.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-15.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-16.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-17.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-18.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-19.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-20.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-21.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-22.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-23.strasbourg.iot-lab.info", - "state": "Alive", - "y": "9.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-25.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-26.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-27.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-28.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-29.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-30.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-31.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-32.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-33.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-34.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-35.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-36.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-37.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-38.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-39.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-40.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-41.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-42.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-43.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-44.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-45.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-46.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-47.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-48.strasbourg.iot-lab.info", - "state": "Alive", - "y": "8.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-49.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-50.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-51.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-52.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-53.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-54.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-55.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-56.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-57.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-58.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-60.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-61.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-62.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-63.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-64.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-65.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-66.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-67.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-68.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-69.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-70.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-71.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-72.strasbourg.iot-lab.info", - "state": "Alive", - "y": "7.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-73.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-74.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-75.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-76.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-77.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-78.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-79.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-80.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-81.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-82.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-83.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-84.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-85.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-86.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-87.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-88.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-89.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-90.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-91.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-92.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-93.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-94.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-95.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-96.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-97.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-98.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-99.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-100.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-101.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-102.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-103.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-104.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-105.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-106.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-107.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-108.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-109.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-110.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-111.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-112.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-113.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-114.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-115.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-116.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-117.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-118.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-119.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-120.strasbourg.iot-lab.info", - "state": "Alive", - "y": "5.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-121.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-122.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-123.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-124.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-125.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-126.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-127.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-128.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-129.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-130.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-131.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-132.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-133.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-134.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-135.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-136.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-138.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-139.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-140.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-141.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-142.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-143.strasbourg.iot-lab.info", - "state": "Alive", - "y": "4.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-145.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-146.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-147.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-148.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-149.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-150.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-151.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-152.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-153.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-154.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-155.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-156.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-157.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-158.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-159.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-160.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-161.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-162.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-163.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-164.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-165.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-166.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-167.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-168.strasbourg.iot-lab.info", - "state": "Alive", - "y": "3.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-169.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-170.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-171.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-172.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-173.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-174.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-175.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-176.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-177.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-178.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-179.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-180.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-181.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-182.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-183.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-184.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-185.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-186.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-187.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-188.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-189.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-190.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-191.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-192.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-193.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-194.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-195.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-196.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-197.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-198.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-199.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-200.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-201.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-202.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-203.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-204.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-205.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-206.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-207.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-208.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-209.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-210.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-211.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-212.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-213.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-214.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-215.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-216.strasbourg.iot-lab.info", - "state": "Alive", - "y": "1.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-217.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "0.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-218.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "0.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-219.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "0.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-220.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "1.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-221.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "1.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-222.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "1.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-223.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "2.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-224.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "2.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-225.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "2.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-226.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "3.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-227.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "3.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-228.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "3.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-229.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "4.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-230.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "4.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-231.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "4.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-232.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "5.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-233.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "5.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-234.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "5.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-235.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "6.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-236.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "6.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-237.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "6.00", - "z": "2.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-238.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "7.00", - "z": "0.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-239.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "7.00", - "z": "1.50" - }, - { - "archi": "wsn430:cc1101", - "network_address": "wsn430-240.strasbourg.iot-lab.info", - "state": "Alive", - "y": "0.00", - "x": "7.00", - "z": "2.50" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-1.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "2.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-2.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "2.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-3.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "6.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-4.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "6.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-5.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "10.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-6.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "10.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-7.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "14.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-8.strasbourg.iot-lab.info", - "state": "Alive", - "y": "6.00", - "x": "14.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-10.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "2.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-11.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "6.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-12.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "6.00", - "z": "2.10" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-13.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "10.00", - "z": "1.20" - }, - { - "archi": "a8:at86rf231", - "network_address": "a8-14.strasbourg.iot-lab.info", - "state": "Alive", - "y": "2.00", - "x": "10.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-1.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a4-84", - "state": "Alive", - "y": "8.00", - "x": "0.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-2.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a6-85", - "state": "Alive", - "y": "8.00", - "x": "0.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-3.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-97-87", - "state": "Alive", - "y": "8.00", - "x": "2.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-5.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-98-89", - "state": "Alive", - "y": "8.00", - "x": "4.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-6.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-92-87", - "state": "Alive", - "y": "8.00", - "x": "4.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-7.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b1-84", - "state": "Alive", - "y": "8.00", - "x": "6.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-8.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-a8-87", - "state": "Alive", - "y": "8.00", - "x": "6.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-9.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b8-85", - "state": "Alive", - "y": "8.00", - "x": "8.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-10.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-93-87", - "state": "Alive", - "y": "8.00", - "x": "8.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-11.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-89-84", - "state": "Alive", - "y": "8.00", - "x": "10.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-12.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-95-88", - "state": "Alive", - "y": "8.00", - "x": "10.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-13.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-b3-84", - "state": "Alive", - "y": "8.00", - "x": "12.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-14.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-b1-87", - "state": "Alive", - "y": "8.00", - "x": "12.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-15.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-db-94-88", - "state": "Alive", - "y": "8.00", - "x": "14.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-16.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-93-85", - "state": "Alive", - "y": "8.00", - "x": "14.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-17.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-b5-85", - "state": "Alive", - "y": "8.00", - "x": "16.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-18.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a5-87", - "state": "Alive", - "y": "8.00", - "x": "16.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-19.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d6-90-83", - "state": "Alive", - "y": "6.00", - "x": "0.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-20.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-b7-86", - "state": "Alive", - "y": "6.00", - "x": "0.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-21.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dc-a3-85", - "state": "Alive", - "y": "6.00", - "x": "4.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-22.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a4-88", - "state": "Alive", - "y": "6.00", - "x": "4.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-23.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a9-84", - "state": "Alive", - "y": "6.00", - "x": "8.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-24.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d5-90-84", - "state": "Alive", - "y": "6.00", - "x": "8.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-25.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d5-a1-87", - "state": "Alive", - "y": "6.00", - "x": "12.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-27.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dc-a1-85", - "state": "Alive", - "y": "6.00", - "x": "16.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-28.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a5-86", - "state": "Alive", - "y": "6.00", - "x": "16.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-29.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dc-a2-84", - "state": "Alive", - "y": "4.00", - "x": "0.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-30.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b0-86", - "state": "Alive", - "y": "4.00", - "x": "0.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-31.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-a8-85", - "state": "Alive", - "y": "4.00", - "x": "2.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-32.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-b2-87", - "state": "Alive", - "y": "4.00", - "x": "2.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-33.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-b2-86", - "state": "Alive", - "y": "4.00", - "x": "4.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-34.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-a7-86", - "state": "Alive", - "y": "4.00", - "x": "4.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-35.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a7-84", - "state": "Alive", - "y": "4.00", - "x": "6.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-36.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-91-84", - "state": "Alive", - "y": "4.00", - "x": "6.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-37.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a3-86", - "state": "Alive", - "y": "4.00", - "x": "8.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-38.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d8-95-89", - "state": "Alive", - "y": "4.00", - "x": "8.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-39.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-a1-84", - "state": "Alive", - "y": "4.00", - "x": "10.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-41.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dc-98-85", - "state": "Alive", - "y": "5.00", - "x": "12.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-42.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d6-b1-86", - "state": "Alive", - "y": "5.00", - "x": "12.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-43.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-dd-92-85", - "state": "Alive", - "y": "5.00", - "x": "14.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-44.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a6-84", - "state": "Alive", - "y": "5.00", - "x": "14.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-45.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-b3-85", - "state": "Alive", - "y": "5.00", - "x": "16.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-46.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-99-85", - "state": "Alive", - "y": "5.00", - "x": "16.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-47.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d6-a4-87", - "state": "Alive", - "y": "2.00", - "x": "0.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-48.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d4-97-89", - "state": "Alive", - "y": "2.00", - "x": "0.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-49.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-a1-86", - "state": "Alive", - "y": "2.00", - "x": "4.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-50.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b5-86", - "state": "Alive", - "y": "2.00", - "x": "4.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-51.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-de-a5-85", - "state": "Alive", - "y": "2.00", - "x": "8.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-52.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-96-89", - "state": "Alive", - "y": "2.00", - "x": "8.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-53.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d6-98-90", - "state": "Alive", - "y": "0.00", - "x": "0.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-54.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d6-97-88", - "state": "Alive", - "y": "0.00", - "x": "0.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-55.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-db-b4-86", - "state": "Alive", - "y": "0.00", - "x": "2.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-56.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a2-88", - "state": "Alive", - "y": "0.00", - "x": "2.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-57.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d7-99-86", - "state": "Alive", - "y": "0.00", - "x": "4.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-58.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a7-88", - "state": "Alive", - "y": "0.00", - "x": "4.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-59.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-95-86", - "state": "Alive", - "y": "0.00", - "x": "6.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-60.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-db-a6-86", - "state": "Alive", - "y": "0.00", - "x": "6.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-61.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-a9-88", - "state": "Alive", - "y": "0.00", - "x": "8.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-62.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d9-b3-86", - "state": "Alive", - "y": "0.00", - "x": "8.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-63.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-da-98-87", - "state": "Alive", - "y": "0.00", - "x": "10.00", - "z": "1.20" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-64.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-d2-96-87", - "state": "Alive", - "y": "0.00", - "x": "10.00", - "z": "2.10" - }, - { - "archi": "m3:at86rf231", - "network_address": "m3-40.strasbourg.iot-lab.info", - "mac": "05-43-32-ff-03-db-b5-87", - "state": "Alive", - "y": "4.00", - "x": "10.00", - "z": "2.10" - } -] \ No newline at end of file diff --git a/metas/strasbourg_eui64.csv b/metas/strasbourg_eui64.csv deleted file mode 100644 index 9f86e9abf3..0000000000 --- a/metas/strasbourg_eui64.csv +++ /dev/null @@ -1,65 +0,0 @@ -05-43-32-ff-03-dd-a4-84,m3-1 -05-43-32-ff-03-d9-93-87,m3-10 -05-43-32-ff-03-d8-a0-86,m3-100 -05-43-32-ff-03-d9-89-84,m3-11 -05-43-32-ff-03-d8-95-88,m3-12 -05-43-32-ff-03-da-b3-84,m3-13 -05-43-32-ff-03-da-b1-87,m3-14 -05-43-32-ff-03-db-94-88,m3-15 -05-43-32-ff-03-dd-93-85,m3-16 -05-43-32-ff-03-da-b5-85,m3-17 -05-43-32-ff-03-da-a5-87,m3-18 -05-43-32-ff-03-d6-90-83,m3-19 -05-43-32-ff-03-dd-a6-85,m3-2 -05-43-32-ff-03-da-b7-86,m3-20 -05-43-32-ff-03-dc-a3-85,m3-21 -05-43-32-ff-03-dd-a4-88,m3-22 -05-43-32-ff-03-da-a9-84,m3-23 -05-43-32-ff-03-d5-90-84,m3-24 -05-43-32-ff-03-d5-a1-87,m3-25 -05-43-32-ff-03-dc-a1-85,m3-27 -05-43-32-ff-03-d9-a5-86,m3-28 -05-43-32-ff-03-dc-a2-84,m3-29 -05-43-32-ff-03-d8-97-87,m3-3 -05-43-32-ff-03-d8-b0-86,m3-30 -05-43-32-ff-03-dd-a8-85,m3-31 -05-43-32-ff-03-d7-b2-87,m3-32 -05-43-32-ff-03-d8-b2-86,m3-33 -05-43-32-ff-03-d8-a7-86,m3-34 -05-43-32-ff-03-d9-a7-84,m3-35 -05-43-32-ff-03-d7-91-84,m3-36 -05-43-32-ff-03-da-a3-86,m3-37 -05-43-32-ff-03-d8-95-89,m3-38 -05-43-32-ff-03-d9-a1-84,m3-39 -05-43-32-ff-03-db-b5-87,m3-40 -05-43-32-ff-03-dc-98-85,m3-41 -05-43-32-ff-03-d6-b1-86,m3-42 -05-43-32-ff-03-dd-92-85,m3-43 -05-43-32-ff-03-da-a6-84,m3-44 -05-43-32-ff-03-da-b3-85,m3-45 -05-43-32-ff-03-da-99-85,m3-46 -05-43-32-ff-03-d6-a4-87,m3-47 -05-43-32-ff-03-d4-97-89,m3-48 -05-43-32-ff-03-d7-a1-86,m3-49 -05-43-32-ff-03-da-98-89,m3-5 -05-43-32-ff-03-d9-b5-86,m3-50 -05-43-32-ff-03-de-a5-85,m3-51 -05-43-32-ff-03-d7-96-89,m3-52 -05-43-32-ff-03-d6-98-90,m3-53 -05-43-32-ff-03-d6-97-88,m3-54 -05-43-32-ff-03-db-b4-86,m3-55 -05-43-32-ff-03-da-a2-88,m3-56 -05-43-32-ff-03-d7-99-86,m3-57 -05-43-32-ff-03-da-a7-88,m3-58 -05-43-32-ff-03-d9-95-86,m3-59 -05-43-32-ff-03-d9-92-87,m3-6 -05-43-32-ff-03-db-a6-86,m3-60 -05-43-32-ff-03-da-a9-88,m3-61 -05-43-32-ff-03-d9-b3-86,m3-62 -05-43-32-ff-03-da-98-87,m3-63 -05-43-32-ff-03-d2-96-87,m3-64 -05-43-32-ff-03-d7-b1-84,m3-7 -05-43-32-ff-03-d8-a8-87,m3-8 -05-43-32-ff-03-d8-b8-85,m3-9 -05-43-32-ff-03-db-92-86,m3-96 -05-43-32-ff-03-dc-b7-85,m3-97 diff --git a/metas/update_locations.py b/metas/update_locations.py deleted file mode 100644 index 7512cfbf6b..0000000000 --- a/metas/update_locations.py +++ /dev/null @@ -1,58 +0,0 @@ -# This file uses the experiment-cli tool to genrate the IoTLab motes locations. -# Refere to the Mercator wiki to use it. -# https://github.com/openwsn-berkeley/mercator/wiki - -#-----------------------------------------------------------------------------# - -import os -import json -import csv - -#-----------------------------------------------------------------------------# - -site_list = ["strasbourg", "lille"] - -for site in site_list: - os.system("experiment-cli info -l --site {0} > tmp.json".format(site)) - jout = "" - with open('tmp.json') as data_file: - jout = json.load(data_file) - os.remove("tmp.json") - - # get motes eui64 - - mac_list = [] - path = "{0}_eui64.csv".format(site) - if os.path.isfile(path): - with open(path, 'r') as f: - reader = csv.reader(f) - mac_list = list(reader) - - # parse results - - results = [] - for mote in jout["items"]: - if mote["state"] == "Alive" and mote["mobile"] == 0: - # remove useless fields - del mote["mobile"] - del mote["mobility_type"] - del mote["site"] - del mote["uid"] - - # get mote eui64 - hostname = mote["network_address"].split(".")[0] - for mac in mac_list: - if hostname == mac[1]: - mote["mac"] = mac[0] - break - - # add mote to site - res_mote = mote - results.append(res_mote) - - # write out - - with open('{0}.json'.format(site), 'w') as fp: - json.dump(results, fp, indent=4) - -#-----------------------------------------------------------------------------# diff --git a/metas/update_states.py b/metas/update_states.py deleted file mode 100644 index 4e92547636..0000000000 --- a/metas/update_states.py +++ /dev/null @@ -1,39 +0,0 @@ -# This file uses the experiment-cli tool to genrate the IoTLab motes locations. -# Refere to the Mercator wiki to use it. -# https://github.com/openwsn-berkeley/mercator/wiki - -#-----------------------------------------------------------------------------# - -import os -import json - -#-----------------------------------------------------------------------------# - -STATES = ["Busy","Alive"] - -# get IoTlab infos - -os.system("experiment-cli info -l > tmp.json") -jout = "" -with open('tmp.json') as data_file: - jout = json.load(data_file) -os.remove("tmp.json") - -# parse results - -results = {} -for mote in jout["items"]: - if mote["state"] in STATES: - # create site if it does not exists - if mote["site"] not in results.keys(): - results[mote["site"]] = [] - - # add mote to site - results[mote["site"]].append(mote["network_address"]) - -# write out - -with open('states.json', 'w') as fp: - json.dump(results, fp, indent=4) - -#-----------------------------------------------------------------------------# diff --git a/requirements.txt b/requirements.txt index b02347dfcb..a5e1c2ab13 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,20 @@ -pyserial -importlib -iotlabcli==2.5.2 +colored +cryptography==2.4.2 +halo +iotlabcli +## iotlabclient is not available via pip right now; needs to be installed manually +#iotlabclient +matplotlib +netaddr +networkx +numpy +pandas +paho-mqtt +pytest +python-dateutil +PyYAML +scipy +seaborn +statsmodels +tqdm +websocket-client diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000..e52d48a6f4 --- /dev/null +++ b/setup.py @@ -0,0 +1,14 @@ +from setuptools import setup, find_packages + +setup( + name='mercator', + version='3.0', + packages=find_packages(), + entry_points={ + 'console_scripts': [ + 'mercator = mercator.__main__:main', + 'mercator-k7conv = mercator.k7conv:main', + 'mercator-k7analyze = mercator.k7analyze:main' + ] + } +) diff --git a/tests/test_hdlc.py b/tests/test_hdlc.py new file mode 100644 index 0000000000..cb70ec3c49 --- /dev/null +++ b/tests/test_hdlc.py @@ -0,0 +1,56 @@ +import pytest + +import mercator +from mercator.hdlc import (hdlc_calc_crc, hdlc_verify_crc, + hdlc_escape, hdlc_unescape, + HDLC_FLAG, HdlcException) + +# test CRC values are calulated manually with +# https://github.com/meetanthony/crcphp using CRC-16/X-25 + +HDLC_FLAG = b'\x7e' + +@pytest.fixture(params=[ + {'data': b'\x01', + 'escaped_data': b'\x01', + 'crc': b'\xf1\xe1'}, + {'data': b'\xde\xad\xbe\xef\xc0\xfe\xc0\x1a\xc0\xff\xee', + 'escaped_data': b'\xde\xad\xbe\xef\xc0\xfe\xc0\x1a\xc0\xff\xee', + 'crc': b'\x35\x3a'}, + {'data': b'\x7e\x7d', + 'escaped_data': b'\x7d\x5e\x7d\x5d', + 'crc': b'\xf1\xcd'}]) +def vector(request): + return request.param + +def test_calc_crc(vector): + assert hdlc_calc_crc(vector['data']) == vector['crc'] + +def test_verify_crc(vector): + assert hdlc_verify_crc(vector['data']+vector['crc']) + +def test_escape(vector): + assert hdlc_escape(vector['data']) == vector['escaped_data'] + +def test_unescape(vector): + assert hdlc_unescape(vector['escaped_data']) == vector['data'] + +@pytest.fixture(params=[hdlc_calc_crc, hdlc_verify_crc, + hdlc_escape, hdlc_unescape]) +def hdlc_api(request): + return request.param + +def test_empty_input(hdlc_api): + with pytest.raises(HdlcException): + hdlc_api(b'') + +def test_dehdlcify_short_frame(): + pass + in_buf = HDLC_FLAG + in_buf += b'\x01\x02' # garbage byte + in_buf += HDLC_FLAG + +def test_dehdlcify_wrong_crc(): + pass + data = b'\x01' + wrong_crc = b'\xf1\xe2' diff --git a/tests/test_node.py b/tests/test_node.py new file mode 100644 index 0000000000..5c79251ed6 --- /dev/null +++ b/tests/test_node.py @@ -0,0 +1,687 @@ +import logging +import struct +import time +import types + +import netaddr +import pytest + +from mercator.hdlc import (hdlc_calc_crc, hdlc_verify_crc, + hdlc_escape, hdlc_unescape, HDLC_FLAG) +import mercator.node +from mercator.node import MsgType, NodeStatus, RxFlag +import mercator.platforms +from mercator.utils import OSName + +TEST_MAC_ADDR = netaddr.EUI('02-01-03-04-05-06-07-08') +TEST_NODE_ID = 1 +TEST_CHANNEL = 11 +TEST_TX_LEN = 100 +TEST_TRANS_CTR = 100 +TEST_RSSI = -50 + +def _hdlcify(in_buf): + crc = hdlc_calc_crc(in_buf) + body = hdlc_escape(in_buf + crc) + return HDLC_FLAG + body + HDLC_FLAG + +def _dehdlcify(in_buf): + body = in_buf[1:-1] + assert hdlc_verify_crc(body) + return hdlc_unescape(body[:-2]) + +class Platform(mercator.platforms.Platform): + def __init__(self, config): + self.firmware_os_name = OSName.OpenWSN + + def setup_measurement(self, config): + pass + +class Node(mercator.node.Node): + def __init__(self, platform): + super(Node, self).__init__(platform) + self.id = TEST_NODE_ID + self.sent_bytes = None + self.test_recv_bytes = b'' + self.sent_count = 0 + self.retry_count = -1 + self.mac_addr = TEST_MAC_ADDR + + def get_sent_bytes(self): + ret = self.sent_bytes + self.sent_bytes = None + return ret + + def put_test_recv_bytes(self, byte_str): + self.test_recv_bytes += byte_str + + def set_retry_count(self, count): + # return self.test_recv_bytes after _platform_send() is called + # "retry_count+1" times + self.retry_count = count + + def _platform_send(self, msg): + self.sent_bytes = msg + self.sent_count += 1 + + def _platform_recv(self): + if self.sent_count > self.retry_count: + ret = self.test_recv_bytes + self.test_recv_bytes = b'' + else: + ret = b'' + return ret + +@pytest.fixture +def node(caplog): + caplog.set_level(logging.INFO) + platform = Platform({}) + _node = Node(platform) + + # do some initialization which is done by setup() + _node.tx_power_dbm = _node.DUMMY_TX_POWER_VALUE + _node.tx_len = TEST_TX_LEN + _node.tx_num_pk = 100 + _node.tx_ifdur_ms = 10 + _node.tx_fill_byte = 0x5a + _node.rssi_records = [None] * _node.tx_num_pk + _node._status = NodeStatus.IDLE + + return _node + +@pytest.fixture +def resp_st(): + TEST_NUMNOTIFICATIONS = 0xabcd + def _resp_st(status): + numnotifications = TEST_NUMNOTIFICATIONS + mac_addr = TEST_MAC_ADDR + return struct.pack('>BBHQ', + MsgType.RESP_ST, status, numnotifications, + mac_addr.value) + return _resp_st + +@pytest.fixture +def resp_idle(): + return struct.pack('>B', MsgType.RESP_IDLE) + +@pytest.fixture +def resp_tx(): + return struct.pack('>B', MsgType.RESP_TX) + +@pytest.fixture +def resp_rx(): + return struct.pack('>B', MsgType.RESP_RX) + +@pytest.fixture +def ind_up(): + return struct.pack('>B', MsgType.IND_UP) + +@pytest.fixture +def ind_txdone(): + return struct.pack('>B', MsgType.IND_TXDONE) + +@pytest.fixture +def ind_rx(): + def _ind_rx(pkctr): + return struct.pack('>BBbBH', + MsgType.IND_RX, + TEST_TX_LEN, + TEST_RSSI, + RxFlag.EXPECTED_FLAGS, + pkctr) + return _ind_rx + +def test_request_status(caplog, node, resp_st): + test_status = NodeStatus.IDLE + node.put_test_recv_bytes(_hdlcify(resp_st(test_status))) + + status, mac_addr = node.request_status() + sent_bytes = _dehdlcify(node.get_sent_bytes()) + assert status == test_status + assert mac_addr == TEST_MAC_ADDR + assert len(sent_bytes) == 1 + assert sent_bytes[0] == MsgType.REQ_ST + + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_ST from {0}'.format(TEST_NODE_ID))) + +def test_request_status_having_ind_up(caplog, node, ind_up, resp_st): + # put IND_UP before RESP_ST so that they are received at once + test_status = NodeStatus.IDLE + node.put_test_recv_bytes(_hdlcify(ind_up) + + _hdlcify(resp_st(test_status))) + + # even in this case, node should identify RESP_ST and process it + # properly. IND_UP should be ignored + status, mac_addr = node.request_status() + assert status == test_status + assert mac_addr == TEST_MAC_ADDR + + assert len(caplog.record_tuples) == 4 + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv IND_UP from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Ignore IND_UP from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[3] + == ('root', + logging.INFO, + 'Recv RESP_ST from {0}'.format(TEST_NODE_ID))) + +def test_request_status_duplicate_response(caplog, node, resp_st): + # put two RESP_ST + test_status_1 = NodeStatus.RX + test_status_2 = NodeStatus.IDLE + node.put_test_recv_bytes(_hdlcify(resp_st(test_status_1)) + + _hdlcify(resp_st(test_status_2))) + + status, mac_addr = node.request_status() + assert status == test_status_1 + assert mac_addr == TEST_MAC_ADDR + + # in this case, the second RESP_ST should not be processed. the + # second RESP_ST should be kept in serial_leftover + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_ST from {0}'.format(TEST_NODE_ID))) + assert node.serial_leftover == _hdlcify(resp_st(test_status_2)) + +def test_request_status_with_retries(caplog, node, resp_st): + retry_count = 1 + test_status = NodeStatus.IDLE + node.put_test_recv_bytes(_hdlcify(resp_st(test_status))) + node.set_retry_count(retry_count) + + status, mac_addr = node.request_status() + assert status == test_status + assert mac_addr == TEST_MAC_ADDR + + # we should have one retry + assert len(caplog.record_tuples) == 4 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Retry REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[3] + == ('root', + logging.INFO, + 'Recv RESP_ST from {0}'.format(TEST_NODE_ID))) + +def test_request_status_timeout(caplog, node): + with pytest.raises(RuntimeError): + status, mac_addr = node.request_status() + + # we should have one more 'Send' log than 'Retry'; and at the end, + # we should have CRITICAL log + assert len(caplog.record_tuples) == node.MAX_REQUEST_RETRIES * 2 + 1 + 1 + assert (caplog.record_tuples[-1] == + ('root', + logging.CRITICAL, + 'Node {0} doesn\'t respond to REQ_ST'.format(TEST_NODE_ID))) + +def test_request_idle(caplog, node, resp_idle): + node.status = NodeStatus.RX + node.put_test_recv_bytes(_hdlcify(resp_idle)) + node.request_idle() + + assert node.status == NodeStatus.IDLE + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_IDLE to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_IDLE from {0}'.format(TEST_NODE_ID))) + +def test_request_idle_timeout(caplog, node, resp_idle): + with pytest.raises(RuntimeError): + node.request_idle() + assert len(caplog.record_tuples) == node.MAX_REQUEST_RETRIES * 2 + 1 + 1 + assert (caplog.record_tuples[-1] == + ('root', + logging.CRITICAL, + 'Node {0} doesn\'t respond to REQ_IDLE'.format(TEST_NODE_ID))) + +def test_wait_ind_up(caplog, node, ind_up): + node.put_test_recv_bytes(_hdlcify(ind_up)) + node.wait_ind_up() + + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Wait for IND_UP from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv IND_UP from {0}'.format(TEST_NODE_ID))) + +def test_wait_ind_up_timeout(caplog, node, ind_up): + node.wait_ind_up() + + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Wait for IND_UP from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'No IND_UP from {0}'.format(TEST_NODE_ID))) + +def test_start_tx(caplog, node, resp_tx): + node.put_test_recv_bytes(_hdlcify(resp_tx)) + node.start_tx(TEST_CHANNEL, TEST_TRANS_CTR) + + assert node.status == NodeStatus.TX + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_TX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_TX from {0}'.format(TEST_NODE_ID))) + +def test_start_tx_having_ind_txdone(caplog, node, resp_tx, ind_txdone): + # IND_TXDONE may follow RESP_TX especially when using opentestbed + node.put_test_recv_bytes(_hdlcify(resp_tx) + +_hdlcify(ind_txdone)) + node.start_tx(TEST_CHANNEL, TEST_TRANS_CTR) + + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_TX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_TX from {0}'.format(TEST_NODE_ID))) + + # IND_TXDONE should be ignored and saved in serial_leftover + assert node.serial_leftover == _hdlcify(ind_txdone) + +def test_start_tx_timeout(caplog, node, resp_st): + def _platform_recv(self): + if not hasattr(self, 'req_count'): + self.req_count = 1 + else: + self.req_count += 1 + if self.req_count % 2: # odd, RESP_TX is expected + return b'' # return nothing + else: + return _hdlcify(resp_st(NodeStatus.IDLE)) + + node._platform_recv = types.MethodType(_platform_recv, node) + with pytest.raises(RuntimeError): + node.start_tx(TEST_CHANNEL, TEST_TRANS_CTR) + assert len(caplog.record_tuples) == ( + (node.MAX_REQUEST_RETRIES + 1) # REQ_TX + + (node.MAX_REQUEST_RETRIES + 1) * 2 # REQ_ST + RESP_ST + + node.MAX_REQUEST_RETRIES # Retry log + + 1 # error log + ) + assert (caplog.record_tuples[-1] == + ('root', + logging.CRITICAL, + 'Node {0} doesn\'t respond to REQ_TX'.format(TEST_NODE_ID))) + +def test_start_tx_delayed_resp_tx(caplog, node, resp_tx, resp_st): + def _platform_recv(self): + if not hasattr(self, 'req_count'): + self.req_count = 1 + else: + self.req_count += 1 + if self.req_count == 1: + # return nothing for the first REQ_TX + return b'' + elif self.req_count == 2: + return _hdlcify(resp_tx) + else: + assert False # shouldn't come + + node._platform_recv = types.MethodType(_platform_recv, node) + node.start_tx(TEST_CHANNEL, TEST_TRANS_CTR) + assert len(caplog.record_tuples) == 3 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_TX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Recv RESP_TX from {0}'.format(TEST_NODE_ID))) + +def test_start_tx_recv_ind_txdone(caplog, node, ind_txdone): + def _platform_recv(self): + if not hasattr(self, 'req_count'): + self.req_count = 1 + else: + self.req_count += 1 + if self.req_count == 1: + # return nothing for the first REQ_TX + return b'' + elif self.req_count == 2: + return _hdlcify(ind_txdone) + else: + assert False # shouldn't come + + node._platform_recv = types.MethodType(_platform_recv, node) + node.start_tx(TEST_CHANNEL, TEST_TRANS_CTR) + assert len(caplog.record_tuples) == 3 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_TX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Send REQ_ST to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Recv IND_TXDONE from {0}'.format(TEST_NODE_ID))) + +def test_wait_tx_done(caplog, node, ind_txdone, resp_idle): + node.status = NodeStatus.TX + node.put_test_recv_bytes(_hdlcify(ind_txdone) + _hdlcify(resp_idle)) + node.wait_tx_done() + assert node.status == NodeStatus.IDLE + + assert len(caplog.record_tuples) == 4 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Wait for IND_TXDONE from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv IND_TXDONE from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Send REQ_IDLE to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[3] + == ('root', + logging.INFO, + 'Recv RESP_IDLE from {0}'.format(TEST_NODE_ID))) + +def test_wait_tx_done_resp_st(caplog, node, resp_st, ind_txdone, resp_idle): + # RESP_TX may be followed by IND_TXDONE when REQ_TX is re-sent + node.put_test_recv_bytes(_hdlcify(resp_st(NodeStatus.TX)) + + _hdlcify(ind_txdone) + + _hdlcify(resp_idle)) + node.wait_tx_done() + + # RESP_TX should be ignored + assert len(caplog.record_tuples) == 6 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Wait for IND_TXDONE from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_ST from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Ignore RESP_ST from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[3] + == ('root', + logging.INFO, + 'Recv IND_TXDONE from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[4] + == ('root', + logging.INFO, + 'Send REQ_IDLE to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[5] + == ('root', + logging.INFO, + 'Recv RESP_IDLE from {0}'.format(TEST_NODE_ID))) + +def test_wait_tx_done_timeout(caplog, node, resp_idle): + with pytest.raises(RuntimeError): + node.wait_tx_done() + assert len(caplog.record_tuples) == 10 + assert (caplog.record_tuples[0] == + ('root', + logging.INFO, + 'Wait for IND_TXDONE from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] == + ('root', + logging.ERROR, + 'IND_TXDONE from {0} may be dropped'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[-1] == + ('root', + logging.CRITICAL, + 'Node {0} doesn\'t respond to REQ_IDLE'.format(TEST_NODE_ID))) + assert node.current_channel is None + assert node.current_trans_ctr is None + assert node.current_tx_mac_addr is None + +def test_start_rx(caplog, node, resp_rx): + node.put_test_recv_bytes(_hdlcify(resp_rx)) + node.start_rx(TEST_CHANNEL, TEST_MAC_ADDR, TEST_TRANS_CTR) + assert node.status == NodeStatus.RX + + assert len(caplog.record_tuples) == 2 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_RX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_RX from {0}'.format(TEST_NODE_ID))) + + # stop the thread directly + node.status = NodeStatus.IDLE + node.keep_receiving_thread.join() + +def test_start_rx_done_duplicate_response(caplog, node, resp_rx): + # two RESP_RX are received at once + node.put_test_recv_bytes(_hdlcify(resp_rx) + + _hdlcify(resp_rx)) + node.start_rx(TEST_CHANNEL, TEST_MAC_ADDR, TEST_TRANS_CTR) + # stop the thread directly + node.status = NodeStatus.IDLE + node.keep_receiving_thread.join() + + assert len(caplog.record_tuples) == 4 + assert (caplog.record_tuples[0] + == ('root', + logging.INFO, + 'Send REQ_RX to {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[1] + == ('root', + logging.INFO, + 'Recv RESP_RX from {0}'.format(TEST_NODE_ID))) + # the second RESP_RX should be handled in _store_rx_records() and + # ignored + assert node.serial_leftover == HDLC_FLAG + assert (caplog.record_tuples[2] + == ('root', + logging.INFO, + 'Recv RESP_RX from {0}'.format(TEST_NODE_ID))) + assert (caplog.record_tuples[3] + == ('root', + logging.INFO, + 'Ignore RESP_RX from {0}'.format(TEST_NODE_ID))) + +def test_start_rx_timeout(caplog, node): + with pytest.raises(RuntimeError): + node.start_rx(TEST_CHANNEL, TEST_MAC_ADDR, TEST_TRANS_CTR) + assert len(caplog.record_tuples) == node.MAX_REQUEST_RETRIES * 2 + 1 + 1 + assert (caplog.record_tuples[-1] == + ('root', + logging.CRITICAL, + 'Node {0} doesn\'t respond to REQ_RX'.format(TEST_NODE_ID))) + +def test_recv_corrupt_resp_rx_1(caplog, node): + # there are two HDLC frames of RESP_RX, but the first one has two + # missing bytes: 0x3a and 0x7e + test_bytes = b'\x7e\x0c\x14\x7e\x0c\x14\x3a\x7e' + node.current_channel = TEST_CHANNEL + node.current_trans_ctr = TEST_TRANS_CTR + node.current_tx_mac_addr = TEST_MAC_ADDR + + caplog.set_level(logging.DEBUG) + node.put_test_recv_bytes(test_bytes) + result = node._issue_command(node._send_req_rx, node._recv_resp_rx, + retry=False) + # the first one is corrupted + assert not result + result = node._issue_command(node._send_req_rx, node._recv_resp_rx, + retry=False) + # the second one is fine + assert result and result[0] + +def test_recv_corrupt_resp_rx_2(caplog, node): + # there are two HDLC frames of RESP_RX, but the first one doesn't + # have the leading 0x7e (HDLC_FLAG) + test_bytes = b'\x0c\x14\x3a\x7e\x7e\x0c\x14\x3a\x7e' + node.current_channel = TEST_CHANNEL + node.current_trans_ctr = TEST_TRANS_CTR + node.current_tx_mac_addr = TEST_MAC_ADDR + + caplog.set_level(logging.DEBUG) + node.put_test_recv_bytes(test_bytes) + result = node._issue_command(node._send_req_rx, node._recv_resp_rx, + retry=False) + # the first part of the recv bytes is dropped in node._recv_msg() + assert result and result[0] + +def test_recv_corrupt_resp_rx_3(caplog, node): + # there are two HDLC frames of RESP_RX, but the first one lost its + # content, which is msg_type 0xc0 + test_bytes = b'\x7e\x14\x3a\x7e\x0c\x14\x3a\x7e' + node.current_channel = TEST_CHANNEL + node.current_trans_ctr = TEST_TRANS_CTR + node.current_tx_mac_addr = TEST_MAC_ADDR + + caplog.set_level(logging.DEBUG) + node.put_test_recv_bytes(test_bytes) + result = node._issue_command(node._send_req_rx, node._recv_resp_rx, + retry=False) + # the first one is corrupted + assert not result + result = node._issue_command(node._send_req_rx, node._recv_resp_rx, + retry=False) + # the second one is fine + assert result and result[0] + +def test_keep_receiving(caplog, node, resp_rx, ind_rx, resp_idle): + def _platform_recv_ind_rx(self): + if self.get_sent_bytes(): # expect this is REQ_RX + ret = _hdlcify(resp_rx) + else: + time.sleep(0.10) + if hasattr(self, 'pkctr'): + self.pkctr += 1 + else: + self.pkctr = 0 + + # this test should be done before pkctr goes beyond the + # boundary + assert self.pkctr < 2**16 + + # incomplete rx_record which doesn't have msg_type + rx_record = _hdlcify(ind_rx(self.pkctr)) + + if self.pkctr == 0: + ret = rx_record + HDLC_FLAG + else: + self.serial_leftover == HDLC_FLAG[0] + ret = rx_record[1:] + HDLC_FLAG + + return ret + + def _platform_recv_empty(self): + return b'' + + caplog.set_level(logging.WARNING) + node._platform_recv = types.MethodType(_platform_recv_ind_rx, node) + node.start_rx(TEST_CHANNEL, TEST_MAC_ADDR, TEST_TRANS_CTR) + assert node.status == NodeStatus.RX + + assert len(caplog.record_tuples) == 0 + caplog.set_level(logging.DEBUG) + time.sleep(1) + + # stop the thread by changing the node's status to STOPPING_RX + node.status = NodeStatus.STOPPING_RX + time.sleep(1) + # the thread should be still alive since it keeps receiving something + assert node.keep_receiving_thread.is_alive() + # make _platform_recv() return nothing + node._platform_recv = types.MethodType(_platform_recv_empty, node) + node.keep_receiving_thread.join() + assert not node.keep_receiving_thread.is_alive() + +def test_duplicate_ind_rx(caplog, node, ind_rx): + test_pkctr = 2 + prev_pkctr = 1 + + prev_pkctr = node._store_rx_record(TEST_RSSI, 2, prev_pkctr) + assert prev_pkctr == 2 + assert len(caplog.record_tuples) == 0 + + # duplicate + assert node._store_rx_record(TEST_RSSI, 2, prev_pkctr) == 2 + assert len(caplog.record_tuples) == 1 + assert (caplog.record_tuples[0] == + ('root', + logging.ERROR, + 'Node {0} received a duplicate packet '.format(TEST_NODE_ID) + + '(pkctr:{0})'.format(test_pkctr))) + +def test_stop_rx(caplog, node, resp_rx, resp_idle): + node.put_test_recv_bytes(_hdlcify(resp_rx)) + node.start_rx(TEST_CHANNEL, TEST_MAC_ADDR, TEST_TRANS_CTR) + + def _platform_recv(self): + if self.sent_bytes and (self.sent_bytes[1] == MsgType.REQ_IDLE): + self.sent_bytes = b'' + return _hdlcify(resp_idle) + else: + self.sent_bytes = b'' + return b'' + node._platform_recv = types.MethodType(_platform_recv, node) + node.stop_rx() + assert node.status == NodeStatus.IDLE + assert node.current_channel is None + assert node.current_trans_ctr is None + assert node.current_tx_mac_addr is None