public class MaidenheadLocatorBeacon 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 |
---|
MaidenheadLocatorBeacon(byte[] body,
int offset,
java.lang.String tp,
long rcvTimestamp)
Decode a Maidenhead locator beacon message from the specified AX.25 frame body.
|
MaidenheadLocatorBeacon(long now,
byte msgType,
double latitude,
double longitude,
java.lang.String comment)
Alternate constructor for making a transmittable MaidenheadLocatorBeacon message
(including one that looks like a StatusMessage with Maidenhead location).
|
Modifier and Type | Method and Description |
---|---|
void |
disableForTransmit()
Specify that message should no longer be transmitted.
|
static java.lang.String |
encodeMaidenheadIdentifier(double latitude,
double longitude)
Convert a lat/lon pair in decimal degrees North/East into a Maidenhead location.
|
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.
|
java.lang.String |
paramString()
Descriptive text about this message, to be included in the toString() method's response.
|
static boolean |
testIfMaidenheadIdentifier(byte[] body,
int offset)
Test if the specified message body contains a string that looks like a
Maidenhead location identifier.
|
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, isUsingCompressedFormat, looksLikeFrequency, looksLikeFrequency, 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 MaidenheadLocatorBeacon(byte[] body, int offset, java.lang.String tp, long rcvTimestamp)
body
- byte array of frame bodyoffset
- zero-based index into array where the message starts (after any third-party data)tp
- String of third-party header, or null if not routed by another networkrcvTimestamp
- Unix time in milliseconds since midnight 1 January 1970 UTC when message was receivedpublic MaidenheadLocatorBeacon(long now, byte msgType, double latitude, double longitude, java.lang.String comment)
now
- current time in Java milliseconds since midnight Jan 1 1970 UTCmsgType
- APRS message type character (either '[' or '>')latitude
- latitude in fractional degrees Northlongitude
- longitude in fractional degrees Eastcomment
- free-text comment StringStatusMessage
public static boolean testIfMaidenheadIdentifier(byte[] body, int offset)
body
- byte array presumably containing an ASCII APRS messageoffset
- position in the byte array where a Maidenhead identifier might startpublic static java.lang.String encodeMaidenheadIdentifier(double latitude, double longitude)
latitude
- latitude in decimal degrees Northlongitude
- longitude in decimal degrees Eastpublic byte[] getBody(boolean countTransmission, ProtocolFamily protocolId, AX25Frame frame)
getBody
in interface SendableMessage
countTransmission
- number of times the message has been transmitted.protocolId
- ProtocolFamily to generate the message inframe
- AX25Frame into which the message will be placed; the decoded message (as opposed to the byte
array encoding) should be stored into the field frame.parsedAX25MsgAX25Frame.parsedAX25Msg
public java.lang.String paramString()
paramString
in class PositionMessage
Message.toString()
public void disableForTransmit()
disableForTransmit
in interface SendableMessage
public java.util.Set<ProtocolFamily> getProtocols()
getProtocols
in class Message