コード例 #1
0
ファイル: AddDevice.cpp プロジェクト: YTYOON/eNVR
void CAddDevice::GetCameraObj(ec_Camera& camObj)
{
	USES_CONVERSION;
	CString strAddress, strPort, str;
	GetKeyinAddress(strAddress, strPort);
	
	camObj.camera_idx = m_pbk->GetEmptyCameraIdx();
	camObj.ipaddress = strAddress;
	camObj.httpport = _ttoi(strPort);
	camObj.username = m_strUserName;
	camObj.password = m_strPassword;
	camObj.active_ = _T("Y");
	m_mapJason[_T("network")].GetValuebyKey(_T("gateway"), camObj.gateway);
	m_mapJason[_T("network")].GetValuebyKey(_T("dns1"), camObj.name_server);
	m_mapJason[_T("info")].GetValuebyKey(_T("macaddr"), camObj.mac_address);
	camObj.mac_address.Replace(_T(":"),_T(""));
	m_mapJason[_T("rs485")].GetValuebyKey(_T("proto"),camObj.ptz_protocol);
	m_mapJason[_T("info")].GetValuebyKey(_T("model"),camObj.model_code);
	
	GetCameraName(camObj.cameraname);
	GetConnectTypeCode(camObj.connect_type_code);
	GetBrandCode(camObj.brand_code);
	GetDigitalStatus(m_mapJason[_T("io")], _T("in1"), camObj.digital_in1);
	GetDigitalStatus(m_mapJason[_T("io")], _T("in2"), camObj.digital_in2);
	GetDigitalStatus(m_mapJason[_T("io")], _T("out1"), camObj.digital_out);
	GetVideoFormat(m_mapJason[_T("mcp")], camObj.video_format);
	GetNetMask(m_mapJason[_T("network")], camObj);
	GetPTZSupport(camObj.ptz_support);
	GetStreamUrl(camObj.stream_url);

	if (m_isONVIF)
	{
		DWORD dwVideoFormat = m_pbk->PackVideoFormat(0,0,ONVIF,0);
		NODEITEM node = m_vcNodes[0];
		m_pbk->TransMac2String(node.mac,camObj.mac_address);
		camObj.stream_url.Format(_T("%s"),node.stream_url);
		camObj.video_format.Format(_T("%d"),dwVideoFormat);
		camObj.model_code = A2W(node.modelname);
	}
}
コード例 #2
0
BOOL URLParser::FindVideos(std::vector<KEY_VAL_PAIR>& v_pairKeyVal)
{
    BOOL bRetVal = FALSE;
    BOOL bBreak  = FALSE;
    int  iFormat = 0;
    std::string strRawFormatString;
    std::string strRawVDOHeading = "Video Format ";
    std::string strVDOHeading;
    std::string strFMT1 = "&fmt_url_map=";
    std::string strFMT2 = "fmt_url_map\":\"";
    std::string strHTTP = "http";
    std::string strPattern0 ="%25";
    std::string strPattern1 ="%2C";
    std::string strPattern2 ="%2F";
    std::string strPattern3 ="%3D";
    std::string strPattern4 ="%3F";
    std::string strPattern5 ="%3A";
    std::string strPattern6 ="%26";
    std::string strNewPattern0 ="%";
    std::string strNewPattern1 =",";
    std::string strNewPattern2 ="/";
    std::string strNewPattern3 ="=";
    std::string strNewPattern4 ="?";
    std::string strNewPattern5 =":";
    std::string strNewPattern6 ="&";
    std::string strRawVDO;
    std::string strVDO;
    KEY_VAL_PAIR pairVDO;

    if(TRUE == m_objFileHelper.FindPattern(strFMT1, FALSE, FALSE))
    {
        while(TRUE == m_objFileHelper.FindPattern(strHTTP, FALSE, FALSE))
        {
            CHAR chFormat[10] = {0}; 
            strRawFormatString.clear();
            strVDOHeading.clear();
            if(TRUE == bBreak)
            {
                break;
            }
            m_objFileHelper.MoveBackwardByNBytes(12);
            m_objFileHelper.ReadBuffer(strRawFormatString, 12);
            iFormat = GetVideoFormat(strRawFormatString);
            itoa(iFormat, chFormat, 10);
            if(S_OK == m_objFileHelper.ReadBeforeTillMatchThisPattern(strHTTP, strRawVDO))
            {
                if(0 >= strRawVDO.length())
                {
                    bRetVal = FALSE;
                }
                else
                {
                    //strRawVDO.erase(0, 5);
                    Replace(strRawVDO,strPattern0, strNewPattern0);
                    Replace(strRawVDO,strPattern1, strNewPattern1);
                    Replace(strRawVDO,strPattern2, strNewPattern2);
                    Replace(strRawVDO,strPattern3, strNewPattern3);
                    Replace(strRawVDO,strPattern4, strNewPattern4);
                    Replace(strRawVDO,strPattern5, strNewPattern5);
                    Replace(strRawVDO,strPattern6, strNewPattern6);
                    int iPercent = strRawVDO.find("%");
                    int strlen = strRawVDO.length();
                    if(iPercent != std::string::npos)
                    {
                        strRawVDO.erase(iPercent, strlen - iPercent -1);
                    }
                    int iIndex = strRawVDO.rfind(',');
                    if(strlen - 10 > iIndex)
                    {
                        iIndex = strRawVDO.rfind('&');
                        strRawVDO.erase(iIndex, strlen - 1);
                        bBreak = TRUE;
                    }
                    else if(0 > iIndex)
                    {
                        break;
                    }
                    else
                    {
                        strRawVDO.erase(iIndex, strlen - 1);
                    }
                    
                    strRawVDO = strHTTP + strRawVDO;
                    strVDOHeading.assign(strRawVDOHeading);
                    strVDOHeading.append(chFormat);
                    pairVDO.first.assign(strVDOHeading.begin(),strVDOHeading.end());
                    pairVDO.second.assign(strRawVDO.begin(), strRawVDO.end());
                    v_pairKeyVal.push_back(pairVDO);
                    strRawVDO.clear();
                    bRetVal = TRUE;
                    //m_objFileHelper.MoveBackwardByNBytes(strHTTP.length());
                }
            }
        }
    }
    else if(TRUE == m_objFileHelper.FindPattern(strFMT2, TRUE))
    {
    }
    return bRetVal;
}