Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.ka2ddo.aprs
Class ObjectReport

    java.lang.Object
      org.ka2ddo.ax25.AX25Message
          org.ka2ddo.aprs.Message
              org.ka2ddo.aprs.PositionMessage
                  org.ka2ddo.aprs.ObjectReport

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<AX25Message>, CommentedMessage, ScopeableMessage, SendableMessage

    public class ObjectReport

extends PositionMessage
implements ScopeableMessage

This class defines an APRS Object Report (';') or Item Report (')') message (APRS protocol specification chapter 11). It also supports sending these reports as OpenTRAC entity messages.

See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class org.ka2ddo.ax25.AX25Message
`AX25Message.Precedence`

Field Summary
`java.lang.String[]` | `digipeatPaths` Digipeating paths (in proportional pathing order) for transmitting locally-originated Objects.
`int` | `fastSendRate` The transmission rate to initially use for this Object.
`char` | `life` Flag indicating whether Object is still active (alive) or has been decommissioned (dead).
`static int` | `NUM_KILLED_TRANSMISSIONS` The number of times a "killed" Object/Item should be transmitted so everyone knows it is killed.
`java.lang.String` | `objectName` Name of Object or Item.
`java.lang.String` | `qruCategory` QRU category to associate with locally-originated Item, or null for no QRU group.
`java.lang.String` | `savedTimestamp` Timestamp in Object message (null for Items).
`Scope` | `scope` Scope for the transmission of locally-originated Objects.
`int` | `slowSendRate` The transmission rate to decay to for this Object.

Fields inherited from class org.ka2ddo.aprs.PositionMessage
`abc, altitude, altitudeUnit, COMPRESSED_LAT_SCALING, CONV_MPH_TO_METERS_PER_SEC, DHM, fLatitude, fLatPrecision, fLongitude, fmtMonitorFreq, HMS, isCustom, latitude, LN_BASE1_08, longitude, MDHM`

Fields inherited from class org.ka2ddo.aprs.Message
`comment, extensions, msgType, S_PERMANENT, S_PERMANENT_UC, symbolCode, symTableId, USASCII`

Fields inherited from class org.ka2ddo.ax25.AX25Message
`ax25Frame, invalid, ISO_8859_1, originatingCallsign, PERMANENT, rcptTime, thirdParty, timestamp, UTC, UTF8`

Constructor Summary
`ObjectReport(boolean isItem, java.lang.String objectName, boolean alive, java.util.Date date, char symTableId, char symbolCode)` Create an ObjectReport suitable for transmission with the basic parameters filled in (some fields will still have to be filled before the message is safe to transmit).
`ObjectReport(byte[] body, int offset, java.lang.String tp, long rcvTimestamp)` Constructor for Object or Item message when decoding a binary AX.25 frame.
`ObjectReport(java.lang.String strBody, long rcvTimestamp)` Constructor for Item reports embedded in a Message (the Item-in-Msg encapsulation)

Method Summary
`boolean` | `bodyEquals(AX25Message o)` Compare the contents of the body of the message, reporting if they match.
`ObjectReport` | `createObjectFromThisPosition()` Create an ObjectReport from this PositionMessage.
`byte[]` | `getBody(boolean countTransmission, byte protocolId, AX25Frame frame)` Get an instance of this message, suitable for transmitting.
`java.lang.String` | `getObjectName()` Report the name of the Object or Item.
`Scope` | `getScope()` Get the transmission scope for this message (so the digipeat path can be derived).
`java.lang.String` | `getStringAPRSBody(boolean countTransmission)` Build the transmittable body of a APRS Object or Item message from this data structure,
`boolean` | `isAlive()` Test if Object/Item is still alive.
`boolean` | `isEnabled()` Test if message should still be transmitted.
`boolean` | `isSetEnabled()` Report whether the enable flag is set for this message (independent of expiration or limited scope).
`java.lang.String` | `paramString()` Descriptive text about this message, to be included in the toString() method's response.
`static ObjectReport` | `readFromPreferences(java.util.prefs.Preferences prefs, java.lang.String objectName)` Restore a new instance of an Object or Item from its backing store in Java Preferences.
`void` | `removeFromPreferences(java.util.prefs.Preferences prefs)` Clear this Object/Item from Java Preferences,
`void` | `setEnabled(boolean enabled)` Specify whether this message should be transmitted.
`void` | `setTimestamp(long when)` Change the timestamp associated with this Object (should only be done on retransmitted locally-originated Objects).
`void` | `writeToPreferences(java.util.prefs.Preferences prefs)` Persist this Object/Item in Java Preferences.

Methods inherited from class org.ka2ddo.aprs.PositionMessage
`appendAreaParameters, appendRepeaterParameters, appendSignpostParameters, decodeDataExtension, decodeLatitude, decodeLongitude, decodeOnlyLatitude, decodeOnlyLongitude, encodeLatitudeCompressed, encodeLatitudePlainText, encodeLongitudeCompressed, encodeLongitudePlainText, extractCompressedLatitude, extractCompressedLongitude, extractLatitude, extractLongitude, getAbc, getAltitude, getAltitudeUnit, getCustom, getLatitude, getLatitudeAccuracy, getLongitude, hasPosition, isShowDate, isUsingCompressedFormat, looksLikeFrequency, looksLikeFrequency, setAbc, setLatitude, setLocation, setLongitude, setShowDate, testIfValidCompressedLocation`

Methods inherited from class org.ka2ddo.aprs.Message
`compareTo, decodeDatestamp, decodeHurricaneParams, decodeTimestamp, decodeWeatherParams, decodeWeatherParams, dup, encodeTimestamp, extractComment, extractComment, extractSymbol, formatBody, getComment, getExtension, getExtensionString, getMsgType, getReadOnlyExtensionMap, getSymbolCode, getSymTableId, hasWeather, inferSymbol, isSymbolInferred, looksLikeLongFormatLatitude, setComment, setSymbolCode, setSymTableId, storeExtension, toString`

Methods inherited from class org.ka2ddo.ax25.AX25Message
`equals, extractSource, getAx25Frame, getFirstDigipeat, getLastDigipeat, getOriginalDestination, getOriginalSource, getOriginatingCallsign, getPrecedence, getRcptTime, getTimestamp, hashCode, hasThisFirstDigi, indexOf, indexOf, isInvalid, onlyDigits, onlyDigits, onlyDigitsOrPeriod, onlyDigitsOrSpace, onlyDigitsPlus, onlyPeriods, setAx25Frame, setInvalid, setOriginatingCallsign, setRcptTime, split`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.ka2ddo.ax25.SendableMessage
`dup`

Field Detail

### NUM_KILLED_TRANSMISSIONS

    public static final int NUM_KILLED_TRANSMISSIONS

  The number of times a "killed" Object/Item should be transmitted so everyone knows it is killed.

  See Also:
    Constant Field Values

### objectName

    public java.lang.String objectName

  Name of Object or Item. Limited to 9 characters,

### life

    public char life

  Flag indicating whether Object is still active (alive) or has been decommissioned (dead).

### savedTimestamp

    public java.lang.String savedTimestamp

  Timestamp in Object message (null for Items).

### scope

    public Scope scope

  Scope for the transmission of locally-originated Objects.

### digipeatPaths

    public java.lang.String[] digipeatPaths

  Digipeating paths (in proportional pathing order) for transmitting locally-originated Objects.

### qruCategory

    public java.lang.String qruCategory

  QRU category to associate with locally-originated Item, or null for no QRU group.

### fastSendRate

    public int fastSendRate

  The transmission rate to initially use for this Object. If left at -1, the default for the transmitting program is obtained and used.

### slowSendRate

    public int slowSendRate

  The transmission rate to decay to for this Object. If left at -1, the default for the transmitting program is obtained and used.

Constructor Detail

### ObjectReport

    public ObjectReport(byte[] body,
                        int offset,
                        java.lang.String tp,
                        long rcvTimestamp)

  Constructor for Object or Item message when decoding a binary AX.25 frame.

  Parameters:
    `body` - byte array of frame body
    `offset` - int array index offset for start of message (non-zero for encapsulated messages)
    `tp` - third-party relay String for encapsulated messages, or null for no third-party wrapper
    `rcvTimestamp` - Unix time when message was actually received by YAAC

### ObjectReport

    public ObjectReport(java.lang.String strBody,
                        long rcvTimestamp)

  Constructor for Item reports embedded in a Message (the Item-in-Msg encapsulation)

  Parameters:
    `strBody` - the Message comment containing the Item report
    `rcvTimestamp` - Unix time when this message was received by YAAC

### ObjectReport

    public ObjectReport(boolean isItem,
                        java.lang.String objectName,
                        boolean alive,
                        java.util.Date date,
                        char symTableId,
                        char symbolCode)

  Create an ObjectReport suitable for transmission with the basic parameters filled in (some fields will still have to be filled before the message is safe to transmit).

  Parameters:
    `isItem` - boolean true if message is for a non-timestamped Item instead of an Object
    `objectName` - the String name of the Object or Item (truncated to 9 characters if needed)
    `alive` - boolean true if the Object/Item is alive
    `date` - Date when this Object was created (meaningless but required for Items)
    `symTableId` - APRS symbol table ID (or overlay character) for this Object/Item
    `symbolCode` - APRS symbol code for this Object/Item

Method Detail

### paramString

    public java.lang.String paramString()

  Descriptive text about this message, to be included in the toString() method's response.

  Overrides:
    `paramString` in class `PositionMessage`
  Returns:
    String describing the contents of this message
  See Also:
    `Message.toString()`

### getBody

    public byte[] getBody(boolean countTransmission,
                          byte protocolId,
                          AX25Frame frame)

  Get an instance of this message, suitable for transmitting.

  Specified by:
    `getBody` in interface `SendableMessage`
  Parameters:
    `countTransmission` - number of times this message has been transmitted
    `protocolId` - AX.25 protocol ID to format this message in
    `frame` - AX25Frame into which the message will be placed, so any alternate AX25Message can be linked to it
  Returns:
    byte array of message
  See Also:
    `AX25Frame.parsedAX25Msg`

### getStringAPRSBody

    public java.lang.String getStringAPRSBody(boolean countTransmission)

  Build the transmittable body of a APRS Object or Item message from this data structure,

  Parameters:
    `countTransmission` - boolean true if this should update the transmission counters
  Returns:
    ASCII String of this ObjectReport in APRS format (APRS protocol specification chapter 11)

### isEnabled

    public boolean isEnabled()

  Test if message should still be transmitted.

  Specified by:
    `isEnabled` in interface `SendableMessage`
  Overrides:
    `isEnabled` in class `PositionMessage`
  Returns:
    boolean true if message should still be transmitted

### setEnabled

    public void setEnabled(boolean enabled)

  Specify whether this message should be transmitted. Applicable only to locally originated Obects/Items.

  Parameters:
    `enabled` - boolean true if Object can be transmitted

### isSetEnabled

    public boolean isSetEnabled()

  Report whether the enable flag is set for this message (independent of expiration or limited scope).

  Returns:
    boolean true if this message could be transmitted

### isAlive

    public boolean isAlive()

  Test if Object/Item is still alive.

  Returns:
    boolean true if object is alive.

### getObjectName

    public java.lang.String getObjectName()

  Report the name of the Object or Item.

  Returns:
    String name of the Object/Item

### getScope

    public Scope getScope()

  Get the transmission scope for this message (so the digipeat path can be derived).

  Specified by:
    `getScope` in interface `ScopeableMessage`
  Returns:
    Scope of this message

### setTimestamp

    public void setTimestamp(long when)

  Change the timestamp associated with this Object (should only be done on retransmitted locally-originated Objects).

  Overrides:
    `setTimestamp` in class `AX25Message`
  Parameters:
    `when` - time in Java milliseconds since 1 Jan 1970 UTC for this Object

### writeToPreferences

    public void writeToPreferences(java.util.prefs.Preferences prefs)

  Persist this Object/Item in Java Preferences.

  Parameters:
    `prefs` - the Preferences object to contain the record of this Object/Item

### removeFromPreferences

    public void removeFromPreferences(java.util.prefs.Preferences prefs)

  Clear this Object/Item from Java Preferences,

  Parameters:
    `prefs` - the Preferences object that contained the record of this Object/Item

### readFromPreferences

    public static ObjectReport readFromPreferences(java.util.prefs.Preferences prefs,
                                                   java.lang.String objectName)

  Restore a new instance of an Object or Item from its backing store in Java Preferences.

  Parameters:
    `prefs` - the Preferences object containing the record of this Object/Item
    `objectName` - the name of the particular Object/Item to be restored
  Returns:
    a ready-to-transmit ObjectReport

### createObjectFromThisPosition

    public ObjectReport createObjectFromThisPosition()

  Create an ObjectReport from this PositionMessage.

  Overrides:
    `createObjectFromThisPosition` in class `PositionMessage`
  Returns:
    new ObjectReport cloned from this PositionMessage

### bodyEquals

    public boolean bodyEquals(AX25Message o)

  Compare the contents of the body of the message, reporting if they match.

  Overrides:
    `bodyEquals` in class `PositionMessage`
  Parameters:
    `o` - another AX25Message to compare against
  Returns:
    boolean true if the body values are equivalent

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD