package com.roboclub.robobuggy.serial; import com.roboclub.robobuggy.nodes.sensors.RBSMConfigReader; /** * Class representing a robobuggy serial message */ public class RBSerialMessage { private int headerNumber; private int dataBytes; /** * @param headerName the name of the header as it appears in the text file * @return the byte for that header name */ public static synchronized byte getHeaderByte(String headerName) { return RBSMConfigReader.getInstance().getHeaders().get(headerName).getAsByte(); } /** * Construct a new {@link RBSerialMessage} object * * @param headerName byte of the RBSM message header * @param data 4 bytes of the RBSM message payload */ public RBSerialMessage(String headerName, int data) { headerNumber = RBSMConfigReader.getInstance().getHeaders().get(headerName).getAsByte(); dataBytes = data; } /** * Constructs a direct {@link RBSerialMessage} object * Rather than use the existing headers, this is meant for constructing from peel * * @param header the direct header * @param data the data */ public RBSerialMessage(byte header, int data) { headerNumber = header; dataBytes = data; } /** * Returns the header int of the {@link RBSerialMessage} * * @return the header int of the {@link RBSerialMessage} */ public int getHeaderNumber() { return headerNumber; } /** * Returns the payload bytes of the {@link RBSerialMessage} * * @return the payload bytes of the {@link RBSerialMessage} */ public int getDataWord() { return dataBytes; } }