Beispiel #1
0
bool Camera::presetRegisters()
{
	//set registers to default values
	this->lastError = OscCamPresetRegs();
	
	/*
	 * enables continuous capturing, no sleep between readpicture and setupcapture needed
	 * about 10ms shorter capturing time in average
	 */
	this->lastError = OscCamSetRegisterValue(0x07, 0x388);
	return  this->lastError == SUCCESS;
}
Beispiel #2
0
/*********************************************************************//*!
 * @brief Initialize framework and system parameters
 *
 * @param s Pointer to the system state 
 *//*********************************************************************/
void initSystem(struct SYSTEM *s)
{
	OscCreate(&s->hFramework);
	
	/******* Load the framework module dependencies. **********/
	OscLoadDependencies(s->hFramework, deps, sizeof(deps)/sizeof(struct OSC_DEPENDENCY));

	OscLogSetConsoleLogLevel(WARN);
	OscLogSetFileLogLevel(WARN);
	
	#if defined(OSC_HOST)
		/* Setup file name reader (for host compiled version); read constant image */
		OscFrdCreate(s->hFramework);
		OscFrdCreateConstantReader(&s->hFileNameReader, "EAN13Example.bmp");
		OscCamSetFileNameReader(s->hFileNameReader);
	#endif
	
	/* Configure camera */
	OscCamPresetRegs();
	/* Set AGC and AEC */
	OscCamSetRegisterValue(REG_AEC_AGC_ENABLE, 0x3);
        /* Turn on continuous capture for this application. */
        OscCamSetRegisterValue(CAM_REG_CHIP_CONTROL, 0x388);
        /* Set the undocumented reserved almighty Micron register to the
           "optimal" value. */
        OscCamSetRegisterValue(CAM_REG_RESERVED_0x20, 0x3d5);

	OscCamSetAreaOfInterest(0, 0, OSC_CAM_MAX_IMAGE_WIDTH, OSC_CAM_MAX_IMAGE_HEIGHT);
	OscCamSetupPerspective(OSC_CAM_PERSPECTIVE_180DEG_ROTATE);

	OscCamSetFrameBuffer(0, OSC_CAM_MAX_IMAGE_WIDTH * OSC_CAM_MAX_IMAGE_HEIGHT, s->frameBuffer1, TRUE); 
	OscCamSetFrameBuffer(1, OSC_CAM_MAX_IMAGE_WIDTH * OSC_CAM_MAX_IMAGE_HEIGHT, s->frameBuffer2, TRUE); 

	s->doubleBufferIDs[0] = 0;
	s->doubleBufferIDs[1] = 1;
	OscCamCreateMultiBuffer(2, s->doubleBufferIDs); 

	OscCamSetupCapture(OSC_CAM_MULTI_BUFFER); 

} /* initSystem */
Beispiel #3
0
bool Camera::setAutoExposure(bool enabled)
{
	uint16 reg_val;	
	OscCamGetRegisterValue(0xAF, &reg_val);
	return (this->lastError = OscCamSetRegisterValue(0xAF, (reg_val & ~0x1) | (uint16)enabled)) != SUCCESS;
}
Beispiel #4
0
bool Camera::setRegister(const uint32 reg, const uint16 value)
{
	return (OscCamSetRegisterValue(reg, value) == SUCCESS);
}