private void setDeviceInfoListView(NETDEV_DISCOVERY_DEVINFO_S stDevInfo) { if (DeviceInfoListView.InvokeRequired) { SetDeviceInfoListView setInfo = new SetDeviceInfoListView(setDeviceInfoListView); DeviceInfoListView.Invoke(setInfo, new object[] { stDevInfo }); } else { string str = null; switch (stDevInfo.enDevType) { case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_UNKNOWN: str = "UNKNOWN"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_IPC: str = "IPC"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_IPC_FISHEYE: str = "IPC_DISECONOMIC_FISHEYE"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_IPC_ECONOMIC_FISHEYE: str = "IPC_ECONOMIC_FISHEYE"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_NVR: str = "NVR"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_NVR_BACKUP: str = "NVR_BACKUP"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_DC: str = "DC"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_EC: str = "EC"; break; case NETDEV_DEVICETYPE_E.NETDEV_DTYPE_VMS: str = "VMS"; break; default: str = "INVALID"; break; } ListViewItem oListViewItem = new ListViewItem(str); oListViewItem.SubItems.AddRange(new String[] { stDevInfo.szDevAddr, Convert.ToString(stDevInfo.dwDevPort), stDevInfo.szDevMac, stDevInfo.szDevSerailNum, stDevInfo.szManuFacturer }); this.DeviceInfoListView.Items.Add(oListViewItem); deviceNumberLabel.Text = Convert.ToString(DeviceInfoListView.Items.Count); oListViewItem.EnsureVisible(); } }
private void DiscoveryCallBack(IntPtr pstDevInfo, IntPtr lpUserData) { NETDEV_DISCOVERY_DEVINFO_S stDevInfo = (NETDEV_DISCOVERY_DEVINFO_S)Marshal.PtrToStructure(pstDevInfo, typeof(NETDEV_DISCOVERY_DEVINFO_S)); for (int i = 0; i < oDeviceInfoList.Count(); i++) { if (stDevInfo.szDevAddr == oDeviceInfoList[i].szDevAddr && stDevInfo.szDevSerailNum == oDeviceInfoList[i].szDevSerailNum) { return; } } oDeviceInfoList.Add(stDevInfo); if (stDevInfo.enDevType == NETDEV_DEVICETYPE_E.NETDEV_DTYPE_IPC) { Configuration config = System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var ipaddress = config.AppSettings.Settings["ipaddress"].Value; var ipcpass = config.AppSettings.Settings["ipcpass"].Value; var ipclogin = config.AppSettings.Settings["ipclogin"].Value; if (!string.IsNullOrEmpty(ipaddress) && stDevInfo.szDevAddr == ipaddress) { DeviceInfo deviceInfoTemp = new DeviceInfo(); deviceInfoTemp.m_ip = stDevInfo.szDevAddr; deviceInfoTemp.m_port = (short)stDevInfo.dwDevPort; deviceInfoTemp.m_userName = ipclogin; deviceInfoTemp.m_password = ipcpass; deviceInfoTemp.m_eDeviceType = NETDEMO_DEVICE_TYPE_E.NETDEMO_DEVICE_IPC_OR_NVR; DevLogin(deviceInfoTemp); DeviceInfo = deviceInfoTemp; StartRtc(); SetPreset(); } } }
//discovery callback private void discoveryCallBack(IntPtr pstDevInfo, IntPtr lpUserData) { NETDEV_DISCOVERY_DEVINFO_S stDevInfo = (NETDEV_DISCOVERY_DEVINFO_S)Marshal.PtrToStructure(pstDevInfo, typeof(NETDEV_DISCOVERY_DEVINFO_S)); for (int i = 0; i < oDeviceInfoList.Count(); i++) { if (stDevInfo.szDevAddr == oDeviceInfoList[i].szDevAddr && stDevInfo.szDevSerailNum == oDeviceInfoList[i].szDevSerailNum) { return; } } oDeviceInfoList.Add(stDevInfo); setDeviceInfoListView(stDevInfo); }