def write_4byte_data(self, data): """write all floats/ints to the serial port""" if not self.data_port: return if not self.data_port.isOpen(): return if self.verb > 4: print('++ writing data to serial port:', data) dstring = struct.pack('f'*len(data), *data) if self.swap: UTIL.swap4(dstring) if self.verb > 5: print('++ hex data to serial port:', UTIL.data_to_hex_str(self.bytes_to_ord(dstring))) self.data_port.write(dstring) del(dstring) return 0
def read_ints_from_socket(self, nvals): """try to read nvals (4-byte) integers from data socket, possibly byte-swapping return a list of integers (None on error)""" if nvals <= 0: return [] data = self.read_nbytes_from_data_socket(nvals*4) # read all bytes if not data: if self.verb > 0: print("** failed to read %d int(s)" % nvals) return None # swap one value at a time vals = [] if self.swap: UTIL.swap4(data) vals = list(struct.unpack('i'*nvals,data)) del(data) if self.verb > 3: print("++ read %d ints: %s" % (nvals, vals)) return vals