All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.neuronrobotics.imageprovider.CHDKImageProvider Maven / Gradle / Ivy

package com.neuronrobotics.imageprovider;

import java.awt.image.BufferedImage;
import java.util.ArrayList;

import chdk.ptp.java.CameraFactory;
import chdk.ptp.java.ICamera;
import chdk.ptp.java.SupportedCamera;
import chdk.ptp.java.exception.CameraConnectionException;
import chdk.ptp.java.exception.CameraNotFoundException;
import chdk.ptp.java.exception.CameraShootException;
import chdk.ptp.java.exception.GenericCameraException;
import chdk.ptp.java.exception.PTPTimeoutException;
import chdk.ptp.java.model.CameraMode;

public class CHDKImageProvider extends AbstractImageProvider {
	ICamera cam;

	public CHDKImageProvider() throws PTPTimeoutException, GenericCameraException {
			cam = CameraFactory.getCamera(SupportedCamera.SX160IS);
			cam.connect();
			cam.setOperaionMode(CameraMode.RECORD);
	}

	@Override
	public boolean captureNewImage(BufferedImage imageData) {
		int failure = 0;
		while (failure < 5) {
			try {
				// Thread.sleep(3000);
				//bufferedImageToMat(cam.getPicture(), imageData);
				AbstractImageProvider.deepCopy(captureNewImage(),imageData);
				return true;
			}  catch (RuntimeException e) {
				e.printStackTrace();

				failure++;
			}
		}
		return false;
	}


	@Override
	public void disconnectDeviceImp() {
		try {
			cam.disconnect();
		} catch (CameraConnectionException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Override
	public boolean connectDeviceImp() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public ArrayList getNamespacesImp() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public BufferedImage captureNewImage() {
		// TODO Auto-generated method stub
		try {
			return cam.getPicture();
		} catch (Exception e) {
			throw new RuntimeException(e);
		} 
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy