org.ka2ddo.aprs
Class MicE

java.lang.Object
  extended by org.ka2ddo.ax25.AX25Message
      extended by org.ka2ddo.aprs.Message
          extended by org.ka2ddo.aprs.PositionMessage
              extended by org.ka2ddo.aprs.MicE
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<AX25Message>, CommentedMessage, SendableMessage

public class MicE
extends PositionMessage
implements SendableMessage

This class defines a Mic-E message (APRS protocol specification chapter 10).

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.ka2ddo.ax25.AX25Message
AX25Message.Precedence
 
Field Summary
 
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
MicE(byte[] body, int offset, java.lang.String thirdParty, AX25Callsign dest, long rcvTimestamp)
          Decode a Mic-E message from a byte array,
MicE(long now)
          Alternate constructor for creating a locally-originated MicE message.
 
Method Summary
static java.lang.String encodeDestination(double latitude, double longitude, byte status, boolean isCustom)
          Build the tocall destination "callsign" for a Mic-E message, containing the latitude, the status, and part of the longitude information.
 byte[] getBody(boolean countTransmission, byte protocolId, AX25Frame frame)
          Get an instance of this message, suitable for transmitting.
 AX25Message.Precedence getPrecedence()
          Report the traffic-handling precedence for this message instance.
 java.lang.String getRadioModel()
          Get the model string (if any) decoded from the Mic-E model type codes in the free-text field.
 java.lang.String paramString()
          Descriptive text about this message, to be included in the toString() method's response.
 
Methods inherited from class org.ka2ddo.aprs.PositionMessage
appendAreaParameters, appendRepeaterParameters, appendSignpostParameters, bodyEquals, createObjectFromThisPosition, decodeDataExtension, decodeLatitude, decodeLongitude, decodeOnlyLatitude, decodeOnlyLongitude, encodeLatitudeCompressed, encodeLatitudePlainText, encodeLongitudeCompressed, encodeLongitudePlainText, extractCompressedLatitude, extractCompressedLongitude, extractLatitude, extractLongitude, getAbc, getAltitude, getAltitudeUnit, getCustom, getLatitude, getLatitudeAccuracy, getLongitude, hasPosition, isEnabled, 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, getRcptTime, getTimestamp, hashCode, hasThisFirstDigi, indexOf, indexOf, isInvalid, onlyDigits, onlyDigits, onlyDigitsOrPeriod, onlyDigitsOrSpace, onlyDigitsPlus, onlyPeriods, setAx25Frame, setInvalid, setOriginatingCallsign, setRcptTime, setTimestamp, 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, isEnabled
 

Constructor Detail

MicE

public MicE(byte[] body,
            int offset,
            java.lang.String thirdParty,
            AX25Callsign dest,
            long rcvTimestamp)
Decode a Mic-E message from a byte array,

Parameters:
body - byte array containing the Mic-E message
offset - index into the byte array where the Mic-E message starts
thirdParty - third-party routing path, or null if not routed from another network
dest - destination callsign (to extract part of the position and status information from)
rcvTimestamp - time in Java milliseconds since 1 Jan 1970 UTC when this message was received

MicE

public MicE(long now)
Alternate constructor for creating a locally-originated MicE message.

Parameters:
now - current time in milliseconds since midnight Jan 1 1970 UTC
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()

getRadioModel

public java.lang.String getRadioModel()
Get the model string (if any) decoded from the Mic-E model type codes in the free-text field.

Returns:
model String, or null if no known model

getPrecedence

public AX25Message.Precedence getPrecedence()
Report the traffic-handling precedence for this message instance.

Overrides:
getPrecedence in class AX25Message
Returns:
Precedence level for this Message

encodeDestination

public static java.lang.String encodeDestination(double latitude,
                                                 double longitude,
                                                 byte status,
                                                 boolean isCustom)
Build the tocall destination "callsign" for a Mic-E message, containing the latitude, the status, and part of the longitude information.

Parameters:
latitude - latitude in fractional degrees North
longitude - longitude in fractional degrees East
status - Mic-E status code in the range 0 to 7
isCustom - boolean true if this is a custom status code instead of a standard status code
Returns:
tocall destination callsign String to use with transmitted Mic-E message

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 the message has been transmitted.
protocolId - AX.25 protocol ID to generate the message in, or 0 for default protocol; currently, only NOLVL3 (APRS) and OPENTRAC are 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.parsedAX25Msg
Returns:
byte array of message, or null if message body cannot be generated in specified protocol, or retransmission count has been exceeded.
See Also:
AX25Frame.parsedAX25Msg