Coder Social home page Coder Social logo

k7's Introduction

k7

Version Licence Build

Cassette

CCBY: Cassette by Alvaro Cabrera from the Noun Project

Usage

Check file format

python -m k7.k7 --check myfile.k7

k7 format

{"location": "grenoble", "tx_length": 100, "start_date": "2018-01-11 16:32:22", "stop_date": "2018-01-13 16:21:30", "node_count": 44, "channels": [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], "interframe_duration": 100}
datetime,src,dst,channel,mean_rssi,pdr,tx_count
2018-01-11 16:33:07,18,19,11,-53.2,1.0
2018-01-11 16:33:07,17,14,11,-84.03,0.97
2018-01-11 16:33:07,23,27,11,-83.88,1.0
2018-01-11 16:33:30,16,14,11,-67.03,1.0
2018-01-11 16:33:30,22,49,11,-70.0,1.0
...

Header

Each k7 starts with a one-line header. The header is the json dump of a dict. The header contains the dataset meta data. Ex:

{"location": "grenoble", "tx_length": 100, "start_date": "2017-06-20 16:22:15", "stop_date": "2017-06-21 10:29:29", "node_count": 50, "channels": [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26], "interframe_duration": 10}

Data

datetime src dst channel mean_rssi pdr tx_count
iso8601 string int int int float float (0-1) int

Standard example:

datetime src dst channel mean_rssi pdr tx_count
2017-12-19 21:35:41 0 1 11 -74.5 1.0 100

The source or destination can be empty (i.e when measured on all the neighbors of the src):

datetime src dst channel mean_rssi pdr tx_count
2017-12-19 21:35:41 11 -74.5 0.7 100

Unknown channel:

datetime src dst channel mean_rssi pdr tx_count
2017-12-19 21:35:41 1 2 -79.5 1.0 100

When the channel value is empty, it means that the channel is unknown for that measurement.

k7's People

Watchers

 avatar

Forkers

hassenf

k7's Issues

Make channel back into a unique integer value

The current channels column requires extra parsing function and is not useful in practice.
The channel is either known or unknown.

For instance:

  • in Mercartor, the channel in know so the value with be for instance 11
  • in SMIP, the channel value in unknown so the value will be empty (no value between to commas)

This new format does not allow to group multiple channels (when multiple channels have the same RSSI value for instance) but that is rarely the case and the grouping (compression) does not bring a huge benefice.

If the channel is unknown, then the script that use the trace (e.g the 6tisch simulator) can set all the channels to the same value.

The channels that were used during the trace collection are supposed to be provided in the JSON header.

This reverts #2

Add script to convert SMIP into K7

As SMIP only reports aggregated traces, a conversion with basic rules need to be applied in order to convert traces into K7.
Before assuming a link is not available (i.e PDR=0), we should wait for 3 HR.

From LD:

The discovery frame is at least 256*256 slots long, that is 475.136s.
22.5 mins is 1350s.
Ceil(1350/475.136) = 3.
So my expectation is that we could hear a max of 3 discovery packets per HR under regular circumstances.
The only time this could be exceeded that I can think of is if we are unable to generate an HR (due to e.g. queue congestion), then the counters are not cleared and we try to generate the HR one interval later.

Remove fill function

K7 should not be a matrix. That choice should be left to the script that use the trace.

Check date format

The --check feature should check if the datetime format is the right one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.