mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-15 01:57:39 -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.tdu.lc.TDULinkControlMessage;
|
||||||
import module.decode.p25.message.tsbk.TSBKMessage;
|
import module.decode.p25.message.tsbk.TSBKMessage;
|
||||||
import module.decode.p25.message.tsbk.TSBKMessageFactory;
|
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 module.decode.p25.reference.DataUnitID;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -630,6 +632,14 @@ public class P25MessageFramer implements Listener<Dibit>
|
|||||||
|
|
||||||
mComplete = true;
|
mComplete = true;
|
||||||
break;
|
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:
|
case UNKN:
|
||||||
mComplete = true;
|
mComplete = true;
|
||||||
dispatch( new P25Message( mMessage.copy(), mDUID, mAliasList ) );
|
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