Exemplo n.º 1
0
 def raw_i2c_write_and_read(self, data, nread):
   data = to_bytes(data)
   cmd = struct.pack('>BHH', 0x08, len(data), nread) + data
   self.serial.send(cmd)
   res = self.serial.recv_fixed_size(1)
   if res[0] == 0:
     return None
   return self.serial.recv_fixed_size(nread)
Exemplo n.º 2
0
 def spi_write_and_read_fast(self, write=b'', nread=0):
   cmd = 0b00000100
   write = to_bytes(write)
   full_cmd = struct.pack('>BHH', cmd, len(write), nread) + write
   self.serial.send(full_cmd)
   res = self.serial.recv_fixed_size(1)
   if res[0] == 0:
     return None
   return self.serial.recv_fixed_size(nread)
Exemplo n.º 3
0
 def spi_write_and_read(self, write=None, nread=None):
   cmd = 0b00010000
   if write is None:
     write=bytearray([0]*nread)
   write = to_bytes(write)
   if nread is None:
     nread = len(write)
   assert nread >= 1  and nread <=16, nread
   cmd += nread - 1
   self.serial.send(bytearray([cmd] + write))
   return self.serial.recv_fixed_size(nread)
Exemplo n.º 4
0
 def i2c_write(self, addr, data):
   write_cmd = self.i2c_write_addr(addr) + to_bytes(data)
   if self.raw_i2c_write_and_read(write_cmd, 0) is None:
     return False
   return True
Exemplo n.º 5
0
 def normalize_cmd(self, cmd):
   return to_bytes(cmd)
Exemplo n.º 6
0
 def tobytes(self):
     self.v = to_bytes(self.v)
     return self