Package jmri.jmrix.can
Interface CanFrame
-
- All Known Subinterfaces:
CanMutableFrame
- All Known Implementing Classes:
CanMessage,CanReply
@Immutable public interface CanFrame
Base interface for immutable messages in a CANbus based message/reply protocol.It is expected that any CAN based system will be based upon basic CAN concepts such as ID/header (standard or extended), Normal and RTR frames and a data field.
"header" refers to the full 11 or 29 bit header; which mode is separately set via the "extended" parameter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default voidappendHexElements(java.lang.StringBuilder sb)Append the hex value of the data elements to a StringBuilder.default booleandataFramesEqual(CanFrame a, CanFrame b)Compare 2 CanFrame data elements for equality.default booleanextendedOrRtr()Check if the CAN Frame is extended OR RtR.intgetElement(int n)Get a single data byte in the frame.intgetHeader()Get the CAN Frame header.intgetNumDataElements()Get number of data bytes in the frame.default java.lang.StringgetToString()Get formatted toString.default booleanisEqual(java.lang.Object a, java.lang.Object b)Compare 2 CanFrames for equality.booleanisExtended()Get if the CAN Frame has an extended header.booleanisRtr()Get if the CAN Frame is an RTR Frame.default java.lang.StringmonString()Get formatted monitor String.
-
-
-
Method Detail
-
getHeader
int getHeader()
Get the CAN Frame header.- Returns:
- header value
-
isExtended
boolean isExtended()
Get if the CAN Frame has an extended header.- Returns:
- true if extended, else false
-
isRtr
boolean isRtr()
Get if the CAN Frame is an RTR Frame.- Returns:
- true if RTR, else false
-
getNumDataElements
int getNumDataElements()
Get number of data bytes in the frame.- Returns:
- 0-8
-
getElement
int getElement(int n)
Get a single data byte in the frame.- Parameters:
n- the index, 0-7- Returns:
- the data element value
-
monString
default java.lang.String monString()
Get formatted monitor String. Includes if Frame is Extended. Header value at start. All values hex format. Only valid data elements are included.- Returns:
- eg. "(1A ext) 81 EA 83 00 12"
-
getToString
default java.lang.String getToString()
Get formatted toString. Does NOT include if Frame is Extended. All values hex format. Only valid data elements are included.- Returns:
- eg. "[12] 81 EA 83"
-
appendHexElements
default void appendHexElements(java.lang.StringBuilder sb)
Append the hex value of the data elements to a StringBuilder.- Parameters:
sb- to append the hex values to
-
isEqual
default boolean isEqual(java.lang.Object a, java.lang.Object b)
Compare 2 CanFrames for equality.- Parameters:
a- CanFrame to testb- CanFrame to test- Returns:
- true if RTR, Extended, Header and Data elements match, else false
-
dataFramesEqual
default boolean dataFramesEqual(CanFrame a, CanFrame b)
Compare 2 CanFrame data elements for equality.- Parameters:
a- CanFrame to testb- CanFrame to test- Returns:
- true if Data elements match, else false
-
extendedOrRtr
default boolean extendedOrRtr()
Check if the CAN Frame is extended OR RtR.- Returns:
- true if either extended or RtR, else false
-
-