示例#1
0
        private void buttonSet_Click(object sender, EventArgs e)
        {
            //init
            m_struEventCardLinkageCfgV50 = new CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_CFG_V50();
            m_struEventCardLinkageCfgV50.Init();
            m_struEventCardLinkageCond       = new CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_COND();
            m_struEventCardLinkageCond.byRes = new byte[106];

            //update
            UpdateUserData();
            m_struEventCardLinkageCfgV50.byCapturePic  = (byte)(checkBoxSnapshortLinkage.Checked ? 1 : 0);
            m_struEventCardLinkageCfgV50.byRecordVideo = (byte)(checkBoxRecordLinkage.Checked ? 1 : 0);
            uint.TryParse(textBoxEventNo.Text, out m_struEventCardLinkageCond.dwEventID);
            ushort.TryParse(textBoxLocalConID.Text, out m_struEventCardLinkageCond.wLocalControllerID);

            //allocate unmanaged resources
            uint dwSize = (uint)Marshal.SizeOf(m_struEventCardLinkageCond);

            m_struEventCardLinkageCond.dwSize = dwSize;

            IntPtr ptrStruCond = Marshal.AllocHGlobal((int)dwSize);

            Marshal.StructureToPtr(m_struEventCardLinkageCond, ptrStruCond, false);
            IntPtr ptrDwReturned = Marshal.AllocHGlobal(4);

            uint dwSizeCfg = (uint)Marshal.SizeOf(m_struEventCardLinkageCfgV50);

            m_struEventCardLinkageCfgV50.dwSize = dwSizeCfg;
            IntPtr ptrStruCfg = Marshal.AllocHGlobal((int)dwSize);

            Marshal.StructureToPtr(m_struEventCardLinkageCfgV50, ptrStruCfg, false);

            //connect to device
            if (!CHCNetSDK.NET_DVR_SetDeviceConfig(m_lUserID, CHCNetSDK.NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50, 1, ptrStruCond, dwSize, ptrDwReturned, ptrStruCfg, dwSizeCfg))
            {
                g_formList.AddLog(m_iDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50 Failed");
                MessageBox.Show("Set event card linkage cfg Failed");
            }
            else
            {
                g_formList.AddLog(m_iDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50 SUCC");
            }

            Marshal.FreeHGlobal(ptrStruCond);
            Marshal.FreeHGlobal(ptrStruCfg);
            Marshal.FreeHGlobal(ptrDwReturned);
        }
示例#2
0
        private void buttonGet_Click(object sender, EventArgs e)
        {
            uint dwSize = (uint)Marshal.SizeOf(m_struEventCardLinkageCond);

            m_struEventCardLinkageCond.dwSize = dwSize;
            uint.TryParse(textBoxEventNo.Text, out m_struEventCardLinkageCond.dwEventID);
            ushort.TryParse(textBoxLocalConID.Text, out m_struEventCardLinkageCond.wLocalControllerID);

            IntPtr ptrStruCond = Marshal.AllocHGlobal((int)dwSize);

            Marshal.StructureToPtr(m_struEventCardLinkageCond, ptrStruCond, false);
            IntPtr ptrDwReturned = Marshal.AllocHGlobal(4);

            uint dwSizeCfg = (uint)Marshal.SizeOf(m_struEventCardLinkageCfgV50);

            m_struEventCardLinkageCfgV50.dwSize = dwSizeCfg;
            IntPtr ptrStruCfg = Marshal.AllocHGlobal((int)dwSize);

            Marshal.StructureToPtr(m_struEventCardLinkageCfgV50, ptrStruCfg, false);

            if (!CHCNetSDK.NET_DVR_GetDeviceConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50, 1, ptrStruCond, dwSize, ptrDwReturned, ptrStruCfg, dwSizeCfg))
            {
                g_formList.AddLog(m_iDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50 Failed");
                MessageBox.Show("Get event card linkage cfg failed");
            }
            else
            {
                uint dwStatus = (uint)Marshal.ReadInt32(ptrDwReturned);
                if (dwStatus != CHCNetSDK.NET_DVR_NOERROR)
                {
                    string strTemp = null;
                    strTemp = string.Format("NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50 Error Status{0}", dwStatus);
                    MessageBox.Show(strTemp);
                    Marshal.FreeHGlobal(ptrStruCond);
                    Marshal.FreeHGlobal(ptrStruCfg);
                    Marshal.FreeHGlobal(ptrDwReturned);
                    return;
                }

                //get data from unmanaged memory
                m_struEventCardLinkageCfgV50 = (CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_CFG_V50)Marshal.PtrToStructure(ptrStruCfg, typeof(CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_CFG_V50));

                g_formList.AddLog(m_iDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50 SUCC");
                if (m_struEventCardLinkageCfgV50.byProMode == 1)
                {
                    m_byProMode = true;
                    checkBoxCardNoLinkage.Checked = true;
                }
                if (m_struEventCardLinkageCfgV50.byProMode == 2)
                {
                    m_byMacAddr = true;
                    checkBoxMacAddressLinkage.Checked = true;
                }
                textBoxEventSourceID.Text        = m_struEventCardLinkageCfgV50.dwEventSourceID.ToString();
                checkBoxBuzzer.Checked           = (m_struEventCardLinkageCfgV50.byMainDevBuzzer == 1) ? true : false;
                checkBoxSnapshortLinkage.Checked = (m_struEventCardLinkageCfgV50.byCapturePic == 1) ? true : false;
                checkBoxRecordLinkage.Checked    = (m_struEventCardLinkageCfgV50.byRecordVideo == 1) ? true : false;

                if (m_byProMode)
                {
                    textBoxCardNo.Text = string.Format("{0}", m_struEventCardLinkageCfgV50.uLinkageInfo.byCardNo);
                }
                if (m_byMacAddr)
                {
                    textBoxMacAddress.Text = string.Format("{0:x2}:{0:x2}:{0:x2}:{0:x2}:{0:x2}:{0:x2}", m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[0], m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[1],
                                                           m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[2], m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[3], m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[4],
                                                           m_struEventCardLinkageCfgV50.uLinkageInfo.byMACAddr[5]);
                }
                if (m_byProMode == false && m_byMacAddr == false)
                {
                    comboBoxMajorEventType.SelectedIndex = m_struEventCardLinkageCfgV50.uLinkageInfo.struEventLinkage.wMainEventType;

                    int dwMainEventType = comboBoxMajorEventType.SelectedIndex;
                    if (dwMainEventType == 0)
                    {
                        SubEventTypeDev();
                    }
                    else if (dwMainEventType == 1)
                    {
                        SubEventTypeAlarm();
                    }
                    else if (dwMainEventType == 2)
                    {
                        SubEventTypeDoor();
                    }
                    else if (dwMainEventType == 3)
                    {
                        SubEventTypeCardReader();
                    }

                    comboBoxMinorEventType.SelectedIndex = m_struEventCardLinkageCfgV50.uLinkageInfo.struEventLinkage.wSubEventType;
                }
                CreateChecklistBox();
            }

            Marshal.FreeHGlobal(ptrStruCond);
            Marshal.FreeHGlobal(ptrStruCfg);
            Marshal.FreeHGlobal(ptrDwReturned);
        }