def _sync(self): time.sleep(.05) self.send_cmd(uCAMIII_codes.sync()) read = self.ser.read(6) print(read) if (self.equals( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_SYNC, '00'), read)): if (self.equals(uCAMIII_codes.sync(), self.ser.read(6))): self.send_cmd( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_SYNC, 'FF')) return True return False
def get_picture(self, picType='jpeg'): if picType is 'jpeg': picType_cmd = uCAMIII_codes.uCamIII_TYPE_JPEG elif picType is 'raw': picType_cmd = uCAMIII_codes.uCamIII_TYPE_RAW elif picType is 'snap': picType_cmd = uCAMIII_codes.uCamIII_TYPE_SNAPSHOT else: print('Please enter correct picture type') sys.exit(1) self.send_cmd(uCAMIII_codes.get_pic(picType_cmd)) assert self.equals(uCAMIII_codes, self.response(6)) data = self.response(6) assert self.equals(uCAMIII_codes.data(picType_cmd, '..', '..', '..'), data) img_size = unpack('<I', (data[-3:] + b'\x00'))[0] self.send_cmd(uCAMIII_codes.ack_cmd('00', '00')) return img_size
def write_pic(self, img_size): num_pkgs = 1 read = self.response(4800) print(hexlify(read)) gray = np.array(read).reshape(60, 80) img = Image.fromarray(gray) self.send_cmd( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_DATA, '00', '01', '00')) return img
def snapshot(self, snapType='jpeg'): if snapType is 'jpeg': snap_cmd = uCAMIII_codes.uCamIII_SNAP_JPEG elif snapType is 'raw': snap_cmd = uCAMIII_codes.uCamIII_SNAP_RAW else: print('Please enter correct snapshot type') sys.exit(1) self.send_cmd(uCAMIII_codes.snapshot(snap_cmd, '00', '00')) assert self.equals( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_SNAPSHOT, 'ff'), self.response(6))
def init(self, picType='jpeg', rawRes='80x60', jpegRes='160x128'): if picType is 'jpeg': picCmd = uCAMIII_codes.uCamIII_COMP_JPEG elif picType is 'raw': picCmd = uCAMIII_codes.uCamIII_RAW_8BIT elif picType is 'raw16': picCmd = uCAMIII_codes.uCamIII_RAW_16BIT_RGB565 elif picType is 'rawCy': picCmd = uCAMIII_codes.uCamIII_RAW_16BIT_CRYCBY else: print('Please enter correct picture type') sys.exit(1) if rawRes is '80x60': rawRes_cmd = uCAMIII_codes.uCamIII_80x60 elif rawRes is '160x120': rawRes_cmd = uCAMIII_codes.uCamIII_160x120 elif rawRes is '128x128': rawRes_cmd = uCAMIII_codes.uCamIII_128x128 elif rawRes is '128x96': rawRes_cmd = uCAMIII_codes.uCamIII_128x96 else: print('Please enter correct raw resolution') sys.exit(1) if jpegRes is '160x128': jpegRes_cmd = uCAMIII_codes.uCamIII_160x128 elif jpegRes is '320x240': jpegRes_cmd = uCAMIII_codes.uCamIII_320x240 elif jpegRes is '640x480': jpegRes_cmd = uCAMIII_codes.uCamIII_640x480 init_cmd = uCAMIII_codes.init_cmd(picCmd, rawRes_cmd, jpegRes_cmd) self.send_cmd(init_cmd) read = self.response(6) assert self.equals( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_INIT, 'FF'), read)
def set_pkg_size(): self.send_cmd(uCAMIII_codes.set_pkg_size('02', '00')) assert self.equals( uCAMIII_codes.ack_cmd(uCAMIII_codes.uCamIII_CMD_SET_PACKSIZE, 'FF'), self.response(6))