'Read size bytes from the serial port. If a timeout is set it may
return less characters as requested. With no timeout it will block
until the requested number of bytes is read.'

def read(self, size=1):

    if (not self.sPort):
        raise portNotOpenError
    read = bytearray()
    if (size > 0):
        while (len(read) < size):
            x = self._instream.read()
            if (x == (-1)):
                if (self.timeout >= 0):
                    break
            else:
                read.append(x)
    return bytes(read)
