Resolved issue with parsing/display of LTR-Net channel frequencies. Channel frequency is a 2-part message and we were only calculating/displaying the frequency for one of the messages.

This commit is contained in:
dennis.sheirer
2014-10-31 09:41:17 +00:00
parent 338c37af4d
commit 34268f32b3
2 changed files with 66 additions and 15 deletions

View File

@@ -30,10 +30,17 @@ import bits.BitSetBuffer;
public class LTRNetMessageProcessor implements Listener<BitSetBuffer> public class LTRNetMessageProcessor implements Listener<BitSetBuffer>
{ {
private Broadcaster<Message> mBroadcaster = new Broadcaster<Message>(); private Broadcaster<Message> mBroadcaster = new Broadcaster<Message>();
private HashMap<Integer,LTRNetOSWMessage> mReceiveAuxMessages =
private HashMap<Integer,LTRNetOSWMessage> mReceiveHighAuxMessages =
new HashMap<Integer,LTRNetOSWMessage>(); new HashMap<Integer,LTRNetOSWMessage>();
private HashMap<Integer,LTRNetOSWMessage> mTransmitAuxMessages = private HashMap<Integer,LTRNetOSWMessage> mReceiveLowAuxMessages =
new HashMap<Integer,LTRNetOSWMessage>(); new HashMap<Integer,LTRNetOSWMessage>();
private HashMap<Integer,LTRNetOSWMessage> mTransmitHighAuxMessages =
new HashMap<Integer,LTRNetOSWMessage>();
private HashMap<Integer,LTRNetOSWMessage> mTransmitLowAuxMessages =
new HashMap<Integer,LTRNetOSWMessage>();
private LTRNetISWMessage mESNHighMessage; private LTRNetISWMessage mESNHighMessage;
private LTRNetISWMessage mESNLowMessage; private LTRNetISWMessage mESNLowMessage;
@@ -60,23 +67,34 @@ public class LTRNetMessageProcessor implements Listener<BitSetBuffer>
{ {
if( message.getMessageType() == MessageType.FQ_TXHI ) if( message.getMessageType() == MessageType.FQ_TXHI )
{ {
message.setAuxiliaryMessage( mTransmitHighAuxMessages.put( message.getHomeRepeater(),
mTransmitAuxMessages.get( message.getHomeRepeater() ) ); (LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mTransmitLowAuxMessages.get(
message.getHomeRepeater() ) );
} }
else if( message.getMessageType() == MessageType.FQ_TXLO ) else if( message.getMessageType() == MessageType.FQ_TXLO )
{ {
mTransmitAuxMessages.put( message.getHomeRepeater(), mTransmitLowAuxMessages.put( message.getHomeRepeater(),
(LTRNetOSWMessage)message ); (LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mTransmitHighAuxMessages.get(
message.getHomeRepeater() ) );
} }
else if( message.getMessageType() == MessageType.FQ_RXHI ) else if( message.getMessageType() == MessageType.FQ_RXHI )
{ {
message.setAuxiliaryMessage( mReceiveHighAuxMessages.put( message.getHomeRepeater(),
mReceiveAuxMessages.get( message.getHomeRepeater() ) ); (LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mReceiveLowAuxMessages.get(
message.getHomeRepeater() ) );
} }
else if( message.getMessageType() == MessageType.FQ_RXLO ) else if( message.getMessageType() == MessageType.FQ_RXLO )
{ {
mReceiveAuxMessages.put( message.getHomeRepeater(), mReceiveLowAuxMessages.put( message.getHomeRepeater(),
(LTRNetOSWMessage)message ); (LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mReceiveHighAuxMessages.get(
message.getHomeRepeater() ) );
} }
} }
} }

View File

@@ -153,10 +153,10 @@ public class LTRNetOSWMessage extends LTRNetMessage
sb.append( "CHAN RX LOW LCN:" ); sb.append( "CHAN RX LOW LCN:" );
sb.append( format( getHomeRepeater(), 2 ) ); sb.append( format( getHomeRepeater(), 2 ) );
sb.append( " = " ); sb.append( " = " );
double rxfreqhi = getFrequency(); double rxFreqLo = getFrequency();
if( rxfreqhi != sDOUBLE_NULL_VALUE ) if( rxFreqLo != sDOUBLE_NULL_VALUE )
{ {
sb.append( mDecimalFormatter.format( rxfreqhi ) ); sb.append( mDecimalFormatter.format( rxFreqLo ) );
} }
else else
{ {
@@ -167,7 +167,17 @@ public class LTRNetOSWMessage extends LTRNetMessage
case FQ_RXHI: case FQ_RXHI:
sb.append( "CHAN RX HIGH LCN:" ); sb.append( "CHAN RX HIGH LCN:" );
sb.append( format( getHomeRepeater(), 2 ) ); sb.append( format( getHomeRepeater(), 2 ) );
sb.append( " MSG 1 OF 2" ); sb.append( " = " );
double rxfreqhi = getFrequency();
if( rxfreqhi != sDOUBLE_NULL_VALUE )
{
sb.append( mDecimalFormatter.format( rxfreqhi ) );
}
else
{
sb.append( "000.00000" );
}
sb.append( " MHz" );
break; break;
case FQ_TXHI: case FQ_TXHI:
sb.append( "CHAN TX LOW LCN:" ); sb.append( "CHAN TX LOW LCN:" );
@@ -187,7 +197,17 @@ public class LTRNetOSWMessage extends LTRNetMessage
case FQ_TXLO: case FQ_TXLO:
sb.append( "CHAN TX HIGH LCN:" ); sb.append( "CHAN TX HIGH LCN:" );
sb.append( format( getHomeRepeater(), 2 ) ); sb.append( format( getHomeRepeater(), 2 ) );
sb.append( " MSG 1 OF 2" ); sb.append( " = " );
double txFreqLo = getFrequency();
if( txFreqLo != sDOUBLE_NULL_VALUE )
{
sb.append( mDecimalFormatter.format( txFreqLo ) );
}
else
{
sb.append( "000.00000" );
}
sb.append( " MHz" );
break; break;
case ID_SITE: case ID_SITE:
int siteId = getSiteID(); int siteId = getSiteID();
@@ -396,8 +416,21 @@ public class LTRNetOSWMessage extends LTRNetMessage
if( mAuxMessage != null ) if( mAuxMessage != null )
{ {
int high = getHighChannelUnits(); int high;
int low = mAuxMessage.getLowChannelUnits(); int low;
MessageType type = getMessageType();
if( type == MessageType.FQ_RXHI || type == MessageType.FQ_TXHI )
{
high = getHighChannelUnits();
low = mAuxMessage.getLowChannelUnits();
}
else
{
high = mAuxMessage.getHighChannelUnits();
low = getLowChannelUnits();
}
if( high != sINT_NULL_VALUE && low != sINT_NULL_VALUE ) if( high != sINT_NULL_VALUE && low != sINT_NULL_VALUE )
{ {