コード例 #1
0
 public void testBytesToString() {
   SerialMessage m = new SerialMessage();
   m.setOpCode(0x81);
   m.setElement(1, (byte) 0x02);
   m.setElement(2, (byte) 0xA2);
   m.setElement(3, (byte) 0x00);
   Assert.assertEquals("string compare ", "81 02 A2 00", m.toString());
 }
コード例 #2
0
 public void testSetParity4() {
   SerialMessage m = new SerialMessage();
   m.setElement(0, (byte) 226);
   m.setElement(1, (byte) 15);
   m.setElement(2, (byte) 226);
   m.setElement(3, (byte) 84);
   m.setParity();
   Assert.assertEquals("string compare ", "E2 0F E2 54", m.toString());
 }
コード例 #3
0
 public void testSetParity1() {
   SerialMessage m = new SerialMessage();
   m.setElement(0, (byte) 129);
   m.setElement(1, (byte) 90);
   m.setElement(2, (byte) 129);
   m.setElement(3, (byte) (31 & 0xF0));
   m.setParity();
   Assert.assertEquals("string compare ", "81 5A 81 1F", m.toString());
 }
コード例 #4
0
 public void testSetParity7() {
   // from doc page
   SerialMessage m = new SerialMessage();
   m.setElement(0, (byte) 129);
   m.setElement(1, (byte) 90);
   m.setElement(2, (byte) 129);
   m.setElement(3, (byte) 31);
   m.setParity();
   Assert.assertEquals("string compare ", "81 5A 81 1F", m.toString());
 }
コード例 #5
0
 public void testSetParity6() {
   // special req software version
   SerialMessage m = new SerialMessage();
   m.setElement(0, (byte) 0xE2);
   m.setElement(1, (byte) 119);
   m.setElement(2, (byte) 0xE2);
   m.setElement(3, (byte) 119);
   m.setParity();
   Assert.assertEquals("string compare ", "E2 77 E2 77", m.toString());
 }
コード例 #6
0
 public void testSetParity5() {
   // observed error message
   SerialMessage m = new SerialMessage();
   m.setElement(0, (byte) 0x80);
   m.setElement(1, (byte) 98);
   m.setElement(2, (byte) 0x80);
   m.setElement(3, (byte) 0x10);
   m.setParity();
   Assert.assertEquals("string compare ", "80 62 80 10", m.toString());
 }
コード例 #7
0
  /** Handles initialization, output and polling from within the running thread */
  protected synchronized AbstractMRMessage pollMessage() {
    // ensure validity of call
    if (getNumNodes() <= 0) {
      return null;
    }

    // move to a new node
    curSerialNodeIndex++;
    if (curSerialNodeIndex >= getNumNodes()) {
      curSerialNodeIndex = 0;
    }
    // ensure that each node is initialized
    if (getMustInit(curSerialNodeIndex)) {
      setMustInit(curSerialNodeIndex, false);
      AbstractMRMessage m = getNode(curSerialNodeIndex).createInitPacket();
      if (m != null) { // SECSI boards don't need this yet
        log.debug("send init message: " + m);
        m.setTimeout(2000); // wait for init to finish (milliseconds)
        return m;
      } // else fall through to continue
    }
    // send Output packet if needed
    if (getNode(curSerialNodeIndex).mustSend()) {
      log.debug("request write command to send");
      AbstractMRMessage m = getNode(curSerialNodeIndex).createOutPacket();
      getNode(curSerialNodeIndex).resetMustSend();
      m.setTimeout(500);
      return m;
    }
    // poll for Sensor input
    if (getNode(curSerialNodeIndex).getSensorsActive()) {
      // Some sensors are active for this node, issue poll
      SerialMessage m = SerialMessage.getPoll(getNode(curSerialNodeIndex).getNodeAddress());
      if (curSerialNodeIndex >= getNumNodes()) {
        curSerialNodeIndex = 0;
      }
      return m;
    } else {
      // no Sensors (inputs) are active for this node
      return null;
    }
  }