def camera_initFromFile(fialeName): global cfg,handle,Width,Height,color_mode #load config file config = json.load(open(fialeName,"r")) camera_parameter = config["camera_parameter"] Width = int(camera_parameter["SIZE"][0]) Height = int(camera_parameter["SIZE"][1]) BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 FmtMode = int(camera_parameter["FORMAT"][0]) color_mode = (int)(camera_parameter["FORMAT"][1]) rospy.loginfo("color mode %d",color_mode) I2CMode = camera_parameter["I2C_MODE"] I2cAddr = int(camera_parameter["I2C_ADDR"],16) TransLvl = int(camera_parameter["TRANS_LVL"]) cfg = {"u32CameraType":0x4D091031, "u32Width":Width,"u32Height":Height, "usbType":0, "u8PixelBytes":ByteLength, "u16Vid":0, "u32Size":0, "u8PixelBits":BitWidth, "u32I2cAddr":I2cAddr, "emI2cMode":I2CMode, "emImageFmtMode":FmtMode, "u32TransLvl":TransLvl } ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) if ret == 0: usb_version = rtn_cfg['usbType'] rospy.loginfo("USB VERSION:%d",usb_version) #config board param configBoard(config["board_parameter_dev2"]) writeSensorRegs(config["register_parameter"]) rtn_val,datas = ArducamSDK.Py_ArduCam_readUserData(handle,0x400-16, 16) rospy.loginfo("Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c",datas[0],datas[1],datas[2],datas[3], datas[4],datas[5],datas[6],datas[7], datas[8],datas[9],datas[10],datas[11]) return True else: rospy.logfatal("Device open fail (rtn_val = %d)",ret) return False
def camera_initFromFile(fialeName, index): global cfg, Width, Height, color_mode, save_raw # load config file config = json.load(open(fialeName, "r")) camera_parameter = config["camera_parameter"] Width = int(camera_parameter["SIZE"][0]) Height = int(camera_parameter["SIZE"][1]) BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 save_raw = True FmtMode = int(camera_parameter["FORMAT"][0]) color_mode = (int)(camera_parameter["FORMAT"][1]) I2CMode = camera_parameter["I2C_MODE"] I2cAddr = int(camera_parameter["I2C_ADDR"], 16) TransLvl = int(camera_parameter["TRANS_LVL"]) cfg = {"u32CameraType": 0x4D091031, "u32Width": Width, "u32Height": Height, "usbType": 0, "u8PixelBytes": ByteLength, "u16Vid": 0, "u32Size": 0, "u8PixelBits": BitWidth, "u32I2cAddr": I2cAddr, "emI2cMode": I2CMode, "emImageFmtMode": FmtMode, "u32TransLvl": TransLvl} # ArducamSDK. ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg, index) # ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) if ret == 0: # ArducamSDK.Py_ArduCam_writeReg_8_8(handle,0x46,3,0x00) usb_version = rtn_cfg['usbType'] # print "USB VERSION:",usb_version # config board param configBoard(handle, config["board_parameter"]) if usb_version == ArducamSDK.USB_1 or usb_version == ArducamSDK.USB_2: configBoard(handle, config["board_parameter_dev2"]) if usb_version == ArducamSDK.USB_3: configBoard(handle, config["board_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: configBoard(handle, config["board_parameter_dev3_inf2"]) writeSensorRegs(handle, config["register_parameter"]) if usb_version == ArducamSDK.USB_3: writeSensorRegs(handle, config["register_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: writeSensorRegs(handle, config["register_parameter_dev3_inf2"]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData(handle, 0x400 - 16, 16) print "Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c" % (datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11]) return handle else: print "open fail,ret_val = ", ret return None
def camera_initFromFile(fialeName): global cfg,handle,Width,Height,color_mode #load config file config = json.load(open(fialeName,"r")) camera_parameter = config["camera_parameter"] Width = int(camera_parameter["SIZE"][0]) Height = int(camera_parameter["SIZE"][1]) BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 FmtMode = int(camera_parameter["FORMAT"][0]) color_mode = (int)(camera_parameter["FORMAT"][1]) print "color mode",color_mode I2CMode = camera_parameter["I2C_MODE"] I2cAddr = int(camera_parameter["I2C_ADDR"],16) TransLvl = int(camera_parameter["TRANS_LVL"]) cfg = {"u32CameraType":0x4D091031, "u32Width":Width,"u32Height":Height, "usbType":0, "u8PixelBytes":ByteLength, "u16Vid":0, "u32Size":0, "u8PixelBits":BitWidth, "u32I2cAddr":I2cAddr, "emI2cMode":I2CMode, "emImageFmtMode":FmtMode, "u32TransLvl":TransLvl } # ArducamSDK. if serial_selection == None: ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) else: index = None num_cam, cam_list, cam_serial = ArducamSDK.Py_ArduCam_scan() for i in range(num_cam): datas = cam_serial[i] camera_serial = "%c%c%c%c-%c%c%c%c-%c%c%c%c"%(datas[0],datas[1],datas[2],datas[3], datas[4],datas[5],datas[6],datas[7], datas[8],datas[9],datas[10],datas[11]) if camera_serial == str(serial_selection): print("Arducam " + str(serial_selection) + " found") index = i break if index == None: print("Arducam " + str(serial_selection) + " not found") exit() time.sleep(3) ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg,i) if ret == 0: usb_version = rtn_cfg['usbType'] print "USB VERSION:",usb_version #config board param configBoard(config["board_parameter"]) if usb_version == ArducamSDK.USB_1 or usb_version == ArducamSDK.USB_2: configBoard(config["board_parameter_dev2"]) if usb_version == ArducamSDK.USB_3: configBoard(config["board_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: configBoard(config["board_parameter_dev3_inf2"]) writeSensorRegs(config["register_parameter"]) if usb_version == ArducamSDK.USB_3: writeSensorRegs(config["register_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: writeSensorRegs(config["register_parameter_dev3_inf2"]) rtn_val,datas = ArducamSDK.Py_ArduCam_readUserData(handle,0x400-16, 16) print "Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c"%(datas[0],datas[1],datas[2],datas[3], datas[4],datas[5],datas[6],datas[7], datas[8],datas[9],datas[10],datas[11]) return True else: print "open fail,rtn_val = ",ret return False
def camera_initFromFile(self, fileName): #global cfg,Width,Height,color_mode #load config file config = json.load(open(fileName, "r")) camera_parameter = config["camera_parameter"] self.width = int(camera_parameter["SIZE"][0]) self.height = int(camera_parameter["SIZE"][1]) self.BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if self.BitWidth > 8 and self.BitWidth <= 16: ByteLength = 2 save_raw = True FmtMode = int(camera_parameter["FORMAT"][0]) self.color_mode = (int)(camera_parameter["FORMAT"][1]) I2CMode = camera_parameter["I2C_MODE"] I2cAddr = int(camera_parameter["I2C_ADDR"], 16) TransLvl = int(camera_parameter["TRANS_LVL"]) print(self.width, "x", self.height) cfg = { "u32CameraType": 0x4D091031, "u32Width": self.width, "u32Height": self.height, "usbType": 0, "u8PixelBytes": ByteLength, "u16Vid": 0, "u32Size": 0, "u8PixelBits": self.BitWidth, "u32I2cAddr": I2cAddr, "emI2cMode": I2CMode, "emImageFmtMode": FmtMode, "u32TransLvl": TransLvl } ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg, self.indextouse) if ret != 0: print("open fail,ret_val = ", ret) return None usb_version = rtn_cfg['usbType'] #config board param self.configBoard(handle, config["board_parameter"]) if usb_version == ArducamSDK.USB_1 or usb_version == ArducamSDK.USB_2: self.configBoard(handle, config["board_parameter_dev2"]) if usb_version == ArducamSDK.USB_3: self.configBoard(handle, config["board_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: self.configBoard(handle, config["board_parameter_dev3_inf2"]) self.writeSensorRegs(handle, config["register_parameter"]) if usb_version == ArducamSDK.USB_3: self.writeSensorRegs(handle, config["register_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: self.writeSensorRegs(handle, config["register_parameter_dev3_inf2"]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData( handle, 0x400 - 16, 16) return handle
def camera_initFromFile(fialeName): global cfg, handle, Width, Height, color_mode #load config file config = json.load(open(fialeName, "r")) camera_parameter = config["camera_parameter"] Width = int(camera_parameter["SIZE"][0]) Height = int(camera_parameter["SIZE"][1]) BitWidth = camera_parameter["BIT_WIDTH"] FmtMode = int(camera_parameter["FORMAT"][0]) color_mode = (int)(camera_parameter["FORMAT"][1]) print "color mode", color_mode I2CMode = camera_parameter["I2C_MODE"] SensorShipAddr = int(camera_parameter["I2C_ADDR"], 16) cfg = { "u32CameraType": 0x4D091031, "u32Width": Width, "u32Height": Height, "u32UsbVersion": 0, "u8PixelBytes": 1, "u16Vid": 0, "u32Size": 0, "u8PixelBits": BitWidth, "u32SensorShipAddr": SensorShipAddr, "emI2cMode": I2CMode, "emImageFmtMode": FmtMode } #ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg,0) ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) if ret == 0: #ArducamSDK.Py_ArduCam_writeReg_8_8(handle,0x46,3,0x00) usb_version = rtn_cfg['u32UsbVersion'] #print "USB VERSION:",usb_version #config board param configBoard(config["board_parameter"]) if usb_version == ArducamSDK.USB_1 or usb_version == ArducamSDK.USB_2: configBoard(config["board_parameter_dev2"]) if usb_version == ArducamSDK.USB_3: configBoard(config["board_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: configBoard(config["board_parameter_dev3_inf2"]) writeSensorRegs(config["register_parameter"]) if usb_version == ArducamSDK.USB_3: writeSensorRegs(config["register_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: writeSensorRegs(config["register_parameter_dev3_inf2"]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData( handle, 0x400 - 16, 16) print "Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c" % ( datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11]) return True else: print "open fail" return False
def camera_initFromFile(fileName,index): global cfg,Width,Height,color_mode,save_raw #load config file config = arducam_config_parser.LoadConfigFile(fileName) camera_parameter = config.camera_param.getdict() Width = camera_parameter["WIDTH"] Height = camera_parameter["HEIGHT"] BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 save_raw = True FmtMode = camera_parameter["FORMAT"][0] color_mode = camera_parameter["FORMAT"][1] I2CMode = camera_parameter["I2C_MODE"] I2cAddr = camera_parameter["I2C_ADDR"] TransLvl = camera_parameter["TRANS_LVL"] cfg = {"u32CameraType":0x00, "u32Width":Width,"u32Height":Height, "usbType":0, "u8PixelBytes":ByteLength, "u16Vid":0, "u32Size":0, "u8PixelBits":BitWidth, "u32I2cAddr":I2cAddr, "emI2cMode":I2CMode, "emImageFmtMode":FmtMode, "u32TransLvl":TransLvl } # ArducamSDK. ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg,index) #ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) if ret == 0: #ArducamSDK.Py_ArduCam_writeReg_8_8(handle,0x46,3,0x00) usb_version = rtn_cfg['usbType'] #print("USB VERSION:",usb_version) configs = config.configs configs_length = config.configs_length for i in range(configs_length): type = configs[i].type if ((type >> 16) & 0xFF) != 0 and ((type >> 16) & 0xFF) != usb_version: continue if type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_REG: ArducamSDK.Py_ArduCam_writeSensorReg(handle, configs[i].params[0], configs[i].params[1]) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_DELAY: time.sleep(float(configs[i].params[0])/1000) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_VRCMD: configBoard(handle, configs[i]) rtn_val,datas = ArducamSDK.Py_ArduCam_readUserData(handle,0x400-16, 16) print("Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c"%(datas[0],datas[1],datas[2],datas[3], datas[4],datas[5],datas[6],datas[7], datas[8],datas[9],datas[10],datas[11])) return handle else: print("open fail,ret_val = ",ret) return None
def camera_initFromFile(self, mainconf, expconf): self.expconf = expconf self.fileName = mainconf config = arducam_config_parser.LoadConfigFile(self.fileName) camera_parameter = config.camera_param.getdict() self.Width = camera_parameter["WIDTH"] self.Height = camera_parameter["HEIGHT"] self.BitWidth = camera_parameter["BIT_WIDTH"] self.ByteLength = 1 if self.BitWidth > 8 and self.BitWidth <= 16: self.ByteLength = 2 self.FmtMode = camera_parameter["FORMAT"][0] self.color_mode = camera_parameter["FORMAT"][1] # print("color mode",self.color_mode) self.I2CMode = camera_parameter["I2C_MODE"] self.I2cAddr = camera_parameter["I2C_ADDR"] self.TransLvl = camera_parameter["TRANS_LVL"] self.cfg = { "u32CameraType": 0x00, "u32Width": self.Width, "u32Height": self.Height, "usbType": 0, "u8PixelBytes": self.ByteLength, "u16Vid": 0, "u32Size": 0, "u8PixelBits": self.BitWidth, "u32I2cAddr": self.I2cAddr, "emI2cMode": self.I2CMode, "emImageFmtMode": self.FmtMode, "u32TransLvl": self.TransLvl } ret, self.handle, self.rtn_cfg = ArducamSDK.Py_ArduCam_autoopen( self.cfg) if ret == 0: usb_version = self.rtn_cfg['usbType'] configs = config.configs configs_length = config.configs_length for i in range(configs_length): # print(configs[i].params[0]) type = configs[i].type if ((type >> 16) & 0xFF) != 0 and ( (type >> 16) & 0xFF) != usb_version: continue if type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_REG: if configs[i].params[0] == 12306: configs[i].params[1] = self.config_exposure( self.expconf) ArducamSDK.Py_ArduCam_writeSensorReg( self.handle, configs[i].params[0], configs[i].params[1]) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_DELAY: time.sleep(float(configs[i].params[0]) / 1000) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_VRCMD: self.configBoard(configs[i]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData( self.handle, 0x400 - 16, 16) print( "Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c" % (datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11])) return True else: print("open fail,rtn_val = ", ret) return False
def camera_initFromFile(fileName): global cfg, handle, Width, Height, color_mode #load config file config = arducam_config_parser.LoadConfigFile(fileName) camera_parameter = config.camera_param.getdict() Width = camera_parameter["WIDTH"] Height = camera_parameter["HEIGHT"] BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 FmtMode = camera_parameter["FORMAT"][0] color_mode = camera_parameter["FORMAT"][1] print "color mode", color_mode I2CMode = camera_parameter["I2C_MODE"] I2cAddr = camera_parameter["I2C_ADDR"] TransLvl = camera_parameter["TRANS_LVL"] cfg = { "u32CameraType": 0x00, "u32Width": Width, "u32Height": Height, "usbType": 0, "u8PixelBytes": ByteLength, "u16Vid": 0, "u32Size": 0, "u8PixelBits": BitWidth, "u32I2cAddr": I2cAddr, "emI2cMode": I2CMode, "emImageFmtMode": FmtMode, "u32TransLvl": TransLvl } # ArducamSDK. if serial_selection == None: ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) else: index = None num_cam, cam_list, cam_serial = ArducamSDK.Py_ArduCam_scan() for i in range(num_cam): datas = cam_serial[i] camera_serial = "%c%c%c%c-%c%c%c%c-%c%c%c%c" % ( datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11]) if camera_serial == str(serial_selection): print("Arducam " + str(serial_selection) + " found") index = i break if index == None: print("Arducam " + str(serial_selection) + " not found") exit() time.sleep(3) ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_open(cfg, i) if ret == 0: usb_version = rtn_cfg['usbType'] print "USB VERSION:", usb_version configs = config.configs configs_length = config.configs_length for i in range(configs_length): type = configs[i].type if ((type >> 16) & 0xFF) != 0 and ( (type >> 16) & 0xFF) != usb_version: continue if type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_REG: ArducamSDK.Py_ArduCam_writeSensorReg(handle, configs[i].params[0], configs[i].params[1]) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_DELAY: time.sleep(float(configs[i].params[0]) / 1000) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_VRCMD: configBoard(configs[i]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData( handle, 0x400 - 16, 16) print "Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c" % ( datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11]) return True else: print "open fail,rtn_val = ", ret return False
def camera_initFromFile(fialeName): global acfg,handle,Width,Height,color_mode,save_raw #load config file config = json.load(open(fialeName,"r")) print(fialeName) # print(config) camera_parameter = config["camera_parameter"] Width = int(camera_parameter["SIZE"][0]) Height = int(camera_parameter["SIZE"][1]) BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 save_raw = True FmtMode = int(camera_parameter["FORMAT"][0]) color_mode = (int)(camera_parameter["FORMAT"][1]) print(camera_parameter) print(Width) print(Height) print(BitWidth) print(FmtMode) # print(BitWidth) print("color mode",color_mode) I2CMode = camera_parameter["I2C_MODE"] I2cAddr = int(camera_parameter["I2C_ADDR"],16) TransLvl = int(camera_parameter["TRANS_LVL"]) acfg = {"u32CameraType":0x4D091031, "u32Width":Width,"u32Height":Height, "usbType":0, "u8PixelBytes":ByteLength, "u16Vid":0, "u32Size":0, "u8PixelBits":BitWidth, "u32I2cAddr":I2cAddr, "emI2cMode":I2CMode, "emImageFmtMode":FmtMode, "u32TransLvl":TransLvl } print("\nbanana\n") # usb_version = rtn_acfg['usbType'] # print(usb_version) #Return vale: number of supported cameras,indexs,serials # a, b, c = ArducamSDK.Py_ArduCam_scan() # print(a) #2 # print(b) #[0,1] # print(c) # camnum = ArducamSDK.Py_ArduCam_scan() # print(camnum) # print(camnum[1][0]) # print(camnum[1][1]) # input("p") #Serial: AU3S-1830-0003 <= USB 3.0 MT9J001 #Bus 001 Device 009: ID 04b4:03f1 Cypress Semiconductor Corp. #Serial: AU2S-1843-0016 #Bus 001 Device 010: ID 52cb:52cb #4.2.1.3 Py_ArduCam_open( acfg,index) #Param 1: ArduCamCfg structure instance #Param 2: index of the camera, handle,acfg ArducamSDK.Py_ArduCam_scan() print("scanning") time.sleep(3) ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_open(acfg,cameraID) time.sleep(3) # ret = ArducamSDK.Py_ArduCam_open(acfg,1) # print(ret) # input("p") #4.2.1.1 Py_ArduCam_autoopen(acfg ) #Return vale: error code, handle,acfg # ret,handle,rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(acfg) print(ret) print(handle) print(rtn_cfg) if ret == 0: #ArducamSDK.Py_ArduCam_writeReg_8_8(handle,0x46,3,0x00) usb_version = rtn_cfg['usbType'] print("USB VERSION:",usb_version) #config board param configBoard(config["board_parameter"]) if usb_version == ArducamSDK.USB_1 or usb_version == ArducamSDK.USB_2: configBoard(config["board_parameter_dev2"]) if usb_version == ArducamSDK.USB_3: configBoard(config["board_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: configBoard(config["board_parameter_dev3_inf2"]) writeSensorRegs(config["register_parameter"]) if usb_version == ArducamSDK.USB_3: writeSensorRegs(config["register_parameter_dev3_inf3"]) if usb_version == ArducamSDK.USB_3_2: writeSensorRegs(config["register_parameter_dev3_inf2"]) rtn_val,datas = ArducamSDK.Py_ArduCam_readUserData(handle,0x400-16, 16) print("Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c"%(datas[0],datas[1],datas[2],datas[3], datas[4],datas[5],datas[6],datas[7], datas[8],datas[9],datas[10],datas[11])) return True else: print("open fail,rtn_val = ",ret) return False
def camera_initFromFile(fileName, p_width=None, p_height=None): global cfg, handle, width, height, color_mode, save_raw config = arducam_config_parser.LoadConfigFile(fileName) camera_parameter = config.camera_param.getdict() if p_width is None: width = camera_parameter["WIDTH"] else: width = p_width if p_height is None: height = camera_parameter["HEIGHT"] else: height = p_height BitWidth = camera_parameter["BIT_WIDTH"] ByteLength = 1 if BitWidth > 8 and BitWidth <= 16: ByteLength = 2 save_raw = True FmtMode = camera_parameter["FORMAT"][0] color_mode = camera_parameter["FORMAT"][1] print("Color mode: %d." % (color_mode)) I2CMode = camera_parameter["I2C_MODE"] I2cAddr = camera_parameter["I2C_ADDR"] TransLvl = camera_parameter["TRANS_LVL"] cfg = { "u32CameraType": 0x00, "u32Width": width, "u32Height": height, "usbType": 0, "u8PixelBytes": ByteLength, "u16Vid": 0, "u32Size": 0, "u8PixelBits": BitWidth, "u32I2cAddr": I2cAddr, "emI2cMode": I2CMode, "emImageFmtMode": FmtMode, "u32TransLvl": TransLvl } ret, handle, rtn_cfg = ArducamSDK.Py_ArduCam_autoopen(cfg) if ret == 0: usb_version = rtn_cfg['usbType'] configs = config.configs configs_length = config.configs_length for i in range(configs_length): type = configs[i].type if ((type >> 16) & 0xFF) != 0 and ( (type >> 16) & 0xFF) != usb_version: continue if type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_REG: ArducamSDK.Py_ArduCam_writeSensorReg(handle, configs[i].params[0], configs[i].params[1]) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_DELAY: time.sleep(float(configs[i].params[0]) / 1000) elif type & 0xFFFF == arducam_config_parser.CONFIG_TYPE_VRCMD: configBoard(configs[i]) rtn_val, datas = ArducamSDK.Py_ArduCam_readUserData( handle, 0x400 - 16, 16) print("Serial: %c%c%c%c-%c%c%c%c-%c%c%c%c." % (datas[0], datas[1], datas[2], datas[3], datas[4], datas[5], datas[6], datas[7], datas[8], datas[9], datas[10], datas[11])) return True, handle else: print("Failed to open, return value: %s." % (ret)) return False, handle