Пример #1
0
        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);
        }
Пример #2
0
        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;
                }
            }
        }