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
예제 #5
0
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
예제 #6
0
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
예제 #7
0
    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
예제 #9
0
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
예제 #10
0
파일: capture.py 프로젝트: mimile00/Capture
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