Class Z21Reply

All Implemented Interfaces:
Message

public class Z21Reply extends AbstractMRReply
Class for replies in the z21/Z21 protocol.

Replies are of the format: 2 bytes length 2 bytes opcode n bytes data

numeric data is sent in little endian format.

  • Constructor Details

    • Z21Reply

      public Z21Reply()
      Create a new one.
    • Z21Reply

      public Z21Reply(byte[] a, int l)
      This ctor interprets the byte array as a sequence of characters to send.
      Parameters:
      a - Array of bytes to send.
      l - length of reply.
  • Method Details

    • setElement

      public void setElement(int n, int v)
      Description copied from class: AbstractMessage
      Set a single Data Element at a particular index.
      Specified by:
      setElement in interface Message
      Overrides:
      setElement in class AbstractMRReply
      Parameters:
      n - index of element.
      v - value of element.
    • getElementBCD

      public Integer getElementBCD(int n)
      Get an integer representation of a BCD value.
      Parameters:
      n - byte in message to convert
      Returns:
      Integer value of BCD byte.
    • setOpCode

      public void setOpCode(int i)
      Description copied from class: AbstractMRReply
      Set the OpCode. Sets Element 0 to character value of integer.
      Overrides:
      setOpCode in class AbstractMRReply
      Parameters:
      i - Opcode value.
    • getOpCode

      public int getOpCode()
      Description copied from class: AbstractMRReply
      Get the OpCode.
      Overrides:
      getOpCode in class AbstractMRReply
      Returns:
      value of Element 0.
    • setLength

      public void setLength(int i)
    • getLength

      public int getLength()
    • skipPrefix

      protected int skipPrefix(int index)
      Specified by:
      skipPrefix in class AbstractMRReply
    • toMonitorString

      Returns:
      a human-readable representation of the message.
    • isXPressNetTunnelMessage

    • getXNetReply

    • isRailComDataChangedMessage

    • getNumRailComDataEntries

      Returns:
      the number of RailCom entries in this message. the returned value is in the 0 to 19 range.
    • getRailComLocoAddress

      Get a locomotive address from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the locomotive address for the specified entry.
    • getRailComRcvCount

      public int getRailComRcvCount(int n)
      Get the receive counter from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the receive counter for the specified entry.
    • getRailComErrCount

      public int getRailComErrCount(int n)
      Get the error counter from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the error counter for the specified entry.
    • getRailComSpeed

      public int getRailComSpeed(int n)
      Get the speed value from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the error counter for the specified entry.
    • getRailComOptions

      public int getRailComOptions(int n)
      Get the options value from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the options for the specified entry.
    • getRailComQos

      public int getRailComQos(int n)
      Get the Quality of Service value from an entry in a railcom message.
      Parameters:
      n - the entry to get the address from.
      Returns:
      the Quality of Service value for the specified entry.
    • isSystemDataChangedReply

    • getSystemDataMainCurrent

      Get the Main Track Current from the SystemStateDataChanged message.
      Returns:
      the current in mA.
    • getSystemDataProgCurrent

      Get the Programming Track Current from the SystemStateDataChanged message.
      Returns:
      the current in mA.
    • getSystemDataFilteredMainCurrent

      Get the Filtered Main Track Current from the SystemStateDataChanged message.
      Returns:
      the current in mA.
    • getSystemDataTemperature

      Get the Temperature from the SystemStateDataChanged message.
      Returns:
      the current in degrees C.
    • getSystemDataSupplyVoltage

      Get the Supply Voltage from the SystemStateDataChanged message.
      Returns:
      the current in mV.
    • getSystemDataVCCVoltage

      Get the VCC (and track) Voltage from the SystemStateDataChanged message.
      Returns:
      the current in mV.
    • isLocoNetTunnelMessage

    • isLocoNetDispatchMessage

    • isLocoNetDetectorMessage

    • getLocoNetMessage

    • isRMBusDataChangedReply

    • isCanDetectorMessage

    • canDetectorMessageType

      public int canDetectorMessageType()
      Returns:
      the can Detector Message type or -1 if not a can detector message.
    • isCanSensorMessage

      public boolean isCanSensorMessage()
      Returns:
      true if the reply is for a CAN detector and the type is 0x01
    • isCanReporterMessage

      public boolean isCanReporterMessage()
      Returns:
      true if the reply is for a CAN detector and the type is 0x01