void HDRPage::SetGain( int image, unsigned int gainValue ) { unsigned int regOffset = GetRegisterOffset( m_hdrRegOffset, image ) + m_hdrRegIncrement; Error error; unsigned int value; if ( IsLadybug2() ) { // LD2 camera value = 0x82000000 | gainValue; } else { error = m_pCamera->ReadRegister( regOffset, &value ); if ( error != PGRERROR_OK ) { // Error ShowErrorMessageDialog( "Error reading HDR gain register", error ); } value &= ~0xFFF; value += gainValue; } error = m_pCamera->WriteRegister( regOffset, value ); if ( error != PGRERROR_OK ) { // Error ShowErrorMessageDialog( "Error writing HDR gain register", error ); } }
void HDRPage::SetShutter( int image, unsigned int shutterValue ) { unsigned int regOffset = GetRegisterOffset( m_hdrRegOffset, image ); Error error; unsigned int value; if ( IsLadybug2() ) { value = 0x82000000 | shutterValue; } else { error = m_pCamera->ReadRegister( regOffset, &value ); if ( error != PGRERROR_OK ) { // Error ShowErrorMessageDialog( "Error reading HDR shutter register", error ); } value &= ~0xFFF; value += shutterValue; } error = m_pCamera->WriteRegister( regOffset, value ); if ( error != PGRERROR_OK ) { // Error ShowErrorMessageDialog( "Error writing HDR shutter register", error ); } }
unsigned int HDRPage::GetHDRRegOffset() { unsigned int hdrReg; m_hdrRegIncrement = 0x4; if ( strstr( m_camInfo.modelName, "Bumblebee" ) != NULL && strstr( m_camInfo.modelName, "Bumblebee2" ) == NULL ) { // The camera is a Bumblebee, but not a Bumblebee2 or XB3 hdrReg = sk_bumblebeeHDRReg; } else { if ( IsLadybug2() ) { hdrReg = sk_ladybug2HDRReg; m_hdrRegIncrement = 0x20; } else { hdrReg = sk_hdrReg; } } return hdrReg; }
unsigned int HDRPage::GetRegisterOffset( unsigned int regBase, int image ) { unsigned int regOffset = 0; switch( image ) { case 0: regOffset = regBase + 0x20; break; case 1: if ( IsLadybug2() ) { regOffset = regBase + 0x60; } else { regOffset = regBase + 0x40; } break; case 2: if ( IsLadybug2() ) { regOffset = regBase + 0xA0; } else { regOffset = regBase + 0x60; } break; case 3: if ( IsLadybug2() ) { regOffset = regBase + 0xE0; } else { regOffset = regBase + 0x80; } break; default: break; } return regOffset; }
void CamInfoPage::SetCameraInformation( CameraInfo* pCamInfo ) { // Set the camera info labels char serial[64]; if ( IsLadybug2() ) { const unsigned int k_Ladybug2HeadReg = 0x1F80; Error error; unsigned int uiHeadNumber; error = m_pCamera->ReadRegister( k_Ladybug2HeadReg, &uiHeadNumber ); if( error != PGRERROR_OK ) { return; } sprintf ( serial, "%u(Head S/N.%u)", pCamInfo->serialNumber, uiHeadNumber ); } else { sprintf( serial, "%u", pCamInfo->serialNumber ); } char dcamVer[16]; sprintf( dcamVer, "%1.2f", pCamInfo->iidcVer / 100.0f ); m_pLabelSerial->set_text( serial ); m_pLabelModel->set_text( pCamInfo->modelName ); m_pLabelVendor->set_text( pCamInfo->vendorName ); m_pLabelSensor->set_text( pCamInfo->sensorInfo ); m_pLabelResolution->set_text( pCamInfo->sensorResolution ); m_pLabelInterface->set_text( GetInterfaceString( pCamInfo->interfaceType ) ); m_pLabelBusSpeed->set_text( GetBusSpeedString( pCamInfo->maximumBusSpeed ) ); m_pLabelDCAMVer->set_text( dcamVer ); m_pLabelFirmwareVer->set_text( pCamInfo->firmwareVersion ); m_pLabelFirmwareBuildTime->set_text( pCamInfo->firmwareBuildTime ); m_pLabelDriverName->set_text( pCamInfo->driverName ); if ( pCamInfo->interfaceType == INTERFACE_GIGE ) { m_pVboxGigECameraInfo->show(); char gigEVersion[16]; sprintf( gigEVersion, "%u.%u", pCamInfo->gigEMajorVersion, pCamInfo->gigEMinorVersion ); m_pLabelGigEVersion->set_text( gigEVersion ); m_pLabelGigEUserDefinedName->set_text( pCamInfo->userDefinedName ); m_pLabelGigEXmlUrl1->set_text( pCamInfo->xmlURL1 ); m_pLabelGigEXmlUrl2->set_text( pCamInfo->xmlURL2 ); char macAddress[64]; sprintf( macAddress, "%02X:%02X:%02X:%02X:%02X:%02X", pCamInfo->macAddress.octets[0], pCamInfo->macAddress.octets[1], pCamInfo->macAddress.octets[2], pCamInfo->macAddress.octets[3], pCamInfo->macAddress.octets[4], pCamInfo->macAddress.octets[5]); m_pLabelGigEMacAddress->set_text( macAddress ); char ipAddress[32]; sprintf( ipAddress, "%u.%u.%u.%u", pCamInfo->ipAddress.octets[0], pCamInfo->ipAddress.octets[1], pCamInfo->ipAddress.octets[2], pCamInfo->ipAddress.octets[3]); m_pLabelGigEIpAddress->set_text( ipAddress ); char subnetMask[32]; sprintf( subnetMask, "%u.%u.%u.%u", pCamInfo->subnetMask.octets[0], pCamInfo->subnetMask.octets[1], pCamInfo->subnetMask.octets[2], pCamInfo->subnetMask.octets[3]); m_pLabelGigESubnetMask->set_text( subnetMask ); char defaultGateway[32]; sprintf( defaultGateway, "%u.%u.%u.%u", pCamInfo->defaultGateway.octets[0], pCamInfo->defaultGateway.octets[1], pCamInfo->defaultGateway.octets[2], pCamInfo->defaultGateway.octets[3]); m_pLabelGigEDefaultGateway->set_text( defaultGateway ); GigECamera* pCamera = dynamic_cast<GigECamera*>(m_pCamera); if ( pCamera != NULL ) { unsigned int ipConfigurationVal = 0; Error error = pCamera->ReadGVCPRegister( 0x0010, &ipConfigurationVal ); if ( error != PGRERROR_OK ) { return; } m_pCheckGigEIpLLA->set_active( (ipConfigurationVal & 0x1) != 0 ); m_pCheckGigEIpDHCP->set_active( (ipConfigurationVal & 0x2) != 0 ); m_pCheckGigEIpPersistentIp->set_active( (ipConfigurationVal & 0x4) != 0 ); } else { m_pCheckGigEIpLLA->set_active( false ); m_pCheckGigEIpDHCP->set_active( false ); m_pCheckGigEIpPersistentIp->set_active( false ); } m_pCheckGigEIpLLA->set_sensitive( false ); m_pCheckGigEIpDHCP->set_sensitive( false ); m_pCheckGigEIpPersistentIp->set_sensitive( false ); } else { m_pVboxGigECameraInfo->hide(); } }