jmri.jmrix.can.adapters.gridconnect.canrs
Class MergMessage

java.lang.Object
  extended by jmri.jmrix.AbstractMessage
      extended by jmri.jmrix.AbstractMRMessage
          extended by jmri.jmrix.can.adapters.gridconnect.GridConnectMessage
              extended by jmri.jmrix.can.adapters.gridconnect.canrs.MergMessage
All Implemented Interfaces:
Message

public class MergMessage
extends GridConnectMessage

Class for messages for a MERG CAN-RS hardware adapter.

The MERG varient of the GridConnect protocol encodes messages as an ASCII string of up to 24 characters of the form: :ShhhhNd0d1d2d3d4d5d6d7; hhhh is the two byte (11 useful bits) header The S indicates a standard CAN frame :XhhhhhhhhNd0d1d2d3d4d5d6d7; The X indicates an extended CAN frame Strict Gridconnect protocol allows a variable number of header characters, e.g., a header value of 0x123 could be encoded as S123 rather than S0123 or X00000123. We choose a fixed number, either 4 or 8 bytes when sending GridConnectMessages to keep MERG CAN-RS/USB adapters happy. The 11 bit standard header is left justified in these 4 bytes. The 29 bit standard header is sent as <11 bit SID><0><1><0>< 18 bit EID> N or R indicates a normal or remote frame, in position 6 or 10 d0 - d7 are the (up to) 8 data bytes

Author:
Andrew Crosland Copyright (C) 2008

Field Summary
 
Fields inherited from class jmri.jmrix.AbstractMRMessage
LONG_TIMEOUT, SHORT_TIMEOUT
 
Fields inherited from class jmri.jmrix.AbstractMessage
_dataChars, _nDataChars
 
Constructor Summary
MergMessage()
           
MergMessage(CanMessage m)
           
 
Method Summary
 void setByte(int val, int n)
          Set a byte as two ASCII hex digits Data bytes are encoded as two ASCII hex digits starting at byte 7 of the message.
 void setHeader(int header)
          Set the header in MERG format
 void setRtr(boolean rtr)
           
 
Methods inherited from class jmri.jmrix.can.adapters.gridconnect.GridConnectMessage
getElement, getNumDataElements, isExtended, setData, setElement, setExtended, setHexDigit, setNumDataElements
 
Methods inherited from class jmri.jmrix.AbstractMRMessage
addIntAsFourHex, addIntAsThree, addIntAsThreeHex, addIntAsTwoHex, getNeededMode, getOpCode, getOpCodeHex, getRetries, getTimeout, isBinary, replyExpected, setBinary, setNeededMode, setOpCode, setRetries, setTimeout, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MergMessage

public MergMessage()

MergMessage

public MergMessage(CanMessage m)
Method Detail

setHeader

public void setHeader(int header)
Set the header in MERG format

Overrides:
setHeader in class GridConnectMessage
Parameters:
header - A valid CAN header value

setRtr

public void setRtr(boolean rtr)
Overrides:
setRtr in class GridConnectMessage

setByte

public void setByte(int val,
                    int n)
Set a byte as two ASCII hex digits

Data bytes are encoded as two ASCII hex digits starting at byte 7 of the message.

Overrides:
setByte in class GridConnectMessage
Parameters:
val - the value to set
n - the index of the byte to be set


Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads