XnStatus XnSensorFixedParams::Init() { XnStatus nRetVal = XN_STATUS_OK; // get fixed params XnFixedParams FixedParams; nRetVal = XnHostProtocolGetFixedParams(m_pDevicePrivateData, FixedParams); if (nRetVal != XN_STATUS_OK) { // Ugly patch since get param is not supported in maintenance mode! if (nRetVal != XN_STATUS_DEVICE_PROTOCOL_INVALID_COMMAND) { return nRetVal; } return nRetVal; } if (m_pDevicePrivateData->FWInfo.nFWVer < XN_SENSOR_FW_VER_5_4) { sprintf(m_strSensorSerial, "%d", FixedParams.nSerialNumber); } else { nRetVal = XnHostProtocolGetSerialNumber(m_pDevicePrivateData, m_strSensorSerial); if (nRetVal != XN_STATUS_OK) { return nRetVal; } } xnLogVerbose(XN_MASK_DEVICE_SENSOR, "Sensor serial number: %s", m_strSensorSerial); // fill in properties m_nZeroPlaneDistance = (OniDepthPixel)FixedParams.fReferenceDistance; m_dZeroPlanePixelSize = FixedParams.fReferencePixelSize; m_dEmitterDCmosDistance = FixedParams.fDCmosEmitterDistance; m_dDCmosRCmosDistance = FixedParams.fDCmosRCmosDistance; m_nSensorDepthCMOSI2CBus = (XnUInt16)FixedParams.nDepthCmosI2CBus; m_nSensorDepthCMOSI2CSlaveAddress = (XnUInt16)FixedParams.nDepthCmosI2CAddress; m_nSensorImageCMOSI2CBus = (XnUInt16)FixedParams.nImageCmosI2CBus; m_nSensorImageCMOSI2CSlaveAddress = (XnUInt16)FixedParams.nImageCmosI2CAddress; m_nImageCmosType = (XnUInt32)FixedParams.nImageCmosType; m_nDepthCmosType = (XnUInt32)FixedParams.nDepthCmosType; nRetVal = XnHostProtocolAlgorithmParams(m_pDevicePrivateData, XN_HOST_PROTOCOL_ALGORITHM_DEVICE_INFO, &m_deviceInfo, sizeof(m_deviceInfo), (XnResolutions)0, 0); XN_IS_STATUS_OK(nRetVal); nRetVal = XnHostProtocolGetPlatformString(m_pDevicePrivateData, m_strPlatformString); XN_IS_STATUS_OK(nRetVal); return (XN_STATUS_OK); }
XnStatus XnSensor::GetFixedParams(XnDynamicSizeBuffer* pBuffer) { XnStatus nRetVal = XN_STATUS_OK; if (pBuffer->nMaxSize < sizeof(XnFixedParams)) { return (XN_STATUS_OUTPUT_BUFFER_OVERFLOW); } XnFixedParams fixed; nRetVal = XnHostProtocolGetFixedParams(GetDevicePrivateData(), fixed); XN_IS_STATUS_OK(nRetVal); xnOSMemCopy(pBuffer->pData, &fixed, sizeof(XnFixedParams)); pBuffer->nDataSize = sizeof(XnFixedParams); return (XN_STATUS_OK); }
XnStatus XnSensorFixedParams::Init() { XnStatus nRetVal = XN_STATUS_OK; // get fixed params XnFixedParams FixedParams; nRetVal = XnHostProtocolGetFixedParams(m_pDevicePrivateData, FixedParams); if (nRetVal != XN_STATUS_OK) { } xnLogVerbose(XN_MASK_DEVICE_SENSOR, "Sensor serial number: %d", FixedParams.nSerialNumber); // fill in properties m_nZeroPlaneDistance = (XnDepthPixel)FixedParams.fReferenceDistance; m_dZeroPlanePixelSize = FixedParams.fReferencePixelSize; m_dEmitterDCmosDistance = FixedParams.fDCmosEmitterDistance; sprintf(m_strSensorSerial, "%x", FixedParams.nSerialNumber); return (XN_STATUS_OK); }