{"id":24515967,"url":"https://github.com/ph4r05/wsntestbed","last_synced_at":"2025-07-25T09:39:12.731Z","repository":{"id":3362549,"uuid":"4408499","full_name":"ph4r05/WSNTestbed","owner":"ph4r05","description":"WSNTestbed framework for TinyOS","archived":false,"fork":false,"pushed_at":"2013-04-05T08:21:21.000Z","size":972,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-22T01:20:45.736Z","etag":null,"topics":["device-management","iot","iot-management","java","research","testbed","testbed-manager","tinyos","wsn"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ph4r05.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-22T15:08:58.000Z","updated_at":"2024-02-19T07:34:02.000Z","dependencies_parsed_at":"2022-09-07T08:20:54.578Z","dependency_job_id":null,"html_url":"https://github.com/ph4r05/WSNTestbed","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ph4r05%2FWSNTestbed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ph4r05%2FWSNTestbed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ph4r05%2FWSNTestbed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ph4r05%2FWSNTestbed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ph4r05","download_url":"https://codeload.github.com/ph4r05/WSNTestbed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243719373,"owners_count":20336596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["device-management","iot","iot-management","java","research","testbed","testbed-manager","tinyos","wsn"],"created_at":"2025-01-22T01:20:16.837Z","updated_at":"2025-03-15T10:41:35.481Z","avatar_url":"https://github.com/ph4r05.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"WSNTestbed\n==========\n\n\n## Overview==\n\nJava command line application for manipulating with Wireless Sensor Network (WSN), collecting data\nand controlling running experiment on testbed.\n\n## Warning!\nTechnical documentation for this project is in early stages, this is only short\ndescription. There can be some inaccuracies in this text.\n\nApplication has been made for specific needs of our laboratory at Masaryk University,\nthus it contains some very specific features/settings. But it also contains some \nuniversal classes which can be useful for others. \n\n## Requirements\nRequires modified version of TinyOS Java SDK, see TinyOSJava-2.1.ph4edit repo.\nIn order to build this application you need to install aforementioned package\nto maven repository so as this application can use it. This can be done by following command:\n\n    mvn install:install-file -Dfile=./WSNTinyOS.jar -DgroupId=net -DartifactId=tinyos -Dversion=2.1ph4 -Dpackaging=jar\n\nassuming that built TinyOSJava-2.1.ph4edit is called WSNTinyOS.jar. For this purpose you can also use provided \nshell script - reinstallMvnTinyos.sh. It takes path to mentioned JAR file as a first argument.\n\nNext you will need new jython. You can obtain it from: http://sourceforge.net/projects/jython/files/jython-dev/2.5.3b1/jython_installer-2.5.3b1.jar/download\n\n    mvn install:install-file -Dfile=./jython-2.5.3b1.jar -DgroupId=org.python -DartifactId=jython -Dversion=2.5.3b1 -Dpackaging=jar\n\nBuilding this application is done by:\n\n    mvn package\n\nAlso I recommend to clean previous build before another:\n\n    mvn clean package\n\n## Main technologies used \n* Spring as dependency injection container.\n* Hibernate for DB connection, ORM, JPA 2.0 annotations/logic.\n* c3p0 database connection pool.\n* Jython for interactive python shell.\n* SLF4J for logging.\n* RMI for remote forwarder control.\n\n\n## Description\nThis application provides framework for WSN for server side application. One can easy \nsend messages synchronously or asynchronously, register as packet listener. Level of\nabstraction is added compared to original TinyOS Java SDK to support connecting/disconnecting\nto/from nodes without any need to re-register in high level, this maintenance is handled\nin low layer code. \n\nWhen application starts from command line it provides Jython shell - python implementation\nin pure java. One can write python scripts in it and use java classes. Thus one can\ncontrol application behavior from this shell by starting/stopping experiment, \nmonitor application state, initialize new TinyOS message and send it to node and so on.\nIn short one can interact with WSN testbed interactively. \n\nMessage listeners has its own queues which buffers incoming messages not to loose any\nbecause of high load. Message sender has queue of messages to send.\n\nWith application one can analyze incoming messages from testbed and store results\nto database easily with defined ORM mapping or to CSV/XML files. \n\nApplication contains simple statistical tools to compute statistics such as mean, \nmedian, standard deviation, 1st, 3rd quartile, min, max. This is useful for analysis\nof collected data. \n\nApplication can be used as serial forwarder for multiple connected nodes. One can \nstart serial forwarders for example for 200 nodes. This way is easy to communicate\nwith whole testbed via IP network. Packets received on this application uses \ntimestamping features added to TinyOSJava-2.1.ph4edit so client connected to \napplication's serial forwarder has accurate time of message reception directly \non serial interface.\n\nOne can test throughput of database system with prepared benchmark modules.\n\nApplication is compatible with classical PrintF messages, it is possible to log them\nto the log file and to the database. \n\nAuthor: Dusan Klinec (ph4r05)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fph4r05%2Fwsntestbed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fph4r05%2Fwsntestbed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fph4r05%2Fwsntestbed/lists"}