- #chunks, rest = divmod(end - start, self._spi.PAYLOAD_MAX_LENGTH)
- #for i in range(chunks):
- # chunk_start = start + i * self._spi.PAYLOAD_MAX_LENGTH
- # chunk_end = chunk_start + self._spi.PAYLOAD_MAX_LENGTH
- # self._port.write(buf[chunk_start:chunk_end])
- #if rest:
- # self._port.write(buf[-1*rest:])
+ chunks, rest = divmod(end - start, self.PAYLOAD_MAX_LENGTH)
+ for i in range(chunks):
+ chunk_start = start + i * self.PAYLOAD_MAX_LENGTH
+ chunk_end = chunk_start + self.PAYLOAD_MAX_LENGTH
+ buffer_data = buf[chunk_start:chunk_end]
+ self._nova.clearBuffer(0)
+ self._nova.writeToBuffer(0, 0, buffer_data)
+ self._nova.transferBufferSPI(0, chunk_end - chunk_start + 1)
+ if rest:
+ buffer_data = buf[-1 * rest :]
+ self._nova.clearBuffer(0)
+ self._nova.writeToBuffer(0, 0, buffer_data)
+ self._nova.transferBufferSPI(0, rest)