M
- extends MessageI
- This represents the id for this comm.public abstract class SystemCommBaseInfo<M extends IMessage,Mi extends pt.lsts.neptus.messages.listener.MessageInfo,I> extends java.lang.Object implements pt.lsts.neptus.messages.listener.MessageListener<Mi,M>, PropertiesProvider
Modifier and Type | Field and Description |
---|---|
protected double |
arrivalDeltaTxRxTimeNanosLastMsg |
protected double |
arrivalLastSecondMsgTime |
protected double |
arrivalMessageFreq |
protected long |
arrivalMsgsInLastSec |
protected double |
arrivalTimeMillisLastMsg |
protected long |
counter |
protected java.util.LinkedList<Mi> |
infoQueue |
protected boolean |
isActive |
protected pt.lsts.neptus.messages.listener.MessageListener<Mi,M> |
lastListener |
protected java.util.LinkedHashMap<java.lang.String,java.lang.Long> |
lastReceivedTime |
protected java.util.LinkedHashSet<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>> |
listeners |
protected java.util.LinkedHashMap<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>,MessageListenerQueueProvider<Mi,M>> |
listenersQueueProvider |
protected pt.lsts.neptus.comm.manager.CommonCommBaseImplementation.MessageProcessor |
messageProcessor |
protected long |
minDelay
Is the separation time of each message type that is warn to the listeners.
|
protected java.util.LinkedList<M> |
msgQueue |
protected PreferencesListener |
preferencesListener |
protected double |
processDeltaTxRxTimeNanosLastMsg |
protected double |
processLastSecondMsgTime |
protected double |
processMessageFreq |
protected long |
processMsgsInLastSec |
protected double |
processTimeMillisLastMsg |
protected java.util.LinkedHashMap<java.lang.String,com.l2fprod.common.propertysheet.DefaultProperty> |
properties
This HashTable will hold this class properties (for the related vehicle)
|
protected int |
queueMaxSize |
protected long |
seqInstanceNr |
protected I |
systemCommId
The id used for the comm. for the vehicle.
|
protected java.lang.String |
systemIdName
As defined as the id of the
VehicleType . |
protected static boolean |
useListenersQueues |
Constructor and Description |
---|
SystemCommBaseInfo()
This constructor SHOULD always be called. |
Modifier and Type | Method and Description |
---|---|
boolean |
addListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener)
For public channel
Don't need to override this method. |
boolean |
addListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener,
MessageFilter<Mi,M> filter)
Same as
addListener(MessageListener) but with a filter. |
void |
clearMsgQueue()
To force the clear of the messages queue.
|
double |
getArrivalDeltaTxRxTimeNanosLastMsg() |
double |
getArrivalMessageFreq()
Don't need to override this method. |
double |
getArrivalTimeMillisLastMsg()
Don't need to override this method. |
pt.lsts.neptus.messages.listener.MessageListener<Mi,M> |
getLastListener()
Don't need to override this method. |
protected java.util.LinkedHashSet<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>> |
getListeners()
Don't need to override this method. |
protected java.util.LinkedHashMap<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>,MessageListenerQueueProvider<Mi,M>> |
getListenersQueueProvider() |
int |
getListenersSize()
Don't need to override this method. |
protected long |
getMinDelay()
Don't need to override this method. |
int |
getMsgQueueLength()
Don't need to override this method. |
long |
getNextSeqInstanceNr()
Don't need to override this method. |
double |
getProcessDeltaTxRxTimeNanosLastMsg() |
double |
getProcessMessageFreq()
Don't need to override this method. |
double |
getProcessTimeMillisLastMsg()
Don't need to override this method. |
com.l2fprod.common.propertysheet.DefaultProperty[] |
getProperties()
Don't need to override this method. |
java.lang.String |
getPropertiesDialogTitle()
Don't need to override this method. |
java.lang.String[] |
getPropertiesErrors(com.l2fprod.common.propertysheet.Property[] properties)
Don't need to override this method. |
java.lang.Object |
getPropertyValue(java.lang.String propertyName)
Return the value of the given property name
Don't need to override this method. |
long |
getSeqInstanceNr()
Don't need to override this method. |
I |
getSystemCommId()
Don't need to override this method. |
java.lang.String |
getSystemIdName()
Don't need to override this method. |
protected abstract boolean |
initSystemComms() |
boolean |
isActive() |
void |
onMessage(Mi info,
M msg)
This is from
#openNode . |
protected void |
processMessage(Mi info,
M msg)
This calls:
if (processMsgLocally(info, msg))
warnListeners(info, msg);
Normally this method is NOT needed to be overwritten. |
protected abstract boolean |
processMsgLocally(Mi info,
M msg)
To be used to process the message locally.
|
boolean |
removeListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener)
For public channel
Don't need to override this method. |
void |
resumeMsgProcessing()
Don't need to override this method. |
protected void |
setActive(boolean isActive,
Mi info,
M message)
This will set activity flag and call
triggerExtraActionOnSetActive(boolean, MessageInfo, IMessage) to
trigger some extra action (by default the triggerExtraActionOnSetActive(boolean, MessageInfo, IMessage)
does nothing). |
void |
setArrivalDeltaTxRxTimeNanosLastMsg(double arrivalDeltaTxRxTimeNanosLastMsg) |
protected void |
setArrivalMessageFreq(double arrivalMessageFreq)
Don't need to override this method. |
protected void |
setArrivalTimeMillisLastMsg(double arrivalTimeMillisLastMsg)
Don't need to override this method. |
protected void |
setMinDelay(long minDelay)
Don't need to override this method. |
protected void |
setProcessDeltaTxRxTimeNanosLastMsg(double processDeltaTxRxTimeNanosLastMsg) |
protected void |
setProcessTimeMillisLastMsg(double timeMillisLastMsgReceived)
This function is used to set the last msg time arrival on processor and it will calculate the frequency of
arrival.
|
void |
setProperties(com.l2fprod.common.propertysheet.Property[] props)
Don't need to override this method. |
void |
setProperty(com.l2fprod.common.propertysheet.Property prop)
Add or change a property for this vehicle comm info
Don't need to override this method. |
protected void |
setSeqInstanceNr(long seqInstanceNr)
Don't need to override this method. |
void |
setSystemCommId(I commId)
Don't need to override this method. |
void |
setSystemIdName(java.lang.String vehicleId)
Don't need to override this method. |
protected boolean |
start() |
protected abstract boolean |
startSystemComms() |
protected boolean |
stop() |
void |
stopMsgProcessing()
Don't need to override this method. |
protected abstract boolean |
stopSystemComms() |
protected void |
triggerExtraActionOnSetActive(boolean isActive,
Mi info,
M message)
You need to override this method to implement extra actions when
|
protected void |
warnListeners(Mi info,
M msg)
For public channel
Don't need to override this method. |
protected java.lang.String systemIdName
VehicleType
.protected I systemCommId
protected java.util.LinkedHashMap<java.lang.String,com.l2fprod.common.propertysheet.DefaultProperty> properties
protected static boolean useListenersQueues
protected java.util.LinkedList<M extends IMessage> msgQueue
protected java.util.LinkedList<Mi extends pt.lsts.neptus.messages.listener.MessageInfo> infoQueue
protected pt.lsts.neptus.comm.manager.CommonCommBaseImplementation.MessageProcessor messageProcessor
protected boolean isActive
protected double processTimeMillisLastMsg
protected long processMsgsInLastSec
protected double processMessageFreq
protected double processLastSecondMsgTime
protected double processDeltaTxRxTimeNanosLastMsg
protected double arrivalTimeMillisLastMsg
protected long arrivalMsgsInLastSec
protected double arrivalMessageFreq
protected double arrivalLastSecondMsgTime
protected double arrivalDeltaTxRxTimeNanosLastMsg
protected long counter
protected java.util.LinkedHashSet<pt.lsts.neptus.messages.listener.MessageListener<Mi extends pt.lsts.neptus.messages.listener.MessageInfo,M extends IMessage>> listeners
protected pt.lsts.neptus.messages.listener.MessageListener<Mi extends pt.lsts.neptus.messages.listener.MessageInfo,M extends IMessage> lastListener
protected java.util.LinkedHashMap<pt.lsts.neptus.messages.listener.MessageListener<Mi extends pt.lsts.neptus.messages.listener.MessageInfo,M extends IMessage>,MessageListenerQueueProvider<Mi extends pt.lsts.neptus.messages.listener.MessageInfo,M extends IMessage>> listenersQueueProvider
protected int queueMaxSize
protected long seqInstanceNr
protected long minDelay
protected java.util.LinkedHashMap<java.lang.String,java.lang.Long> lastReceivedTime
protected PreferencesListener preferencesListener
public SystemCommBaseInfo()
This constructor SHOULD always be called.
public void stopMsgProcessing()
Don't need to override this method.
public void resumeMsgProcessing()
Don't need to override this method.
public I getSystemCommId()
Don't need to override this method.
systemCommId
.public void setSystemCommId(I commId)
Don't need to override this method.
commId
- The systemCommId
to set.public java.lang.String getSystemIdName()
Don't need to override this method.
VehicleType
.public void setSystemIdName(java.lang.String vehicleId)
Don't need to override this method.
vehicleId
- The vehicleId to set as defined in VehicleType
.protected abstract boolean initSystemComms()
protected abstract boolean startSystemComms()
protected abstract boolean stopSystemComms()
public com.l2fprod.common.propertysheet.DefaultProperty[] getProperties()
Don't need to override this method.
The Vehicle ID, STANAG ID and LOI are regenerated.getProperties
in interface PropertiesProvider
public void setProperties(com.l2fprod.common.propertysheet.Property[] props)
Don't need to override this method.
setProperties
in interface PropertiesProvider
PropertiesProvider.setProperties(Property[])
public void setProperty(com.l2fprod.common.propertysheet.Property prop)
Don't need to override this method.
prop
- The property to be added / changedpublic java.lang.Object getPropertyValue(java.lang.String propertyName)
Don't need to override this method.
propertyName
- The name of the propertypublic java.lang.String getPropertiesDialogTitle()
Don't need to override this method.
getPropertiesDialogTitle
in interface PropertiesProvider
PropertiesProvider.getPropertiesDialogTitle()
public java.lang.String[] getPropertiesErrors(com.l2fprod.common.propertysheet.Property[] properties)
Don't need to override this method.
getPropertiesErrors
in interface PropertiesProvider
PropertiesProvider.getPropertiesErrors(Property[])
protected boolean start()
protected boolean stop()
public final int getMsgQueueLength()
Don't need to override this method.
public final void clearMsgQueue()
Don't need to override this method.
protected final java.util.LinkedHashSet<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>> getListeners()
Don't need to override this method.
public final int getListenersSize()
Don't need to override this method.
public final pt.lsts.neptus.messages.listener.MessageListener<Mi,M> getLastListener()
Don't need to override this method.
protected final java.util.LinkedHashMap<pt.lsts.neptus.messages.listener.MessageListener<Mi,M>,MessageListenerQueueProvider<Mi,M>> getListenersQueueProvider()
public final boolean isActive()
protected final void setActive(boolean isActive, Mi info, M message)
triggerExtraActionOnSetActive(boolean, MessageInfo, IMessage)
to
trigger some extra action (by default the triggerExtraActionOnSetActive(boolean, MessageInfo, IMessage)
does nothing). WARNING info and message can be null.protected void triggerExtraActionOnSetActive(boolean isActive, Mi info, M message)
You need to override this method to implement extra actions when
setActive(boolean, MessageInfo, IMessage)
is called.
isActive
- info
- Can be null.message
- Can be null.public final double getProcessTimeMillisLastMsg()
Don't need to override this method.
protected final void setProcessTimeMillisLastMsg(double timeMillisLastMsgReceived)
Don't need to override this method.
timeMillisLastMsgReceived
- the timeLastMsgReceived to setpublic final double getProcessDeltaTxRxTimeNanosLastMsg()
protected final void setProcessDeltaTxRxTimeNanosLastMsg(double processDeltaTxRxTimeNanosLastMsg)
processDeltaTxRxTimeNanosLastMsg
- the processDeltaTxRxTimeNanosLastMsg to setpublic final double getProcessMessageFreq()
Don't need to override this method.
public final double getArrivalMessageFreq()
Don't need to override this method.
protected final void setArrivalMessageFreq(double arrivalMessageFreq)
Don't need to override this method.
arrivalMessageFreq
- the arrivalMessageFreq to setpublic final double getArrivalTimeMillisLastMsg()
Don't need to override this method.
protected final void setArrivalTimeMillisLastMsg(double arrivalTimeMillisLastMsg)
Don't need to override this method.
arrivalTimeMillisLastMsg
- the arrivalTimeLastMsg to setpublic final double getArrivalDeltaTxRxTimeNanosLastMsg()
public final void setArrivalDeltaTxRxTimeNanosLastMsg(double arrivalDeltaTxRxTimeNanosLastMsg)
arrivalDeltaTxRxTimeNanosLastMsg
- the arrivalDeltaTxRxTimeNanosLastMsg to setprotected long getMinDelay()
Don't need to override this method.
protected void setMinDelay(long minDelay)
Don't need to override this method.
minDelay
- protected void warnListeners(Mi info, M msg)
Don't need to override this method.
info
- msg
- public boolean addListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener)
Don't need to override this method.
listener
- public boolean addListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener, MessageFilter<Mi,M> filter)
addListener(MessageListener)
but with a filter.
Don't need to override this method.
listener
- filter
- If null means no filter.public boolean removeListener(pt.lsts.neptus.messages.listener.MessageListener<Mi,M> listener)
Don't need to override this method.
listener
- public final void onMessage(Mi info, M msg)
#openNode
.
This method is to be called upon message arrival.
onMessage
in interface pt.lsts.neptus.messages.listener.MessageListener<Mi extends pt.lsts.neptus.messages.listener.MessageInfo,M extends IMessage>
MessageListener.onMessage(pt.lsts.neptus.messages.listener.MessageInfo,
pt.lsts.neptus.messages.IMessage)
protected final void processMessage(Mi info, M msg)
if (processMsgLocally(info, msg)) warnListeners(info, msg);
Normally this method is NOT needed to be overwritten.
info
- msg
- protected abstract boolean processMsgLocally(Mi info, M msg)
info
- msg
- public final long getSeqInstanceNr()
Don't need to override this method.
protected final void setSeqInstanceNr(long seqInstanceNr)
Don't need to override this method.
seqInstanceNr
- the seqInstanceNr to setpublic final long getNextSeqInstanceNr()
Don't need to override this method.
Copyright © 2004-2014 FEUP-LSTS and Neptus developers. All Rights Reserved.