SDRTrunk P25 Phase II testing

Status
Not open for further replies.

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
Your compile should look like this (Use Java 11) see other threads explaining. In win run "gradlew.bat clean buildSdr"

This creates sdr-trunk-all-0.4.0-beta.1 jar found in build/libs folder when completed. From download to run program aprox 7 minutes.


compile.PNG
 
Last edited:

BigRedBox80

Member
Feed Provider
Joined
Apr 23, 2015
Messages
170
I may have had this all along but I wanted to focus on the other issues first. If this isn't related to this specific version P II version I'll move to a new thread.

Code:
20190929 171624.067 [sdrtrunk pool-1-thread-3] ERROR i.g.d.d.f.c.o.ChannelOutputProcessor - Error while processing polyphase channel samples  [116MB/164MB 71%]
java.lang.ClassCastException: class io.github.dsheirer.module.decode.p25.phase1.DecodeConfigP25Phase1 cannot be cast to class io.github.dsheirer.module.decode.p25.phase2.DecodeConfigP25Phase2 (io.github.dsheirer.module.decode.p25.phase1.DecodeConfigP25Phase1 and io.github.dsheirer.module.decode.p25.phase2.DecodeConfigP25Phase2 are in unnamed module of loader 'app')
 

BigRedBox80

Member
Feed Provider
Joined
Apr 23, 2015
Messages
170
I may have had this all along but I wanted to focus on the other issues first. If this isn't related to this specific version P II version I'll move to a new thread.

Code:
20190929 171624.067 [sdrtrunk pool-1-thread-3] ERROR i.g.d.d.f.c.o.ChannelOutputProcessor - Error while processing polyphase channel samples  [116MB/164MB 71%]
java.lang.ClassCastException: class io.github.dsheirer.module.decode.p25.phase1.DecodeConfigP25Phase1 cannot be cast to class io.github.dsheirer.module.decode.p25.phase2.DecodeConfigP25Phase2 (io.github.dsheirer.module.decode.p25.phase1.DecodeConfigP25Phase1 and io.github.dsheirer.module.decode.p25.phase2.DecodeConfigP25Phase2 are in unnamed module of loader 'app')
Re-compiled, all fine now.
 
Joined
Apr 23, 2018
Messages
22
Location
GA
If this is helpful, I often get error messages like this. Usually the program continues processing. Are there any changes I should make to eliminate them?

ECR

Code:
09:06:37.730 ERROR i.g.d.d.f.c.o.ChannelOutputProcessor - Error while processing polyphase channel samples  [188MB/337MB 55%]
java.lang.NullPointerException: null
09:06:38.035 ERROR i.g.d.d.f.c.o.ChannelOutputProcessor - Error while processing polyphase channel samples  [209MB/337MB 62%]
java.lang.ArithmeticException: / by zero
    at io.github.dsheirer.module.decode.p25.identifier.channel.P25Channel.getDownlinkLogicalChannelNumber(P25Channel.java:170)
    at io.github.dsheirer.module.decode.p25.identifier.channel.P25Channel.hashCode(P25Channel.java:231)
    at io.github.dsheirer.module.decode.p25.identifier.channel.APCO25Channel.hashCode(APCO25Channel.java:133)
    at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
    at io.github.dsheirer.module.decode.p25.P25TrafficChannelManager.processPhase1ChannelGrant(P25TrafficChannelManager.java:260)
    at io.github.dsheirer.module.decode.p25.P25TrafficChannelManager.processChannelGrant(P25TrafficChannelManager.java:241)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderState.processTSBK(P25P1DecoderState.java:1223)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderState.receive(P25P1DecoderState.java:281)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderState.receive(P25P1DecoderState.java:142)
    at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:152)
    at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59)
    at io.github.dsheirer.module.decode.Decoder$MessageDistributor.receive(Decoder.java:103)
    at io.github.dsheirer.module.decode.Decoder$MessageDistributor.receive(Decoder.java:96)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageProcessor.receive(P25P1MessageProcessor.java:95)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageProcessor.receive(P25P1MessageProcessor.java:37)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.dispatchMessage(P25P1MessageFramer.java:311)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.receive(P25P1MessageFramer.java:198)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1MessageFramer.receive(P25P1MessageFramer.java:55)
    at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:152)
    at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59)
    at io.github.dsheirer.dsp.psk.PSKDemodulator.broadcast(PSKDemodulator.java:58)
    at io.github.dsheirer.dsp.psk.DQPSKGardnerDemodulator.calculateSymbol(DQPSKGardnerDemodulator.java:88)
    at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:115)
    at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:89)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderLSM.receive(P25P1DecoderLSM.java:120)
    at io.github.dsheirer.module.decode.p25.phase1.P25P1DecoderLSM.receive(P25P1DecoderLSM.java:47)
    at io.github.dsheirer.sample.buffer.ReusableBufferBroadcaster.broadcast(ReusableBufferBroadcaster.java:42)
    at io.github.dsheirer.sample.buffer.ReusableBufferBroadcaster.broadcast(ReusableBufferBroadcaster.java:23)
    at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59)
    at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.flush(ReusableComplexBufferAssembler.java:158)
    at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.receive(ReusableComplexBufferAssembler.java:132)
    at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.receive(ReusableComplexBufferAssembler.java:144)
    at io.github.dsheirer.dsp.filter.channelizer.output.OneChannelOutputProcessor.process(OneChannelOutputProcessor.java:97)
    at io.github.dsheirer.dsp.filter.channelizer.output.ChannelOutputProcessor.processChannelResults(ChannelOutputProcessor.java:124)
    at io.github.dsheirer.dsp.filter.channelizer.PolyphaseChannelSource.processSamples(PolyphaseChannelSource.java:248)
    at io.github.dsheirer.source.tuner.channel.TunerChannelSource$ScheduledIntervalProcessor.run(TunerChannelSource.java:312)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
09:06:38.078 ERROR i.g.d.d.f.c.o.ChannelOutputProcessor - Error while processing polyphase channel samples  [213MB/337MB 63%]
java.lang.NullPointerException: null
09:28:27.514 ERROR i.g.d.a.b.i.IcecastBroadcastMetadataUpdater - Metadata update failed  [208MB/337MB 61%]
17:42:39.517 ERROR i.g.d.a.b.i.IcecastBroadcastMetadataUpdater - Metadata update failed  [206MB/337MB 61%]
 
Joined
Apr 23, 2018
Messages
22
Location
GA
I will try that out. I put in one of the alternate control channels in as the first channel.
Thank you.

Also under view preferences there is a channel multiple selection option, select the channel first then apply the multi option and a time delay. Then go to source drop down the tuner tab and select multiple frequencies, I am thinking you could use this for your second channel to provide a delayed start, if you were to provide 2 freqs, one bogus and the other the real control channel, then it would spend "x" seconds then hunt for the control channel thus forcing a delayed start for the second channel, It is not intended for the purpose but may be a good work around.

The real reason for multi is to address P25 systems which change control channels... but anyway just a thought.
 

pellenzc

Newbie
Joined
Aug 15, 2019
Messages
3
I can’t find the sdrtrunk google group for the life of me.
Something weird? Little help?
 

pellenzc

Newbie
Joined
Aug 15, 2019
Messages
3
How do I request access. I follow the link and all I see is the search page
 

nokoa3116

Member
Joined
Jan 12, 2017
Messages
163
I also messed up with the location of the jmbe file, completely didn't notice the codec folder.
 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
An update from Denny

"I've merged the APCO25 Phase II decoder branch into master. I've also merged the JMBE branch with AMBE audio codec (required for phase II) into master and updated the JMBE library to version 1.0.0

I plan to release sdrtrunk 0.4.0 beta 1 in the near future, but I have a couple bugs to resolve, some more testing, and some github webpage updates I have to make.

If you decide to run the latest updates directly from the master branch, you'll need to download/fetch and compile the JMBE 1.0.0 library and then open the sdrtrunk Preferences tab to update the location of the compiled JMBE library. You can compile the JMBE library by running:
./gradlew build"

I have downloaded the zip and compiled in Windows and it is decoding Phase II perfectly. I will compile it in Linux shortly and continue testing in both O/S.
 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
An update from Denny

"I've merged the APCO25 Phase II decoder branch into master. I've also merged the JMBE branch with AMBE audio codec (required for phase II) into master and updated the JMBE library to version 1.0.0

I plan to release sdrtrunk 0.4.0 beta 1 in the near future, but I have a couple bugs to resolve, some more testing, and some github webpage updates I have to make.

If you decide to run the latest updates directly from the master branch, you'll need to download/fetch and compile the JMBE 1.0.0 library and then open the sdrtrunk Preferences tab to update the location of the compiled JMBE library. You can compile the JMBE library by running:
./gradlew build"

I have downloaded the zip and compiled in Windows and it is decoding Phase II perfectly. I will compile it in Linux shortly and continue testing in both O/S.

I have downloaded the zip file to Linux Mint 19.2 and compiled it. It is decoding P25 phase 1 and 2 very nicely on Linux O/S
 

R0am3r

Salt Water Conch
Premium Subscriber
Joined
Apr 13, 2014
Messages
728
Location
Oneida County, NY
I also have it running on my Windows 10 laptop decoding the Oneida County P25 Phase 2 system. Thanks Denny!
 

BM82557

Member
Joined
Aug 28, 2006
Messages
4,985
Location
Berkeley Co WV
Version 0.4.0 Beta 1 that has added an decoder for P25 Phase II was released yesterday -

 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
I got sdrtrunk installed and running but how do I install the decoders into sdrtrunk my computer is running windows 10

From the download page.....<snip>

Optional Requirements
JMBE version 1.0.0
is required for decoding APCO25 Phase 1 and Phase 2 digital audio. Instructions for compiling this library are located at: DSheirer/sdrtrunk
 

DRL-XM43

Member
Joined
Jun 23, 2015
Messages
842
Location
Durham Region
Do I copy and paste it to the same folder that had sdrtrunk in it???

From the JMBE page <snip>

Adding JMBE to SDRTrunk for decoding MBE audio
  • JMBE Download Site Follow the instructions on this site for building the JMBE library.
  • You can use the compiled jmbe-x.x.x.jar file right where you compiled it, or it may make sense to copy it to a more permanent location on your computer that is always accessible for sdrtrunk.
  • Start the SDRTrunk application.
  • Open the View >> Preferences menu item to open the Preferences window.
  • In the Decoder >> JMBE Audio Library section, click the Change... button to specify the location for the 'jmbe-1.0.0.jar' library is located. (or whichever version you just compiled)
  • Start (or restart) any P25 decoder channels to start using the audio library.
 
Status
Not open for further replies.
Top