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>
{
private Broadcaster<Message> mBroadcaster = new Broadcaster<Message>();
private HashMap<Integer,LTRNetOSWMessage> mReceiveAuxMessages =
private HashMap<Integer,LTRNetOSWMessage> mReceiveHighAuxMessages =
new HashMap<Integer,LTRNetOSWMessage>();
private HashMap<Integer,LTRNetOSWMessage> mTransmitAuxMessages =
private HashMap<Integer,LTRNetOSWMessage> mReceiveLowAuxMessages =
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 mESNLowMessage;
@@ -60,23 +67,34 @@ public class LTRNetMessageProcessor implements Listener<BitSetBuffer>
{
if( message.getMessageType() == MessageType.FQ_TXHI )
{
message.setAuxiliaryMessage(
mTransmitAuxMessages.get( message.getHomeRepeater() ) );
mTransmitHighAuxMessages.put( message.getHomeRepeater(),
(LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mTransmitLowAuxMessages.get(
message.getHomeRepeater() ) );
}
else if( message.getMessageType() == MessageType.FQ_TXLO )
{
mTransmitAuxMessages.put( message.getHomeRepeater(),
mTransmitLowAuxMessages.put( message.getHomeRepeater(),
(LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mTransmitHighAuxMessages.get(
message.getHomeRepeater() ) );
}
else if( message.getMessageType() == MessageType.FQ_RXHI )
{
message.setAuxiliaryMessage(
mReceiveAuxMessages.get( message.getHomeRepeater() ) );
mReceiveHighAuxMessages.put( message.getHomeRepeater(),
(LTRNetOSWMessage)message );
message.setAuxiliaryMessage( mReceiveLowAuxMessages.get(
message.getHomeRepeater() ) );
}
else if( message.getMessageType() == MessageType.FQ_RXLO )
{
mReceiveAuxMessages.put( message.getHomeRepeater(),
mReceiveLowAuxMessages.put( message.getHomeRepeater(),
(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( format( getHomeRepeater(), 2 ) );
sb.append( " = " );
double rxfreqhi = getFrequency();
if( rxfreqhi != sDOUBLE_NULL_VALUE )
double rxFreqLo = getFrequency();
if( rxFreqLo != sDOUBLE_NULL_VALUE )
{
sb.append( mDecimalFormatter.format( rxfreqhi ) );
sb.append( mDecimalFormatter.format( rxFreqLo ) );
}
else
{
@@ -167,7 +167,17 @@ public class LTRNetOSWMessage extends LTRNetMessage
case FQ_RXHI:
sb.append( "CHAN RX HIGH LCN:" );
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;
case FQ_TXHI:
sb.append( "CHAN TX LOW LCN:" );
@@ -187,7 +197,17 @@ public class LTRNetOSWMessage extends LTRNetMessage
case FQ_TXLO:
sb.append( "CHAN TX HIGH LCN:" );
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;
case ID_SITE:
int siteId = getSiteID();
@@ -396,8 +416,21 @@ public class LTRNetOSWMessage extends LTRNetMessage
if( mAuxMessage != null )
{
int high = getHighChannelUnits();
int low = mAuxMessage.getLowChannelUnits();
int high;
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 )
{