Ejemplo n.º 1
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_struEventCardLinkageCfgV51);

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

            Marshal.StructureToPtr(m_struEventCardLinkageCfgV51, ptrStruCfg, false);

            if (!CHCNetSDK.NET_DVR_GetDeviceConfig(m_lUserID, CHCNetSDK.NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V51, 1,
                                                   ptrStruCond, dwSize, ptrDwReturned, ptrStruCfg, dwSizeCfg))
            {
                g_formList.AddLog(m_iDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V51 Failed");
                uint error = CHCNetSDK.NET_DVR_GetLastError();
                MessageBox.Show("Get event card linkage cfg failed" + ":" + error);
            }
            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_V51 Error Status{0}", dwStatus);
                    MessageBox.Show(strTemp);
                    Marshal.FreeHGlobal(ptrStruCond);
                    Marshal.FreeHGlobal(ptrStruCfg);
                    Marshal.FreeHGlobal(ptrDwReturned);
                    return;
                }
                //get data from unmanaged memory
                m_struEventCardLinkageCfgV51 = (CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_CFG_V51)Marshal.PtrToStructure(ptrStruCfg, typeof(CHCNetSDK.NET_DVR_EVENT_CARD_LINKAGE_CFG_V51));

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

                if (m_byProMode)
                {
                    textBoxCardNo.Text = System.Text.Encoding.Default.GetString(m_struEventCardLinkageCfgV51.uLinkageInfo.byRes);
                }
                if (m_byMacAddr)
                {
                    textBoxMacAddress.Text = string.Format("{0:x2}:{0:x2}:{0:x2}:{0:x2}:{0:x2}:{0:x2}", m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[0], m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[1],
                                                           m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[2], m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[3], m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[4],
                                                           m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[5]);
                }
                if (m_byEmployeeNo)
                {
                    textBoxEmployeeNo.Text = System.Text.Encoding.Default.GetString(m_struEventCardLinkageCfgV51.uLinkageInfo.byRes);
                }

                if (m_byProMode == false && m_byMacAddr == false && m_byEmployeeNo == false)
                {
                    Int32  dwLinkageSize = Marshal.SizeOf(m_struEventCardLinkageCfgV51.uLinkageInfo);
                    IntPtr ptrEventLink  = Marshal.AllocHGlobal(dwLinkageSize);
                    Marshal.StructureToPtr(m_struEventCardLinkageCfgV51.uLinkageInfo, ptrEventLink, false);
                    CHCNetSDK.NET_DVR_EVENT_LINKAGE_INFO struEventLinkage = (CHCNetSDK.NET_DVR_EVENT_LINKAGE_INFO)Marshal.PtrToStructure(ptrEventLink, typeof(CHCNetSDK.NET_DVR_EVENT_LINKAGE_INFO));
                    Marshal.FreeHGlobal(ptrEventLink);
                    comboBoxMajorEventType.SelectedIndex = 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 = struEventLinkage.wSubEventType;
                }
                CreateChecklistBox();
            }
            m_byProMode    = false;
            m_byMacAddr    = false;
            m_byEmployeeNo = false;
            Marshal.FreeHGlobal(ptrStruCond);
            Marshal.FreeHGlobal(ptrStruCfg);
            Marshal.FreeHGlobal(ptrDwReturned);
        }
Ejemplo n.º 2
0
        //get current ChecklistBox selected status from controls set by user
        private void UpdateUserData()
        {
            //card no. is preferred
            if (checkBoxCardNoLinkage.Checked)
            {
                m_struEventCardLinkageCfgV51.byProMode = 1;
            }
            else if (checkBoxMacAddressLinkage.Checked)
            {
                m_struEventCardLinkageCfgV51.byProMode = 2;
            }
            else if (checkBoxEmployeeNoLinkage.Checked)
            {
                m_struEventCardLinkageCfgV51.byProMode = 3;
            }

            if (!checkBoxCardNoLinkage.Checked && !checkBoxMacAddressLinkage.Checked && !checkBoxEmployeeNoLinkage.Checked)
            {
                m_struEventCardLinkageCfgV51.byProMode = 0;
            }
            uint.TryParse(textBoxEventSourceID.Text, out m_struEventCardLinkageCfgV51.dwEventSourceID);
            m_struEventCardLinkageCfgV51.byMainDevBuzzer = (byte)(checkBoxBuzzer.Checked ? 1 : 0);

            if (m_struEventCardLinkageCfgV51.byProMode == 1)
            {
                byte [] byTempCardNo = System.Text.Encoding.UTF8.GetBytes(textBoxCardNo.Text);

                m_struEventCardLinkageCfgV51.uLinkageInfo.byRes = new byte[CHCNetSDK.ACS_CARD_NO_LEN];
                Array.Copy(byTempCardNo, m_struEventCardLinkageCfgV51.uLinkageInfo.byRes, byTempCardNo.Length);
            }
            if (m_struEventCardLinkageCfgV51.byProMode == 2)
            {
                string sTempMACAddr = textBoxMacAddress.Text;
                if (sTempMACAddr.Length != "1A:2B:3C:4D:5E:6F".Length)
                {
                    MessageBox.Show("Mac address error!");
                    return;
                }
                string[] sTempMACAddrSec = new string[6];

                sTempMACAddrSec[0] = sTempMACAddr.Substring(0, 2);
                m_struEventCardLinkageCfgV51.uLinkageInfo.byRes = new byte[CHCNetSDK.MACADDR_LEN];
                byte.TryParse(sTempMACAddrSec[0], out m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[0]);

                for (int i = 1; i < 6; i++)
                {
                    sTempMACAddrSec[i] = sTempMACAddr.Substring(2 * i + 1, 2);
                    byte.TryParse(sTempMACAddrSec[i], out m_struEventCardLinkageCfgV51.uLinkageInfo.byRes[i]);
                }
            }
            if (m_struEventCardLinkageCfgV51.byProMode == 3)
            {
                byte [] byTempEmployeeNo = System.Text.Encoding.UTF8.GetBytes(textBoxEmployeeNo.Text);
                m_struEventCardLinkageCfgV51.uLinkageInfo.byRes = new byte[CHCNetSDK.NET_SDK_EMPLOYEE_NO_LEN];
                Array.Copy(byTempEmployeeNo, m_struEventCardLinkageCfgV51.uLinkageInfo.byRes, byTempEmployeeNo.Length);
            }
            if (m_struEventCardLinkageCfgV51.byProMode == 0)
            {
                Int32  dwSize       = Marshal.SizeOf(m_struEventCardLinkageCfgV51.uLinkageInfo);
                IntPtr ptrEventLink = Marshal.AllocHGlobal(dwSize);

                CHCNetSDK.NET_DVR_EVENT_LINKAGE_INFO struEventLinkage = new CHCNetSDK.NET_DVR_EVENT_LINKAGE_INFO();
                struEventLinkage.wMainEventType = (ushort)comboBoxMajorEventType.SelectedIndex;
                struEventLinkage.wSubEventType  = (ushort)comboBoxMinorEventType.SelectedIndex;

                Marshal.StructureToPtr(struEventLinkage, ptrEventLink, false);
                m_struEventCardLinkageCfgV51.uLinkageInfo = (CHCNetSDK.NET_DVR_EVETN_CARD_LINKAGE_UNION)Marshal.PtrToStructure(ptrEventLink, typeof(CHCNetSDK.NET_DVR_EVETN_CARD_LINKAGE_UNION));
                Marshal.FreeHGlobal(ptrEventLink);
            }

            int dwCountAlarmOut = checkedListBoxAlarmOut.Items.Count;

            for (int i = 0; i < dwCountAlarmOut; i++)
            {
                if (checkedListBoxAlarmOut.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byAlarmout[i] = 1;
                }
            }

            int dwCountOpenDoor = checkedListBoxOpenDoor.Items.Count;

            for (int i = 0; i < dwCountOpenDoor; i++)
            {
                if (checkedListBoxOpenDoor.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byOpenDoor[i] = 1;
                }
            }

            int dwCountNormalClose = checkedListBoxAlwaysCloseDoor.Items.Count;

            for (int i = 0; i < dwCountNormalClose; i++)
            {
                if (checkedListBoxAlwaysCloseDoor.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byNormalClose[i] = 1;
                }
            }

            int dwCountAlarmOutClose = checkedListBoxAlarmOutClose.Items.Count;

            for (int i = 0; i < dwCountAlarmOutClose; i++)
            {
                if (checkedListBoxAlarmOutClose.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byAlarmOutClose[i] = 1;
                }
            }

            int dwCountCloseDoor = checkedListBoxCloseDoor.Items.Count;

            for (int i = 0; i < dwCountCloseDoor; i++)
            {
                if (checkedListBoxCloseDoor.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byCloseDoor[i] = 1;
                }
            }

            int dwCountAlarmInSetup = checkedListBoxArming.Items.Count;

            for (int i = 0; i < dwCountAlarmInSetup; i++)
            {
                if (checkedListBoxArming.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byAlarmInSetup[i] = 1;
                }
            }

            int dwCountReaderBuzzer = checkedListBoxBuzzerReaderCard.Items.Count;

            for (int i = 0; i < dwCountReaderBuzzer; i++)
            {
                if (checkedListBoxBuzzerReaderCard.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byReaderBuzzer[i] = 1;
                }
            }

            int dwCountNormalOpen = checkedListBoxAlwaysOpenDoor.Items.Count;

            for (int i = 0; i < dwCountNormalOpen; i++)
            {
                if (checkedListBoxAlwaysOpenDoor.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byNormalOpen[i] = 1;
                }
            }

            int dwCountAlarmInClose = checkedListBoxDisarming.Items.Count;

            for (int i = 0; i < dwCountAlarmInClose; i++)
            {
                if (checkedListBoxDisarming.GetItemChecked(i))
                {
                    m_struEventCardLinkageCfgV51.byAlarmInClose[i] = 1;
                }
            }
        }