private byte readByteFromSerialBuffer() throws InterruptedException, ShieldFrameNotComplete {
   if (ShieldFrameTimeout != null && ShieldFrameTimeout.isTimeout())
     throw new ShieldFrameNotComplete();
   isSerialBufferWaiting = true;
   byte temp = serialBuffer.take();
   if (ShieldFrameTimeout != null) ShieldFrameTimeout.resetTimer();
   return temp;
 }