{"id":20332519,"url":"https://github.com/dernasherbrezon/jradio","last_synced_at":"2025-04-09T21:18:28.449Z","repository":{"id":19784652,"uuid":"86858948","full_name":"dernasherbrezon/jradio","owner":"dernasherbrezon","description":"Software radio decoding","archived":false,"fork":false,"pushed_at":"2025-03-24T23:00:11.000Z","size":22099,"stargazers_count":63,"open_issues_count":1,"forks_count":10,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-09T21:18:14.154Z","etag":null,"topics":["decoder","dsp","gnuradio","java","radio","satellite","telemetry"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dernasherbrezon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"dernasherbrezon"}},"created_at":"2017-03-31T20:44:11.000Z","updated_at":"2025-03-24T23:00:15.000Z","dependencies_parsed_at":"2023-10-13T10:59:38.526Z","dependency_job_id":"e13c25f4-c214-4a1e-83fb-110e943efd5c","html_url":"https://github.com/dernasherbrezon/jradio","commit_stats":{"total_commits":1361,"total_committers":3,"mean_commits":453.6666666666667,"dds":"0.0036737692872887973","last_synced_commit":"ae35f2bd0a431c54acb6b627dd2c2eb3a63d74cc"},"previous_names":[],"tags_count":99,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dernasherbrezon%2Fjradio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dernasherbrezon%2Fjradio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dernasherbrezon%2Fjradio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dernasherbrezon%2Fjradio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dernasherbrezon","download_url":"https://codeload.github.com/dernasherbrezon/jradio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248111973,"owners_count":21049578,"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":["decoder","dsp","gnuradio","java","radio","satellite","telemetry"],"created_at":"2024-11-14T20:27:04.168Z","updated_at":"2025-04-09T21:18:28.407Z","avatar_url":"https://github.com/dernasherbrezon.png","language":"Java","funding_links":["https://github.com/sponsors/dernasherbrezon"],"categories":[],"sub_categories":[],"readme":"[![Main Workflow](https://github.com/dernasherbrezon/jradio/actions/workflows/build.yml/badge.svg)](https://github.com/dernasherbrezon/jradio/actions/workflows/build.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ru.r2cloud%3Ajradio\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=ru.r2cloud%3Ajradio)\n\n## About \n\nSoftware radio decoding written in Java. The idea of this project is to get blocks from the [gnuradio](https://github.com/gnuradio) and implement them in Java. This gives the following:\n\n  * No need for tooling. You could use [gnuradio-companion](https://wiki.gnuradio.org/index.php/HowToUse) to build a working pipeline, then use the same blocks to build the pipeline in Java.\n  * All Java benefits: run same binaries on multiple platforms without compilation. Single programming language instead of Python and C++. Better tooling like IDE, profilers and memory analyzers.\n\n## Demodulators\n\njradio supports high-level generic demodulators. They convert [I/Q signal](https://en.wikipedia.org/wiki/In-phase_and_quadrature_components) into the stream of [soft bits](https://dsp.stackexchange.com/a/27482) (0-255).\n\n * [FSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/demod/FskDemodulator.java)\n * [AFSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/demod/AfskDemodulator.java)\n * [BPSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/demod/BpskDemodulator.java)\n * [QPSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/demod/QpskDemodulator.java)\n \n## Modulators\n\nSome generic modulators. They take hard bits and produce I/Q signal.\n\n * [GFSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/blocks/GfskModulator.java)\n * [BPSK/QPSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/blocks/ConstellationModulator.java)\n * [FSK](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/blocks/FskModulator.java)\n\n## De-framers\n\nDe-framer is a component that converts soft stream of bits into the frames of specific protocol.\n\n * [AX.25](https://en.wikipedia.org/wiki/AX.25) - [Ax25BeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/Ax25BeaconSource.java)\n * [AX.25](https://en.wikipedia.org/wiki/AX.25) with G3ruh scrambler - [Ax25G3ruhBeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/Ax25G3ruhBeaconSource.java)\n * [AX100](https://gomspace.com/UserFiles/Subsystems/datasheet/gs-ds-nanocom-ax100-33.pdf) - [Ax100BeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/Ax100BeaconSource.java)\n * [cc11xx](http://www.ti.com/product/CC1101/description) - [Cc11xxReceiver](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/cc11xx/Cc11xxReceiver.java)\n * [NGHam](https://github.com/skagmo/ngham) - Support for [NGHam radio protocol](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/blocks/NgHam.java)\n * Generic [syncword](https://en.wikipedia.org/wiki/Syncword) correlator - [CorrelateSyncword](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/blocks/CorrelateSyncword.java)\n * [USP](https://github.com/sputnixru/SX-USP) - [UspDecoder](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/usp/UspDecoder.java)\n * Mobitex - [MobitexBeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/mobitex/MobitexBeaconSource.java)\n * TUBiX20 - Generic de-framer for TUB-based satellites. [TUBiX20BeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/tubix20/TUBiX20BeaconSource.java)\n * CCSDS Concatenated - CCSDS 131.0-B-4 implementation for concatenated framing (Convolutional + Reed-Solomon). [CcsdsBeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/ccsds/CcsdsBeaconSource.java)\n\n## Auxiliary tools\n\nQuite often decoding require some additional tooling. jradio has some.\n\n### Forward error correction:\n\n * [Viterbi](https://en.wikipedia.org/wiki/Viterbi_algorithm) [hard](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/Viterbi.java) and [soft](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/ViterbiSoft.java) decoders\n * [CCSDS ReedSolomon](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/ccsds/ReedSolomon.java)\n * [BCH ReedSolomon](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/rs/bch/ReedSolomon.java)\n * [BCH(15,x,x)](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/Bch15.java)\n * [Repeat Accumulate decoder](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/ra/RaDecoder.java)\n * [Golay](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/Golay.java)\n * [PLS](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/fec/PlsDecoder.java)\n\n### Randomization\n \n * [xoroshiro128+](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/util/Xoroshiro128p.java)\n * [mt19937](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/util/MTRandom.java)\n * [RayleighRandom](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/util/RayleighRandom.java)\n  \n### CRC\n\nMost likely the algorithm name can't say you much, so it is better to check [corresponding test case](https://github.com/dernasherbrezon/jradio/tree/master/src/test/java/ru/r2cloud/jradio/crc). Here is list of supported implementations:\n\n * [CRC-8](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc8.java)\n * [CRC-16/XMODEM \u0026 CRC-16/X-25](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc16Ccitt.java)\n * [CRC-16/CCITT-FALSE/CRC-16-IBM](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc16CcittFalse.java)\n * [CRC-16/ARC](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc16Arc.java)\n * [CRC-16-NAIVE](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc16SumOfBytes.java). Just sum of bytes.\n * [CRC-32C](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/crc/Crc32c.java)\n \n### Satellite protocols\n\n * [CSP](https://en.wikipedia.org/wiki/Cubesat_Space_Protocol) - Full support\n * [CCSDS](https://en.wikipedia.org/wiki/Consultative_Committee_for_Space_Data_Systems) - [Basic support](https://github.com/dernasherbrezon/jradio/tree/master/src/main/java/ru/r2cloud/jradio/ccsds)\n * [PACSAT](https://www.tapr.org/pdf/CNC1990-PacSatBroadcast-NK6K-K8KA.pdf) - [Good support](https://github.com/dernasherbrezon/jradio/tree/master/src/main/java/ru/r2cloud/jradio/falconsat3)\n * [OpenLST](https://github.com/OpenLST/openlst) - [OpenLstBeaconSource](https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/openlst/OpenLstBeaconSource)\n\n## Low-level blocks\n\nAll blocks meant to be binary compatible with gnuradio versions. This will ensure you got the same results when moving from gnuradio-companion to Java.\n\n  * Add\n  * AdditiveScrambler\n  * AGC\n  * [AX100Decoder](https://gomspace.com/UserFiles/Subsystems/datasheet/gs-ds-nanocom-ax100-33.pdf). Out-of-tree block. Support ASM + Golay mode.\n  * BinarySlicer\n  * Cc11xxReceiver. Out-of-tree block. Decodes frames produced by [cc11xx](http://www.ti.com/product/CC1101/description). Based on [gr-cc11xx](https://github.com/andrepuschmann/gr-cc11xx)\n  * ChannelModel\n  * ChunksToSymbols and ChunksToSymbolsComplex\n  * [ClockRecoveryMM](https://www.tablix.org/~avian/blog/archives/2015/03/notes_on_m_m_clock_recovery/) and [ClockRecoveryMMComplex](https://www.tablix.org/~avian/blog/archives/2015/03/notes_on_m_m_clock_recovery/)\n  * ComplexConjugate\n  * ComplexToReal\n  * ConstellationSoftDecoder\n  * [ConvolutionalDeinterleaver](https://en.wikipedia.org/wiki/Burst_error-correcting_code#Convolutional_interleaver)\n  * CorrelateSynchronizationMarker. Extract data from continuous stream of synchronization markers. Work with soft stream. \n  * CorrelateSyncword\n  * CostasLoop\n  * DcBlocker\n  * DelayOne. jradio doesn't support split and merge of streams. This block incapsulates delay 1 for imag complex stream\n  * Descrambler\n  * DifferentialEncoder/DifferentialDecoder\n  * DifferentialSoftDecoder. Support qpsk only\n  * Divide\n  * FastNoiseSource\n  * FIRFilterBlock\n  * File Source (InputStreamSource)\n  * File Sink (OutputStreamSink)\n  * FLL Band Edge\n  * FloatToChar\n  * FloatToComplex\n  * FractionalResampler\n  * FrequencyModulator\n  * [FrequencyXlatingFIRFilter](http://blog.sdr.hu/grblocks/xlating-fir.html)\n  * GUI Histogram Sink (Spectogram) \n  * HardToSoft. Convert hard decision stream to soft stream.\n  * HdlcReceiver. Out-of-tree block. Extracts HDLC frame from the unpacked stream of bytes\n  * HdlcTransmitter. Take the byte array and create hdlc frame\n  * InterpFIRFilter\n  * LowPassFilter and LowPassFilterComplex\n  * LMSDDEqualizer\n  * MapBlock\n  * Multiply\n  * MultiplyConst\n  * NrziDecode/NrziEncode. Performs nrzi decoding/encoding over unpacked stream of bytes\n  * osmocom source (RtlTcp)\n  * PackedToUnpacked\n  * PolyphaseArbResamplerComplex\n  * PolyphaseClockSyncComplex\n  * PeakDetection. Detect peaks in the FFT. Not a gnuradio block.\n  * QuadratureDemodulation\n  * Rail\n  * Rms\n  * RmsAgc and RmsAgcComplex. Out-of-tree block. For more details see this [blog post](https://destevez.net/2017/08/agc-for-gr-satellites/)\n  * RootRaisedCosineFilter\n  * Scrambler\n  * SigSource\n  * SequentialSource. Produce time-multiplexed outputs from several sources. Useful in simulations.\n  * TimeConstraintedSource. Can be used in simulations to time-limit noise source.\n  * UnpackedToPacked\n  * WavFileSource\n  * WavFileSink\n  \nCoding:\n \n  * NRZI\n  * Bit stuffing\n\n## Supported satellites\n\njradio has lots of built-in satellite decoders. Some of them have non standard de-framers, some beacon decoders, some both:\n\n\u003ctable\u003e\n\t\u003cthead\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003cth\u003eName\u003c/th\u003e\n\t\t\t\u003cth\u003eNORAD\u003c/th\u003e\n\t\t\t\u003cth\u003eSample code\u003c/th\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/thead\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eDELFI-C3 (DO-64)\u003c/td\u003e\n\t\t\t\u003ctd\u003e32789\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/delfic3/DelfiC3Test.java\"\u003eDelfiC3Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003e1Kuns-Pf\u003c/td\u003e\n\t\t\t\u003ctd\u003e43466\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/kunspf/KunsPfTest.java\"\u003eKunsPfTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAAUSAT-4\u003c/td\u003e\n\t\t\t\u003ctd\u003e41460\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/aausat4/Aausat4Test.java\"\u003eAausat4Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAistechsat3\u003c/td\u003e\n\t\t\t\u003ctd\u003e44103\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/aistechsat3/Aistechsat3Test.java\"\u003eAistechsat3Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAistechsat2\u003c/td\u003e\n\t\t\t\u003ctd\u003e43768\u003c/td\u003e\n\t\t\t\u003ctd\u003eSame as Aistechsat3. See \u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/aistechsat3/Aistechsat3Test.java\"\u003eAistechsat3Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAO-73\u003c/td\u003e\n\t\t\t\u003ctd\u003e39444\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/ao73/Ao73Test.java\"\u003eAo73Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAstrocast 0.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e43798\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/astrocasat/AstrocastTest.java\"\u003eAstrocastTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAT03\u003c/td\u003e\n\t\t\t\u003ctd\u003e42784\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/at03/At03Test.java\"\u003eAt03Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eATL-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e44830\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/atl1/Atl1Test.java\"\u003eAtl1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAU02/AU03\u003c/td\u003e\n\t\t\t\u003ctd\u003e42723/42731\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/au02/Au02Test.java\"\u003eAu02Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCA03\u003c/td\u003e\n\t\t\t\u003ctd\u003e42734\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/ca03/Ca03Test.java\"\u003eCa03Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eD-Star ONE\u003c/td\u003e\n\t\t\t\u003ctd\u003e43881\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/mobitex/MobitexBeaconSource.java\"\u003eDstar1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eDELPHINI\u003c/td\u003e\n\t\t\t\u003ctd\u003e44030\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/delphini/Delphini1Test.java\"\u003eDelphini1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eEntrysat\u003c/td\u003e\n\t\t\t\u003ctd\u003e44429\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/entrysat/EntrysatTest.java\"\u003eEntrysatTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eESEO\u003c/td\u003e\n\t\t\t\u003ctd\u003e99912\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/eseo/EseoTest.java\"\u003eEseoTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eFmn1\u003c/td\u003e\n\t\t\t\u003ctd\u003e43192\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/fmn1/Fmn1Test.java\"\u003eFmn1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eFOX-1A, FOX-1B, FOX-1C, FOX-1D\u003c/td\u003e\n\t\t\t\u003ctd\u003e40967, 43017, 43770, 43137\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/fox/FoxTest.java\"\u003eFoxTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eGOMX-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e39430\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/gomx1/Gomx1Test.java\"\u003eGomx1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eItasat1\u003c/td\u003e\n\t\t\t\u003ctd\u003e43786\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/itasat1/Itasat1Test.java\"\u003eItasat1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eJy1sat\u003c/td\u003e\n\t\t\t\u003ctd\u003e43803\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/jy1sat/Nayif1Test.java\"\u003eNayif1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eLucky-7\u003c/td\u003e\n\t\t\t\u003ctd\u003e44406\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/lucky7/Lucky7Test.java\"\u003eLucky7Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eLume-1 / AISTechSat 2\u003c/td\u003e\n\t\t\t\u003ctd\u003e43908 / 43768\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/lume1/Lume1Test.java\"\u003eLume1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eMeteor-M N2\u003c/td\u003e\n\t\t\t\u003ctd\u003e40069\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/meteor/MeteorImageTest.java\"\u003eMeteorImageTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eMysat-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e44045\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/mysat1/Mysat1Test.java\"\u003eMysat1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eNayif1\u003c/td\u003e\n\t\t\t\u003ctd\u003e42017\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/nayif1/Nayif1Test.java\"\u003eNayif1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eOPS-SAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e44878\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/opssat/OpsSatTest.java\"\u003eOpsSatTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003ePwSat2\u003c/td\u003e\n\t\t\t\u003ctd\u003e43776\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/pwsat2/PwSat2Test.java\"\u003ePwSat2Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eReactor Hello World\u003c/td\u003e\n\t\t\t\u003ctd\u003e43743\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/rhw/ReaktorHelloWorldTest.java\"\u003eReaktorHelloWorldTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eS-NET A,B,C,D\u003c/td\u003e\n\t\t\t\u003ctd\u003e43186, 43187, 43188, 43189\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/snet/SnetTest.java\"\u003eSnetTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSat3Cat1\u003c/td\u003e\n\t\t\t\u003ctd\u003e99901\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/sat3cat1/Sat3Cat1Test.java\"\u003eSat3Cat1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSMOG-P\u003c/td\u003e\n\t\t\t\u003ctd\u003e44832\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/smogp/SmogPTest.java\"\u003eSmogPTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSuomi100\u003c/td\u003e\n\t\t\t\u003ctd\u003e43804\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/suomi100/Suomi100Test.java\"\u003eSuomi100Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSWAMPSAT-2\u003c/td\u003e\n\t\t\t\u003ctd\u003e45115\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/swampsat2/Swampsat2Test.java\"\u003eSwampsat2Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eTechnosat\u003c/td\u003e\n\t\t\t\u003ctd\u003e42829\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/technosat/TechnosatTest.java\"\u003eTechnosatTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eQARMAN\u003c/td\u003e\n\t\t\t\u003ctd\u003e45263\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/qarman/QarmanTest.java\"\u003eQarmanTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\t\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eQuetzal1\u003c/td\u003e\n\t\t\t\u003ctd\u003e45598\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 4800 baud, Ax25G3ruhBeaconSource and Quetzal1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eHuskysat-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e45119\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/huskysat1/Huskysat1Test.java\"\u003eHuskysat1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\t\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003ePainani-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e44365\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and Painani1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCHOMPTT\u003c/td\u003e\n\t\t\t\u003ctd\u003e43855\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/chomptt/ChompttTest.java\"\u003eChompttTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eALSAT 1N\u003c/td\u003e\n\t\t\t\u003ctd\u003e41789\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/test/java/ru/r2cloud/jradio/alsat1n/Alsat1nTest.java\"\u003eAlsat1nTest\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\t\t\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSTRAND-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e39090\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/strand1/Strand1Beacon.java\"\u003eStrand1\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\t\t\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003ePolyItan1\u003c/td\u003e\n\t\t\t\u003ctd\u003e40042\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and PolyItan1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eUnisat6\u003c/td\u003e\n\t\t\t\u003ctd\u003e40012\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and Unisat6Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eLightsail2\u003c/td\u003e\n\t\t\t\u003ctd\u003e44420\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and Lightsail2Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCubeBel-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e43666\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and Bsusat1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSalsat\u003c/td\u003e\n\t\t\t\u003ctd\u003e46495\u003c/td\u003e\n\t\t\t\u003ctd\u003eAfskDemodulator 1200 baud, -600 deviation, 1500 offset with Salsat decoder\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eArmadillo\u003c/td\u003e\n\t\t\t\u003ctd\u003e44352\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 19200 baud, Ax25G3ruhBeaconSource and ArmadilloBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSpooqy1\u003c/td\u003e\n\t\t\t\u003ctd\u003e44332\u003c/td\u003e\n\t\t\t\u003ctd\u003e\u003ca href=\"https://github.com/dernasherbrezon/jradio/blob/master/src/main/java/ru/r2cloud/jradio/spooqy1/Spooqy1Test.java\"\u003eSpooqy1Test\u003c/a\u003e\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eNORBI\u003c/td\u003e\n\t\t\t\u003ctd\u003e46494\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and NorbiBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\t\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eMEZNSAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e46489\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 2400 baud, Ax25G3ruhBeaconSource and MeznsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eFALCONSAT-3\u003c/td\u003e\n\t\t\t\u003ctd\u003e30776\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and Falconsat3Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eAMICALSAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e46287\u003c/td\u003e\n\t\t\t\u003ctd\u003eAfskDemodulator 1200 baud, Ax25BeaconSource and Amical1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eBOBCAT-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e46922\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 1200 baud, Ax100BeaconSource and Bobcat1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eGRIFEX\u003c/td\u003e\n\t\t\t\u003ctd\u003e40379\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and GrifexBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eBUGSAT-1 (TITA)\u003c/td\u003e\n\t\t\t\u003ctd\u003e40014\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and BugsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eTAUSAT-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e47926\u003c/td\u003e\n\t\t\t\u003ctd\u003eBpskDemodulator 9600 baud, Ax25G3ruhDecoder and Tausat1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eUVSQ-SAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e47438\u003c/td\u003e\n\t\t\t\u003ctd\u003eBpskDemodulator 9600 baud, Ax25G3ruhDecoder and UvsqsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eGRBAlpha\u003c/td\u003e\n\t\t\t\u003ctd\u003e47959\u003c/td\u003e\n\t\t\t\u003ctd\u003eFskDemodulator 9600 baud, Ax25G3ruhBeaconSource and GRBAlphaBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSMOG-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e47964\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.smog1.Smog1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eDELFI-PQ\u003c/td\u003e\n\t\t\t\u003ctd\u003e47964\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.delfipq.DelfiPqBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eGASPACS\u003c/td\u003e\n\t\t\t\u003ctd\u003e\t51439\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.gaspacs.Gaspacs\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCUTE\u003c/td\u003e\n\t\t\t\u003ctd\u003e\t49263\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.cute.CuteBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003ePICSAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e43132\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.picsat.PicsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eINSPIRESAT-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e51657\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.is1.InspireSat1Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCTIM\u003c/td\u003e\n\t\t\t\u003ctd\u003e52950\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.ctim.CtimBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCSIM-FD\u003c/td\u003e\n\t\t\t\u003ctd\u003e43793\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.csim.CsimBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eIRIS-A\u003c/td\u003e\n\t\t\t\u003ctd\u003e51044\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.iris.IrisABeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eFEES\u003c/td\u003e\n\t\t\t\u003ctd\u003e48082\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.fees.FeesBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSelfieSat\u003c/td\u003e\n\t\t\t\u003ctd\u003e53951\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.selfiesat.SelfieSatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eVZLUSAT-2\u003c/td\u003e\n\t\t\t\u003ctd\u003e51085\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.vzlusat.Vzlusat2Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eNETSAT-*\u003c/td\u003e\n\t\t\t\u003ctd\u003e46507\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.netsat.NetSatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eMRC-100\u003c/td\u003e\n\t\t\t\u003ctd\u003e56993\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.mrc100.Mrc100\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eDhabisat\u003c/td\u003e\n\t\t\t\u003ctd\u003e49016\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.dhabi.DhabisatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCONNECTA T1.1\u003c/td\u003e\n\t\t\t\u003ctd\u003e52739\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.connecta.Connecta11Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCELESTA and MTCUBE 2 (ROBUSTA 1F)\u003c/td\u003e\n\t\t\t\u003ctd\u003e53111 and 53109\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.celesta.CelestaBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eStratoSat TK-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e57167\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.sstk1.StratosatTk1 and images via ru.r2cloud.jradio.sstk1.StratosatTk1PictureDecoder\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eRS52SB, RS52SV, RS52SG, RS52SD, RS52SE\u003c/td\u003e\n\t\t\t\u003ctd\u003e57323, 57324, 57325, 57326, 57167\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.sstk1.StratosatTk1PicoBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eINSPIRE-SAT 7\u003c/td\u003e\n\t\t\t\u003ctd\u003e56211\u003c/td\u003e\n\t\t\t\u003ctd\u003eSPINO mode - ru.r2cloud.jradio.is7.InspireSat7Spino, AX25 mode using ru.r2cloud.jradio.is7.InspireSat7Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eRS20S (GEOSCAN-EDELVEIS)\u003c/td\u003e\n\t\t\t\u003ctd\u003e53385\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.geoscan.GeoscanBeacon and images via ru.r2cloud.jradio.geoscan.GeoscanPictureDecoder\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSIREN, UMKA-1, CUBESX-HSE-AIS, CYCLOPS, ISOI, KUZBASS-300, MIET-AIS, MONITOR-1, VIZARD, CUBESX-HSE, CUBESX-SIRIUS-HSE, ORBICRAFT-ZORKIY\u003c/td\u003e\n\t\t\t\u003ctd\u003e53384, 57172, 53383, 53373, 53381, 53375, 53377, 53374, 57189, 47952, 47951, 47960\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.sputnix.SputnixBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSharjahsat-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e55104\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.sharjahsat.Sharjahsat1Beacon and images via ru.r2cloud.jradio.sharjahsat.Sharjahsat1PictureDecoder\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSapling Giganteum\u003c/td\u003e\n\t\t\t\u003ctd\u003e56214\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.sapling.SaplingGiganteumBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eROSEYCUBESAT-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e56212\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.roseycub.RoseyCubesatBeacon and images via ru.r2cloud.jradio.roseycub.RoseyPictureDecoder\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eBDSAT-2\u003c/td\u003e\n\t\t\t\u003ctd\u003e55098\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.bdsat.BdSat2Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eKAFASAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e58317\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.kafasat.KafasatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eRANDEV\u003c/td\u003e\n\t\t\t\u003ctd\u003e52898\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.randev.RandevBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eVERONIKA\u003c/td\u003e\n\t\t\t\u003ctd\u003e58261\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.veronika.VeronikaBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eSUCHAI-3, SUCHAI-2, PLANTSAT\u003c/td\u003e\n\t\t\t\u003ctd\u003e52191, 52192, 52188\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.suchai2.Suchai2Beacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eGRBBETA\u003c/td\u003e\n\t\t\t\u003ctd\u003e60237\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.grbbeta.GRBBetaBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCatSat\u003c/td\u003e\n\t\t\t\u003ctd\u003e60246\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.catsat.CatsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eENSO\u003c/td\u003e\n\t\t\t\u003ctd\u003e58470\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.enso.EnsoBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eEIRSAT-1\u003c/td\u003e\n\t\t\t\u003ctd\u003e58472\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.eirsat.EirsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eDORA\u003c/td\u003e\n\t\t\t\u003ctd\u003e61502\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.dora.DoraBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eCrocube\u003c/td\u003e\n\t\t\t\u003ctd\u003e62394\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.crocube.CrocubeBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n\t\t\t\u003ctd\u003eLasarsat\u003c/td\u003e\n\t\t\t\u003ctd\u003e62391\u003c/td\u003e\n\t\t\t\u003ctd\u003eru.r2cloud.jradio.lasarsat.LasarsatBeacon\u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003c/tbody\u003e\n\u003c/table\u003e\n  \n## Doppler correction\n\nDoppler correction could be made using SigSource and Multiply blocks. Here is the sample code:\n\n```java\nPassPredictor predictor = new PassPredictor(tle, currentLocation);\nSigSource source2 = new SigSource(Waveform.COMPLEX, sampleRate, new DopplerValueSource(sampleRate, satelliteFrequency, correctPeriodMillis, startTimeMillis) {\n\n\t@Override\n\tpublic long getDopplerFrequency(long satelliteFrequency, long currentTimeMillis) {\n\t\treturn predictor.getDownlinkFreq(satelliteFrequency, new Date(currentTimeMillis));\n\t}\n}, 1.0f);\nMultiply mul = new Multiply(source, source2, true);\n```\n\nWhere \"getDopplerFrequency\" can be calculated using [orekit](https://www.orekit.org) or [predict4java](https://github.com/g4dpz/predict4java). \n\n## Usage\n\nConfigure maven:\n\n```xml\n\u003cdependency\u003e\n        \u003cgroupId\u003eru.r2cloud\u003c/groupId\u003e\n        \u003cartifactId\u003ejradio\u003c/artifactId\u003e\n        \u003cversion\u003e1.57\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Contributing\n\nContributing to the project is super easy:\n\n * Raise an issue with description and use case. Skip this step for small bug fixes or minor features\n * Raise pull request\n * Make sure pull request contains unit tests for new functionality or bug fix ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdernasherbrezon%2Fjradio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdernasherbrezon%2Fjradio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdernasherbrezon%2Fjradio/lists"}