* Misc minor performance improvements * Use more concise loop syntax * Use more concise Collection sort syntax * Use StringUtils pad methods * Optimize some loops and double-map-lookups * Optimize array instantiation There are two styles to convert a collection to an array: either using a pre-sized array (like c.toArray(new String[c.size()])) or using an empty array (like c.toArray(new String[0]). In older Java versions using pre-sized array was recommended, as the reflection call which is necessary to create an array of proper size was quite slow. However since late updates of OpenJDK 6 this call was intrinsified, making the performance of the empty array version the same and sometimes even better, compared to the pre-sized version. Also passing pre-sized array is dangerous for a concurrent or synchronized collection as a data race is possible between the size and toArray call which may result in extra nulls at the end of the array, if the collection was concurrently shrunk during the operation. * Cleanup string concatenation * Use EnumMap where possible * Use FastMath instead of Math * Initialize complex things only once * Reduce method size to aloow more JIT inlining * remove map of short->float * Move field to local variable * Cleanup Map lookup Co-authored-by: Rob Ekl <xwq876@zebra.com>
sdrtrunk
A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR).
- Getting Started
- User's Manual Version 0.3.0 and 0.4.0
- Download
- Support Group
- Discord Support Channel
Figure 1: sdrtrunk Version 0.3.0 Application Screenshot
End User Instructions:
If you simply want to download and run the program, please follow these instructions.
Download the latest sdrtrunk release for your operating system
All release versions of sdrtrunk are available from the releases tab.
- (alpha) These versions are under development feature previews and likely to contain bugs and unexpected behavior.
- (beta) These versions are currently being tested for bugs and functionality prior to final release.
- (final) These versions have been tested and are the current release version.
Unzip the release
Use 7-zip or any zip utility to unzip the release file
Start the application
Once unzipped, open a command prompt to where you unzipped the release. Change to the /bin directory and use the launch script to start the application:
- Windows sdr-trunk.bat
- Linux/OSX ./sdr-trunk
Optional - P25 Audio
If you're using sdrtrunk with a P25 trunked radio system, the JMBE wiki page contains instructions for downloading the JMBE audio library source code and compiling the JMBE library. Once you have compiled the library, launch the sdrtrunk application. From the menu bar, choose View >> Preferences. In the JMBE Audio Codec section, update the path to where your compiled JMBE library is located. Any channels that are started after you set the path will be able to produce P25 audio.
Minimum System Requirements
- Operating System: Windows (32 or 64-bit), Linux (32 or 64-bit) or Mac/Linux (64-bit, 10.14 or higher)
- CPU: 4-core
- RAM: 8GB or more (preferred). Depending on usage, 4GB may be sufficient.
Developer Instructions:
If you're interested in modifying and/or compiling the source code, please follow these instructions to use gradle to compile the code.
Build the project
sdrtrunk uses the gradle build system. This requires OpenJDK 11 or higher installed on your local compuber. Use the gradle wrapper to build the source code:
Linux
./gradlew clean build
Windows
gradlew.bat clean build
The /build/distributions folder will contain the zip file of the compiled program. Unzip it and launch the program from the scripts in the /bin directory.
Development
All dependencies/versions are controlled from build.gradle. To change the new release version tag of artifact - change property:
version = '0.4.0'