Exemplo n.º 1
0
bool CanonDriver::getFocusMode(FocusMode * fm, ManualFocusMode * mfm)
{
	Datagram dgm;
	if (!sendRequestAndWait(0x40,0x8000,dgm))
		return false;
	*fm = (FocusMode)(dgm.bdata()[0]);
	if (*fm == FMManual) {
		if (!sendRequestAndWait(0x43,0x8000,dgm))
			return false;
		*mfm = (ManualFocusMode)(dgm.bdata()[0]);
	}
	return true;
}
Exemplo n.º 2
0
bool CanonDriver::getAutoExposure(bool * autoexp, AutoExposureMode * aem)
{
	Datagram dgm;
	if (!sendRequestAndWait(0x82,0x8000,dgm))
		return false;
	//dgm.print();
	*autoexp = (dgm.bdata()[0] == 0x00);
	if (!*autoexp) {
		*aem = AXPundef;
		return true;
	}
	if (!sendRequestAndWait(0x87,0x8000,dgm))
		return false;
	unsigned short us = dgm.bdata()[0];
	us = (us << 8) | dgm.bdata()[1];
	*aem = (AutoExposureMode)(us);
	//dgm.print();
	return true;
}
Exemplo n.º 3
0
bool CanonDriver::getSpeeds(unsigned short * pan, 
		unsigned short * tilt, unsigned short * zoom)
{
	Datagram dgm;
	if (!sendRequestAndWait(0x3B,0x8000,dgm))
		return false;
	const unsigned char * data = dgm.bdata();
	*pan = data[0];
	*pan = (*pan << 8) | data[1];
	*tilt = data[2];
	*tilt = (*tilt << 8) | data[3];
	*zoom = data[4];
	*zoom = (*zoom << 8) | data[5];
	return true;
}