mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
Adds preliminary support for legacy P25 CAI VSELP voice frames. VSELP 1
and 2 messages simply capture the message at this point -- don't yet know the format for the voice frames and embedded signalling.
This commit is contained in:
@@ -17,6 +17,8 @@ import module.decode.p25.message.tdu.lc.TDULCMessageFactory;
|
||||
import module.decode.p25.message.tdu.lc.TDULinkControlMessage;
|
||||
import module.decode.p25.message.tsbk.TSBKMessage;
|
||||
import module.decode.p25.message.tsbk.TSBKMessageFactory;
|
||||
import module.decode.p25.message.vselp.VSELP1Message;
|
||||
import module.decode.p25.message.vselp.VSELP2Message;
|
||||
import module.decode.p25.reference.DataUnitID;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
@@ -630,6 +632,14 @@ public class P25MessageFramer implements Listener<Dibit>
|
||||
|
||||
mComplete = true;
|
||||
break;
|
||||
case VSELP1:
|
||||
mComplete = true;
|
||||
dispatch( new VSELP1Message( mMessage.copy(), mDUID, mAliasList ) );
|
||||
break;
|
||||
case VSELP2:
|
||||
mComplete = true;
|
||||
dispatch( new VSELP2Message( mMessage.copy(), mDUID, mAliasList ) );
|
||||
break;
|
||||
case UNKN:
|
||||
mComplete = true;
|
||||
dispatch( new P25Message( mMessage.copy(), mDUID, mAliasList ) );
|
||||
|
||||
43
src/module/decode/p25/message/vselp/VSELP1Message.java
Normal file
43
src/module/decode/p25/message/vselp/VSELP1Message.java
Normal file
@@ -0,0 +1,43 @@
|
||||
package module.decode.p25.message.vselp;
|
||||
|
||||
import alias.AliasList;
|
||||
import bits.BinaryMessage;
|
||||
import module.decode.p25.message.P25Message;
|
||||
import module.decode.p25.reference.DataUnitID;
|
||||
import module.decode.p25.reference.Vendor;
|
||||
|
||||
public class VSELP1Message extends P25Message
|
||||
{
|
||||
/**
|
||||
* Motorola VSELP audio message 1.
|
||||
*
|
||||
* @param message
|
||||
* @param duid
|
||||
* @param aliasList
|
||||
*/
|
||||
public VSELP1Message( BinaryMessage message, DataUnitID duid, AliasList aliasList )
|
||||
{
|
||||
super( message, duid, aliasList );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append( getMessageStub() );
|
||||
sb.append( " " );
|
||||
sb.append( mMessage.toString() );
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getMessageStub()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append( "VSELP 1 VOICE FRAME" );
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
42
src/module/decode/p25/message/vselp/VSELP2Message.java
Normal file
42
src/module/decode/p25/message/vselp/VSELP2Message.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package module.decode.p25.message.vselp;
|
||||
|
||||
import alias.AliasList;
|
||||
import bits.BinaryMessage;
|
||||
import module.decode.p25.message.P25Message;
|
||||
import module.decode.p25.reference.DataUnitID;
|
||||
|
||||
public class VSELP2Message extends P25Message
|
||||
{
|
||||
/**
|
||||
* Motorola VSELP audio message 1.
|
||||
*
|
||||
* @param message
|
||||
* @param duid
|
||||
* @param aliasList
|
||||
*/
|
||||
public VSELP2Message( BinaryMessage message, DataUnitID duid, AliasList aliasList )
|
||||
{
|
||||
super( message, duid, aliasList );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append( getMessageStub() );
|
||||
sb.append( " " );
|
||||
sb.append( mMessage.toString() );
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String getMessageStub()
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append( "VSELP 2 VOICE FRAME" );
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user