{"id":18624779,"url":"https://github.com/mki1967/rbo-tinyos-java","last_synced_at":"2025-11-03T19:30:30.161Z","repository":{"id":12444470,"uuid":"15103035","full_name":"mki1967/rbo-tinyos-java","owner":"mki1967","description":null,"archived":false,"fork":false,"pushed_at":"2015-11-09T09:26:43.000Z","size":284,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-27T05:41:57.282Z","etag":null,"topics":["algorithm","bit-reversal","broadcast","java","rbo","scheduling","tinyos"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mki1967.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-11T09:23:47.000Z","updated_at":"2018-03-22T11:43:00.000Z","dependencies_parsed_at":"2022-09-17T23:00:57.528Z","dependency_job_id":null,"html_url":"https://github.com/mki1967/rbo-tinyos-java","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/mki1967%2Frbo-tinyos-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mki1967%2Frbo-tinyos-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mki1967%2Frbo-tinyos-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mki1967%2Frbo-tinyos-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mki1967","download_url":"https://codeload.github.com/mki1967/rbo-tinyos-java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239418578,"owners_count":19635208,"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":["algorithm","bit-reversal","broadcast","java","rbo","scheduling","tinyos"],"created_at":"2024-11-07T04:30:57.800Z","updated_at":"2025-11-03T19:30:30.094Z","avatar_url":"https://github.com/mki1967.png","language":"Java","readme":"Programs in Java for testing and simulations of RBO.\n\nRBO is a simple and robust broadcast-scheduling protocol minimizing\n'tuning-time/energy' of the receiver.\nIt's idea is based on an interesting property of the bit-reversal permutation.\nThe broadcast cycle is a sorted sequence of keys of length 2^k, permuted by k-bit-reversal\npermutation. \nThe broadcast cycle is broadcast in 'round-robin' fashion by the sender.\nThe receiver wants to receive some key from the broadcast cycle.\nIt uses a simple RBO protocol that listens to some samples of the broadcast cycle.\nIt may start at any time during the broadcasting and, due to the properties of bit-reversal,\nthe number of samples to be received is very low, thus saving the energy consumed\nby the radio receptions.\n\nInformal description of the protocol with references to the technical reports\ncan be found at: \n    https://sites.google.com/site/rboprotocol/\n\n\nThis directory contains a prototype of \nthe RBO protocol with a simple test application (and some other code in Java used for testing RBO).\n\n\nThe files Rbo*.java contain implementation of the modules\nof the protocol.\n\n\n\nThe files Tiny*.java contain emulations of the TinyOS \ncomponents used by RBO.\n\nThe files *Events.java are specifications (parts of module's interfaces) \nof the events signalled by the corresponding modules.\n\n \n\nTo compile the programs run in this directory:\n\n   javac *.java\n\n\nSIMPLE TEST APPLICATION:\n------------------------\n\nTo start simple test application of the protocol run:\n\n   java TestApplication logSequenceLength timeSlotLength\n\nwhere \n   logSequenceLength is logarithm of the length of the transmitted sequence\n   (here it should be less than 30 - we are using Java type int)\nand \n  timeSlotLength is the time between transmissions of consecutive elements\n   (in milliseconds) \nThis program creates two windows: for the sender and for the receiver. \n(* Note that, initially, one window may be covered by the other. Use the mouse to relocate them. *)\nThe keys in the sequence broadcast by the sender are consecutive positive \nodd numbers (starting from 1),\nwhile the receiver selects as the searched key a random integer\nbetween 0 and 1+(maximum of the broadcast sequence).\nThere is also simple menu in the terminal for printing statistics\nand stopping/restarting the receiver/sender.\n\nThe messages in the receivers' window are printed after completion of each search.\nThey look like this:\n\n 50.searchDone: ERR:2 MSG: H:ID=2 LSL=13 TSL=2 KEY=15769 RNK=7884 P:7884\n\nERR - status of the result ( 0 - SUCCESS, 1 - TIME_OUT, 2 - KEY_NOT_PRESENT)\nID -  sequence ID\nLSL - logarithm of sequence length\nTSL - time of sequence length\nKEY - the key in last received message\nRNK - rank of the key\nP   - payload\n\nThe messages in the senders' window are printed after each round of \nsequence transmission.\n\nThe time in statistics is given in milliseconds.\n\n(* Note that it is 'real-time' simulation. \nHence, the time intervals between subsequent messages \nmay be quite long for large broadcast cycles. *)\n\n\n--\n\nThe author can be reached at: \n    Marcin.Kik@pwr.wroc.pl\nor\n    mki1967@gmail.com\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmki1967%2Frbo-tinyos-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmki1967%2Frbo-tinyos-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmki1967%2Frbo-tinyos-java/lists"}