def video():
    global flag, regArr, handle
    regNum = 0
    res, handle = ArducamSDK.Py_ArduCam_autoopen(cfg)
    if res == 0:
        openFlag = True
        print "device open success!"
        while (regArr[regNum][0] != 0xFFFF):
            ArducamSDK.Py_ArduCam_writeSensorReg(handle, regArr[regNum][0],
                                                 regArr[regNum][1])
            regNum = regNum + 1
        res = ArducamSDK.Py_ArduCam_beginCapture(handle)

        if res == 0:
            print "transfer task create success!"
            while flag:
                res = ArducamSDK.Py_ArduCam_capture(handle)
                if res != 0:
                    print "capture fail!"
                    break
                time.sleep(0.03)
                if flag == False:
                    break
        else:
            print "transfer task create fail!"
        res = ArducamSDK.Py_ArduCam_close(handle)

        if res == 0:
            openFlag = False
            print "device close success!"
        else:
            print "device close fail!"
    else:
        print "device open fail!"
def rosShutdown():
    global handle
    rtn_val = ArducamSDK.Py_ArduCam_close(handle)
    if rtn_val == 0:
        rospy.loginfo("device close success!")
    else:
        rospy.logerr("device close fail!")
示例#3
0
    def cameramain(self, config_file_name, expconf, child_conn):
        if self.camera_initFromFile(config_file_name, expconf):
            ArducamSDK.Py_ArduCam_setMode(self.handle,
                                          ArducamSDK.CONTINUOUS_MODE)
            ct = threading.Thread(target=self.captureImage_thread)
            rt = threading.Thread(target=self.readImage_thread,
                                  args=(child_conn, ))
            ct.start()
            rt.start()
            while True:
                reload = child_conn.recv()
                print("reloading configuration file")
                if reload == False:
                    self.loading = False
                if reload == 'quit':
                    self.running = False
                    sys.exit()
                    break

            ct.join()
            rt.join()

            rtn_val = ArducamSDK.Py_ArduCam_close(self.handle)

            if rtn_val == 0:
                print("device close success!")
            else:
                print("device close fail!")
示例#4
0
def rosShutdown():
    global handle
    rtn_val = ArducamSDK.Py_ArduCam_close(handle)
    if rtn_val == 0:
        print "device close success!"
    else:
        print "device close fail!"
示例#5
0
文件: camera.py 项目: vossenv/spypi
 def stop(self):
     self.logger.info("Stopping arducam")
     self.running = False
     ArducamSDK.Py_ArduCam_del(self.handle)
     ArducamSDK.Py_ArduCam_flush(self.handle)
     ArducamSDK.Py_ArduCam_endCaptureImage(self.handle)
     ArducamSDK.Py_ArduCam_close(self.handle)
     self.images.clear()
     self.logger.info("Arducam stopped")
def show2():
    global flag, regArr, handle
    global W_zoom, H_zoom, V_value, H_value, lx, ly, downFlag, saveFlag, saveNum
    regNum = 0
    res, handle = ArducamSDK.Py_ArduCam_autoopen(cfg)
    if res == 0:
        openFlag = True
        print "device open success!"
        while (regArr[regNum][0] != 0xFFFF):
            ArducamSDK.Py_ArduCam_writeSensorReg(handle, regArr[regNum][0],
                                                 regArr[regNum][1])
            regNum = regNum + 1
        res = ArducamSDK.Py_ArduCam_beginCapture(handle)
        if res == 0 and flag:
            print "transfer task create success!"
            res = ArducamSDK.Py_ArduCam_capture(handle)
            if ArducamSDK.Py_ArduCam_available(handle) > 0:
                print "estou available"
                res, data = ArducamSDK.Py_ArduCam_read(handle, Width * Height)

                image = Image.frombuffer("L", (Width, Height), data)
                img = np.array(image)
                height, width = img.shape[:2]
                img2 = cv2.cvtColor(img, COLOR_BYTE2RGB)

                if args.name and capture:
                    cv2.imwrite(args.name + "." + args.type, img2)
                if not args.show:
                    return
                if saveFlag:
                    saveFlag = False
                    saveNum += 1
                    name = ""
                    if "bmp" == args.type:
                        name = str(saveNum) + ".bmp"
                    if "png" == args.type:
                        name = str(saveNum) + ".png"
                    if "jpg" == args.type:
                        name = str(saveNum) + ".jpg"
                    cv2.imwrite(name, img2)

            if res != 0:
                print "capture fail!"
                return
            if flag == False:
                return
        else:
            print "transfer task create fail!"
        res = ArducamSDK.Py_ArduCam_close(handle)

        if res == 0:
            openFlag = False
            print "device close success!"
        else:
            print "device close fail!"
    else:
        print "device open fail!"
def readThread():
    global timestamps, images

    handle = {}
    data = {}
    
    regNum = 0
    res, handle = ArducamSDK.Py_ArduCam_autoopen(cfg)
    #print(handle)
    #print(3)
    if res == 0:
        print("device open success!")
        while (regArr[regNum][0] != 0xFFFF):
            ArducamSDK.Py_ArduCam_writeSensorReg(handle, regArr[regNum][0], regArr[regNum][1])
            regNum = regNum + 1
        #print(32143)
        res = ArducamSDK.Py_ArduCam_beginCapture(handle)
        if res == 0:
            print("transfer task create success!")
            while not rospy.is_shutdown():
                #print(2134124)
                res = ArducamSDK.Py_ArduCam_capture(handle)
                #print(res)
                if res == 0:
                    timestamp = rospy.Time.now()
                    #print(7324627864)
                    res, data = ArducamSDK.Py_ArduCam_read(handle, Width * Height)
                    #print(34242)
                    if res == 0:
                        #print(3746827346782)
                        ArducamSDK.Py_ArduCam_del(handle)
                        #print(374623846278)
                        timestamps.put(timestamp)
                        #print(3742846237846)
                        images.put(data)
                        #print(382746278346782)
                        time.sleep(0.03)
                    else:
                        print("read data fail!")
                if res != 0:
                    print("capture fail!")
                    break
        else:
            print("transfer task create fail!")

        res = ArducamSDK.Py_ArduCam_close(handle)
        if res == 0:
            print("device close success!")
        else:
            print("device close fail!")
    else:
        print("device open fail!")
示例#8
0
def init_and_read_arducam():
    global flag, regArr, handle, openFlag
    regNum = 0
    res, handle = ArducamSDK.Py_ArduCam_autoopen(cfg)
    if res == 0:
        openFlag = True
        print("device open success!")
        while (regArr[regNum][0] != 0xFFFF):
            ArducamSDK.Py_ArduCam_writeSensorReg(handle, regArr[regNum][0],
                                                 regArr[regNum][1])
            regNum = regNum + 1
        res = ArducamSDK.Py_ArduCam_beginCapture(handle)

        if res == 0:
            print("transfer task create success!")
            while flag:
                res = ArducamSDK.Py_ArduCam_capture(handle)
                if res != 0:
                    print("capture failed!")
                    flag = False
                    break
                time.sleep(0.1)
                if flag == False:
                    break
        else:
            print("transfer task create fail!")

        time.sleep(2)
        res = ArducamSDK.Py_ArduCam_close(handle)
        if res == 0:
            openFlag = False
            print("device close success!")
        else:
            print("device close fail!")
    else:
        print("device open fail!")
示例#9
0
    if len(sys.argv) > 1:
        config_file_name = sys.argv[1]

        if not os.path.exists(config_file_name):
            print("Config file does not exist.")
            exit()
    else:
        showHelp()
        exit()

    if camera_initFromFile(config_file_name):

        ArducamSDK.Py_ArduCam_setMode(handle, ArducamSDK.CONTINUOUS_MODE)

        while True:
            if ArducamSDK.Py_ArduCam_availableImage(handle) > 0:
                print('hello')
                rtn_val, data, rtn_cfg = ArducamSDK.Py_ArduCam_readImage(
                    handle)
                image = convert_image(data, rtn_cfg, color_mode)

    #pause
    #ArducamSDK.Py_ArduCam_writeReg_8_8(handle,0x46,3,0x40)
    rtn_val = ArducamSDK.Py_ArduCam_close(handle)
    if rtn_val == 0:
        print("device close success!")
    else:
        print("device close fail!")

    #os.system("pause")
示例#10
0
                mouse_y = parameters["mouse_y"]
                draw_x = parameters["draw_x"]
                draw_y = parameters["draw_y"]

                print("Loaded parameters - mouse: (%d; %d), draw: (%d; %d)." %
                      (mouse_x, mouse_y, draw_x, draw_y))

        result = get_focus()

        top_right_x = int(mouse_x - rectangle_width / 2)
        top_right_y = int(mouse_y - rectangle_height / 2)

        running = False
        ct.join()

        ArducamSDK.Py_ArduCam_close(handle)

        if not result:
            exit()

        print("Final parameters - mouse: (%d; %d), draw: (%d; %d)." %
              (mouse_x, mouse_y, draw_x, draw_y))

        time.sleep(1)

        running = True

        ret, handle = camera_initFromFile(config_focused)

        ct = threading.Thread(target=captureImage_thread)
        rt = threading.Thread(target=readImage_thread)