Пример #1
0
  @Override
  public boolean isInitialized(IByteQueue byteQueue) {
    if (byteQueue.size() < 1) return false;

    byte firstByteInQueue = byteQueue.deque();

    return firstByteInQueue == ACK;
  }
Пример #2
0
  @Override
  public IByteQueue getByteQueueForReset() {
    IByteQueue byteQueueForReset = new ByteQueue();

    byteQueueForReset.enque(0x04);

    return byteQueueForReset;
  }
Пример #3
0
  @Override
  public boolean isReseted(IByteQueue byteQueue) {
    if (byteQueue.size() < 2) return false;

    byte firstByteInQueue = byteQueue.deque();
    byte secondByteInQueue = byteQueue.deque();

    return firstByteInQueue == ACK && secondByteInQueue == HEALTH_PING;
  }
Пример #4
0
  @Override
  public IByteQueue getByteQueueForInit() {
    IByteQueue byteQueueForInit = new ByteQueue();

    byteQueueForInit.enque(0x16);
    byteQueueForInit.enque(0x00);
    byteQueueForInit.enque(0x00);

    return byteQueueForInit;
  }
Пример #5
0
 private void ensureNextByteIs(byte expected) {
   byte nextByte = byteQueueToParse.deque();
   if (nextByte != expected) {
     throw new RuntimeException(
         String.format("Parse error. Expected: %02X, Found: %02X", expected, nextByte));
   }
 }
Пример #6
0
  private byte[] parseDataBytes(int dataSize) {
    byte[] dataBytes = new byte[dataSize];

    for (int pos = 0; pos < dataSize; pos++) {
      dataBytes[pos] = byteQueueToParse.deque();
    }

    return dataBytes;
  }
Пример #7
0
  private byte getChecksumOf(IByteQueue byteQueue) {
    Byte result = 0x00;

    byte[] bytes = byteQueue.toByteArray();

    for (int pos = 0; pos < bytes.length; pos++) {
      if (pos > 0) {
        result = (byte) (result + bytes[pos]);
      }
    }

    return result;
  }
Пример #8
0
 private void addCommandRequestTo(IByteQueue byteQueue, byte command, IByteQueue parameterBytes) {
   byteQueue.enque(START_BYTE);
   byteQueue.enque(getRequestSize(parameterBytes));
   byteQueue.enque(REQUEST_TELEGRAM_TYPE);
   byteQueue.enque(command);
   byteQueue.enqueAll(parameterBytes);
   byteQueue.enque(getChecksumOf(byteQueue));
 }
Пример #9
0
 private byte expectedLength() {
   return (byte) (byteQueueToParse.size() - 2);
 }
Пример #10
0
  private int parseAddress() {
    byte highByte = byteQueueToParse.deque();
    byte lowByte = byteQueueToParse.deque();

    return getAddressFrom(highByte, lowByte);
  }
Пример #11
0
 private int parseDataSize() {
   return byteQueueToParse.deque();
 }
Пример #12
0
  private IByteQueue getByteQueueForCalcCheckSum() {
    byte[] allBytesFromQueue = byteQueueToParse.toByteArray();

    return new ByteQueue(getPartOfArray(allBytesFromQueue, 1, allBytesFromQueue.length - 1));
  }
Пример #13
0
 private byte getRequestSize(IByteQueue parameterBytes) {
   return (byte) (parameterBytes.size() + 2);
 }