public class TelemetryMessage extends Message implements SendableMessage
AX25Message.Precedence
Modifier and Type | Field and Description |
---|---|
float[] |
analogValues
A 5-element array of the 5 non-boolean analog values in the telemetry message.
|
int |
bitmask
A bitmask containing the 8 boolean digits from the telemetry message.
|
static int |
MIC
Constant representing the decoded representation of the "MIC" sequence "number".
|
int |
sequenceNum
The extracted sequence number of the telemetry data.
|
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 |
---|
TelemetryMessage()
Create a TelemetryMessage suitable for transmission to another station.
|
TelemetryMessage(byte[] body,
int offset,
java.lang.String tp,
long rcvTimestamp)
Constructor for a TelemetryMessage from an AX25Frame.
|
TelemetryMessage(PositionMessage pm,
int startPos,
int endPos)
Construct a TelemetryMessage based on Base91 Telemetry data extracted from a PositionMessage's comment, per the proposed
extension documented in http://he.fi/doc/aprs-base91-comment-telemetry.txt.
|
Modifier and Type | Method and Description |
---|---|
boolean |
bodyEquals(AX25Message o)
Compare the contents of the body of the message, reporting if they match.
|
void |
disableForTransmit()
Specify that message should no longer be transmitted.
|
java.lang.String |
getBase91Encoding()
Encode this telemetry data in the format for base-91 appending to the comment of an APRS
PositionReport, per http://he.fi/doc/aprs-base91-comment-telemetry.txt.
|
byte[] |
getBody(boolean countTransmission,
ProtocolFamily protocolId,
AX25Frame frame)
Get an instance of this message, suitable for transmitting.
|
boolean |
isEnabled()
Test if message should still be transmitted.
|
java.lang.String |
paramString()
Descriptive text about this message, to be included in the toString() method's response.
|
compareTo, decodeDatestamp, decodeHurricaneParams, decodeTimestamp, decodeWeatherParams, decodeWeatherParams, dup, encodeTimestamp, extractComment, extractComment, extractSymbol, formatBody, getComment, getExtensionString, getMsgType, getPrecedence, getProtocols, 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, hasPosition, 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
public static final int MIC
public int sequenceNum
public float[] analogValues
public int bitmask
public TelemetryMessage()
public TelemetryMessage(byte[] body, int offset, java.lang.String tp, long rcvTimestamp)
body
- byte array containing the messageoffset
- index into the byte array where the telemetry message text startstp
- String of third-party routing data (may be null)rcvTimestamp
- time in Java milliseconds since Jan 1 1970 UTC when this message was receivedpublic TelemetryMessage(PositionMessage pm, int startPos, int endPos)
pm
- PositionMessage containing the base-91 telemetry datastartPos
- index into the PositionMessage's comment where the telemetry data starts (after the '|' character)endPos
- index into the PositionMessage's comment where the telemetry data ends (the closing '|' character)public java.lang.String paramString()
paramString
in class Message
Message.toString()
,
Message.getComment()
public java.lang.String getBase91Encoding() throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
- if any value of telemetry message is out of range to fit in base-91 encodingpublic boolean bodyEquals(AX25Message o)
bodyEquals
in class Message
o
- another AX25Message to compare againstpublic 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 in; currently,
only APRS is supported.frame
- 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 boolean isEnabled()
isEnabled
in interface SendableMessage
public void disableForTransmit()
disableForTransmit
in interface SendableMessage