private CHCNetSDK.NET_DVR_PICCFG_V30 getOSDConfig(int m_lChannel) { uint dwReturned = 0; CHCNetSDK.NET_DVR_PICCFG_V30 m_struOsdCfg = new CHCNetSDK.NET_DVR_PICCFG_V30(); uint dwSize = (uint)Marshal.SizeOf(m_struOsdCfg); IntPtr ptrOsdCfg = Marshal.AllocHGlobal((Int32)dwSize); Marshal.StructureToPtr(m_struOsdCfg, ptrOsdCfg, false); // configure OSD parameters if (!CHCNetSDK.NET_DVR_GetDVRConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_PICCFG_V30, m_lChannel, ptrOsdCfg, dwSize, ref dwReturned)) { uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string str = "NET_DVR_GET_PICCFG_V30, error code= " + iLastErr; Marshal.FreeHGlobal(ptrOsdCfg); } else { m_struOsdCfg = (CHCNetSDK.NET_DVR_PICCFG_V30)Marshal.PtrToStructure(ptrOsdCfg, typeof(CHCNetSDK.NET_DVR_PICCFG_V30)); Marshal.FreeHGlobal(ptrOsdCfg); //m_bChkDisplayName = m_struOsdCfg.dwShowChanName; //m_bChkDisplayTime = m_struOsdCfg.dwShowOsd; //textBoxDisplayName.Text = m_struOsdCfg.sChanName; //comboBoxDateFormat.SelectedIndex = (int)m_struOsdCfg.byOSDType; //comboBoxTimeFormat.SelectedIndex = (int)m_struOsdCfg.byHourOSDType; //comboBoxOSDAttribute.SelectedIndex = (int)(m_struOsdCfg.byOSDAttrib - 1); } return(m_struOsdCfg); }
public void RefreshIPDevLocalCfg(int iDeviceIndex) { CHCNetSDK.NET_DVR_IPPARACFG_V40 struIPAccessCfgV40 = g_struDeviceInfo[iDeviceIndex].pStruIPParaCfgV40[g_struDeviceInfo[iDeviceIndex].iGroupNO]; uint dwChanShow = 0; int iIPChanIndex = 0; int i = 0; g_struDeviceInfo[iDeviceIndex].iIPChanNum = (int)struIPAccessCfgV40.dwDChanNum; int iAnalogChanCount = 0; int iIPChanCount = 0; int iGroupNO = g_struDeviceInfo[iDeviceIndex].iGroupNO; //Group NO. int iGroupNum = (int)struIPAccessCfgV40.dwGroupNum; int iIPChanNum = g_struDeviceInfo[iDeviceIndex].iIPChanNum; for (i = 0; i < CHCNetSDK.MAX_CHANNUM_V30; i++) { //analog channel if (iAnalogChanCount < g_struDeviceInfo[iDeviceIndex].iAnalogChanNum) { dwChanShow = (uint)(iAnalogChanCount + g_struDeviceInfo[iDeviceIndex].iStartChan + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64); g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iDeviceIndex = iDeviceIndex; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanIndex = i; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanType = CHCNetSDK.DEMO_CHANNEL_TYPE.DEMO_CHANNEL_TYPE_ANALOG; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChannelNO = (int)dwChanShow; g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].chChanName = string.Format("Camera{0}", i + g_struDeviceInfo[m_iDeviceIndex].iStartChan - g_struDeviceInfo[m_iDeviceIndex].iAnalogChanNum); //analog devices if (struIPAccessCfgV40.byAnalogChanEnable[i] > 0) { g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable = true; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].dwImageType = CHCNetSDK.CHAN_ORIGINAL; //g_struDeviceInfo[iDeviceIndex].iEnableChanNum ++; } else { g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable = false; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].dwImageType = CHCNetSDK.CHAN_OFF_LINE; } iAnalogChanCount++; } else if (iGroupNO >= 0 && ((iIPChanCount + iGroupNO * CHCNetSDK.MAX_CHANNUM_V30) < iIPChanNum) && (iIPChanCount < iIPChanNum)) { byte enabeled = struIPAccessCfgV40.struIPDevInfo[i].byEnable; dwChanShow = (uint)(iIPChanCount + iGroupNO * CHCNetSDK.MAX_CHANNUM_V30 + struIPAccessCfgV40.dwStartDChan); g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanType = CHCNetSDK.DEMO_CHANNEL_TYPE.DEMO_CHANNEL_TYPE_IP; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChannelNO = (int)dwChanShow; //if (i == 0) // StartDChan = (byte)dwChanShow; iIPChanIndex = iIPChanCount; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iDeviceIndex = iDeviceIndex; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanIndex = i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64; //g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].chChanName = // string.Format("IPCamera{0}", iIPChanCount + iGroupNO * CHCNetSDK.MAX_CHANNUM_V30 + 1); CHCNetSDK.NET_DVR_PICCFG_V30 m_struOsdCfg = getOSDConfig((int)dwChanShow); //通道名称 if (enabeled == 1) {//在线 if (!String.IsNullOrEmpty(m_struOsdCfg.sChanName)) { g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].chChanName = getOSDConfig((int)dwChanShow).sChanName; } g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].bEnable = true; } else {//离线 g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].chChanName = string.Format("IPCamera{0}", iIPChanCount + iGroupNO * CHCNetSDK.MAX_CHANNUM_V30 + 1); g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].bEnable = false; } //if (struIPAccessCfgV40.struStreamMode[iIPChanIndex].uGetStream.struChanInfo.byEnable != 0) //struIPAccessCfgV40.struStreamMode[iIPChanIndex].uGetStream.struChanInfo.byIPID != 0 && //{ // g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable = true;// // if (struIPAccessCfgV40.struStreamMode[iIPChanIndex].uGetStream.struChanInfo.byEnable > 0) // { // g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].dwImageType = CHCNetSDK.CHAN_ORIGINAL; // } // else // { // g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].dwImageType = CHCNetSDK.CHAN_OFF_LINE; // } // // g_struDeviceInfo[iDeviceIndex].iEnableChanNum ++; //} //else //{ // g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].dwImageType = CHCNetSDK.CHAN_OFF_LINE; // g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable = false; // //g_struDeviceInfo[iDeviceIndex].struChanInfo[i].bAlarm = FALSE; //} iIPChanCount++; } else { g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iDeviceIndex = -1; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanIndex = -1; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChanType = CHCNetSDK.DEMO_CHANNEL_TYPE.DEMO_CHANNEL_TYPE_INVALID; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].iChannelNO = -1; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable = false; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bAlarm = false; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bLocalManualRec = false; g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].lRealHandle = -1; g_struDeviceInfo[m_iDeviceIndex].pStruChanInfo[i].chChanName = ""; } } for (i = 0; i < CHCNetSDK.MAX_CHANNUM_V40; i++) { if (g_struDeviceInfo[iDeviceIndex].pStruChanInfo[i + g_struDeviceInfo[iDeviceIndex].iGroupNO * 64].bEnable) { g_struDeviceInfo[iDeviceIndex].lFirstEnableChanIndex = i; break; } } }