public class PositionReport extends PositionMessage implements SendableMessage
AX25Message.Precedence
abc, altitude, altitudeUnit, COMPRESSED_LAT_SCALING, CONV_MPH_TO_METERS_PER_SEC, DHM, enabledForTransmit, encodeCompressed, fLatitude, fLatPrecision, fLongitude, fmtMonitorFreq, HMS, HUNDREDTH_MINUTE_F, isCustom, latitude, LN_BASE1_08, longitude, ONE_DEGREE_F, ONE_MINUTE_F, TEN_MINUTES_F, TENTH_MINUTE_F
appendCR, APRS_AND_OPENTRAC_AND_RAW, APRS_AND_RAW, comment, msgType, S_PERMANENT, S_PERMANENT_UC, symbolCode, symTableId
APRS_AND_OPENTRAC, ax25Frame, extensions, invalid, originatingCallsign, originatingDest, PERMANENT, rcptTime, thirdParty, timestamp, UTC
Constructor and Description |
---|
PositionReport(byte[] body,
int offset,
java.lang.String tp,
long rcvTimestamp)
Constructor for Position message when decoding a binary AX.25 frame.
|
PositionReport(long now,
boolean encodeCompressed,
char msgType)
Alternate constructor for creating a non-timestamped locally originated PositionReport.
|
Modifier and Type | Method and Description |
---|---|
void |
disableForTransmit()
Specify that message should no longer be transmitted.
|
byte[] |
getBody(boolean countTransmission,
ProtocolFamily protocolId,
AX25Frame frame)
Get an instance of this message, suitable for transmitting.
|
java.util.Set<ProtocolFamily> |
getProtocols()
Get the protocol family or families that this message corresponds to, so
ports that don't support all protocols will not forward inappropriate packets.
|
boolean |
isUsingCompressedFormat()
Indicates whether this PositionMessage is using compressed-mode (but not Mic-E) encoding of latitude and longitude,
because this affects what are legal symbol overlay codes.
|
appendAreaParameters, appendRepeaterParameters, appendSignpostParameters, bodyEquals, createObjectFromThisPosition, decodeDataExtension, decodeLatitude, decodeLongitude, decodeOnlyLatitude, decodeOnlyLongitude, encodeLatitudeCompressed, encodeLatitudePlainText, encodeLongitudeCompressed, encodeLongitudePlainText, extractCompressedLatitude, extractCompressedLongitude, extractLatitude, extractLongitude, getAbc, getAltitude, getAltitudeUnit, getHorizontalAccuracy, getLatitude, getLatitudeAccuracy, getLongitude, getPositionAltitude, getPositionLatitude, getPositionLongitude, getPositionTime, hasPosition, isCustom, isEnabled, isShowDate, looksLikeFrequency, looksLikeFrequency, paramString, setAbc, setAmbiguity, setCustom, setLatitude, setLocation, setLongitude, setShowDate, testIfValidCompressedLocation
compareTo, decodeDatestamp, decodeHurricaneParams, decodeTimestamp, decodeWeatherParams, decodeWeatherParams, dup, encodeTimestamp, extractComment, extractComment, extractSymbol, formatBody, getComment, getExtensionString, getMsgType, getPrecedence, getSymbolCode, getSymTableId, hasWeather, inferSymbol, isAppendCR, isSymbolInferred, looksLikeLongFormatLatitude, setAppendCR, setComment, setSymbolCode, setSymTableId, toString
equals, extractSource, getAx25Frame, getExtension, getFirstDigipeat, getLastDigipeat, getNthDigipeat, getOriginalDestination, getOriginalSource, getOriginatingCallsign, getOriginatingDest, getRcptTime, getReadOnlyExtensionMap, getTimestamp, hashCode, hasThisFirstDigi, indexOf, indexOf, isDirect, isInvalid, isRf, onlyDigits, onlyDigits, onlyDigitsOrMinus, onlyDigitsOrPeriod, onlyDigitsOrSpace, onlyDigitsPlus, onlyPeriods, setAx25Frame, setInvalid, setOriginatingCallsign, setRcptTime, setTimestamp, split, storeExtension
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
dup, isEnabled
public PositionReport(byte[] body, int offset, java.lang.String tp, long rcvTimestamp) throws java.lang.IllegalArgumentException
body
- byte array of frame bodyoffset
- 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 wrapperrcvTimestamp
- Unix time when message was actually received by YAACjava.lang.IllegalArgumentException
- if body has invalid syntax in any fieldspublic PositionReport(long now, boolean encodeCompressed, char msgType)
now
- current time in milliseconds since midnight 1 Jan 1970 UTCencodeCompressed
- boolean true if encoding of this message into APRS format should use compressed encodingmsgType
- char to use for APRS message type; caller is required to ensure this is legal by APRS protocol specificationpublic byte[] getBody(boolean countTransmission, ProtocolFamily protocolId, AX25Frame frame)
getBody
in interface SendableMessage
countTransmission
- number of times this message has been transmittedprotocolId
- AX.25 protocol ID to format this message inframe
- AX25Frame into which the message will be placed, so any alternate AX25Message can be linked to itAX25Frame.parsedAX25Msg
public boolean isUsingCompressedFormat()
isUsingCompressedFormat
in class PositionMessage
public void disableForTransmit()
disableForTransmit
in interface SendableMessage
public java.util.Set<ProtocolFamily> getProtocols()
getProtocols
in class Message