/*
 * Get the DAT header from the DAT file header object.
 */
string CELConversionUtilities::GetDatHeader(CelFileData &inFile)
{
    std::wstring datHeader;

    GenDataHdrVectorIt begin, end;
    inFile.GetFileHeader()->GetGenericDataHdr()->GetParentIterators(begin, end);

    // Find the DAT generic header
    for (GenDataHdrVectorIt ii = begin; ii != end; ++ii)
    {
        std::string s = ii->GetFileTypeId();
        if (ii->GetFileTypeId() == SCAN_ACQUISITION_DATA_TYPE)
        {

            // found the right header, now look for the parameter
            ParameterNameValueType nvt;
            if (ii->FindNameValParam(DAT_HEADER_PARAM_NAME, nvt))
            {
                if (nvt.GetParameterType() == ParameterNameValueType::TextType)
                    datHeader = nvt.GetValueText();
            }
            else if (ii->FindNameValParam(PARTIAL_DAT_HEADER_PARAM_NAME, nvt))
            {
                if (nvt.GetParameterType() == ParameterNameValueType::TextType)
                {
                    std::wstring partialDatHeader = nvt.GetValueText();

                    u_int16_t min = 0;
                    u_int16_t max = 0;

                    // Find the max and min parameters and append to the string.
                    if (ii->FindNameValParam(MAX_PIXEL_INTENSITY_PARAM_NAME, nvt))
                    {
                        if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type)
                            max = nvt.GetValueUInt16();
                    }

                    if (ii->FindNameValParam(MIN_PIXEL_INTENSITY_PARAM_NAME, nvt))
                    {
                        if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type)
                            min = nvt.GetValueUInt16();
                    }

                    wchar_t buf[30];
                    FormatString2(buf, 30, L"[%d..%d]", min, max);
                    datHeader = buf;
                    datHeader += partialDatHeader;
                }
            }
            break;
        }
    }
    return StringUtils::ConvertWCSToMBS(datHeader);
}
Пример #2
0
std::wstring CalvinCELDataAdapter::GetDatHeader()
{
	std::wstring datHeader;

	//GenDataHdrVectorIt begin, end; 
	GenericDataHeader* gdh = calvinCel.GetFileHeader()->GetGenericDataHdr()->FindParent(SCAN_ACQUISITION_DATA_TYPE);
	if (gdh)
	{
		// found the right header, now look for the parameter
		ParameterNameValueType nvt;
		if (gdh->FindNameValParam(DAT_HEADER_PARAM_NAME, nvt))
		{
			if (nvt.GetParameterType() == ParameterNameValueType::TextType)
				datHeader = nvt.GetValueText();
		}
		else if (gdh->FindNameValParam(PARTIAL_DAT_HEADER_PARAM_NAME, nvt))
		{
			if (nvt.GetParameterType() == ParameterNameValueType::TextType)
			{
				std::wstring partialDatHeader = nvt.GetValueText();

				u_int16_t min = 0;
				u_int16_t max = 0;

				// Find the max and min parameters and append to the string.
				if (gdh->FindNameValParam(MAX_PIXEL_INTENSITY_PARAM_NAME, nvt))
				{
					if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type)
						max = nvt.GetValueUInt16();
				}

				if (gdh->FindNameValParam(MIN_PIXEL_INTENSITY_PARAM_NAME, nvt))
				{
					if (nvt.GetParameterType() == ParameterNameValueType::UInt16Type)
						min = nvt.GetValueUInt16();
				}

				wchar_t buf[30]=L"";
				FormatString2(buf, 30, L"[%d..%d]", min, max);
				datHeader = buf;
				datHeader += partialDatHeader;
			}
		}
	}
	return datHeader;
}
Пример #3
0
int CalvinCELDataAdapter::GetCellMargin()
{
	ParameterNameValueType nvt;
	if (calvinCel.FindAlgorithmParameter(CELLMARGIN_PARAM_NAME, nvt))
	{
		switch(nvt.GetParameterType())
		{
		case ParameterNameValueType::Int32Type:
			return nvt.GetValueInt32();
			break;
		case ParameterNameValueType::Int16Type:
			return (int)nvt.GetValueInt16();
			break;
		case ParameterNameValueType::Int8Type:
			return (int)nvt.GetValueInt8();
			break;
		case ParameterNameValueType::UInt32Type:
			return (int)nvt.GetValueUInt32();
			break;
		case ParameterNameValueType::UInt16Type:
			return (int)nvt.GetValueUInt16();
			break;
		case ParameterNameValueType::UInt8Type:
			return (int)nvt.GetValueUInt8();
			break;
		case ParameterNameValueType::AsciiType:
			return (int)atoi(nvt.GetValueAscii().c_str());
		default:
			return 0;
			break;
		}
	}
	else
	{
		return 0;
	}
}