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); } }
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; }