/// <summary>
        /// ע���豸
        /// </summary>
        /// <param name="device">�豸</param>
        private void LoginDevice(IDevice device, bool IsReconnect)
        {
            TwoEventArgs args = new TwoEventArgs();
            args.Obj1 = device;

            if (device.PTLSN == -1) // �ò�����������ͼƬ��Ϊ�����ʾ
            {
                //TODO:���豸û�������������ҵ����ʵ���������
                //SetDeviceErr(device, true);
                device.IsInWorking = false;

                args.Obj2 = true;
                this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);

                //device.DeviceHandle = -1;
                //dsi.UserID = -1;
                SetDevieHandle(device, -1);
            }
            else
            {
                if (!Convert.ToBoolean(device.DeviceWorkState)) // �豸����
                {
                    if (sdklibrarys[device.PTLSN].Enable) // ��������������
                    {
                        SDKPlugInData.DEVICEINFO info = new SDKPlugInData.DEVICEINFO();

                        int userID = -1;

                        if (IsReconnect)
                        {
                            userID = sdklibrarys[device.PTLSN].DeviceReconnect(device.DeviceHandle);
                        }
                        else
                        {
                            userID = sdklibrarys[device.PTLSN].DeviceLogin(device.DeviceIP, (ushort)device.DevicePort,
                                                                           device.DeviceUserName,
                                                                           device.DevicePWD, ref info, device.DeviceName);
                        }

                        SetDevieHandle(device, userID);
                        //device.DeviceHandle =
                        //dsi.UserID = device.DeviceHandle;
                        if (device.DeviceHandle != -1)
                        {
                            //����
                            sdklibrarys[device.PTLSN].SetupAlarmChan(device.DeviceHandle, device.DeviceID);
                        }

                        if (device.DeviceHandle == -1)
                        {
                            //TODO:���豸ע��ʧ��
                            device.IsInWorking = false;

                            args.Obj2 = true;
                            this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                        }
                        else
                        {
                            //ע��ɹ�
                            device.IsInWorking = true;

                            args.Obj2 = false;
                            this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                        }
                    }
                    else
                    {
                        //TODO:���豸�����Ѿ���ͣ��
                        device.IsInWorking = false;

                        args.Obj2 = true;
                        this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                    }
                }
                else
                {
                    //TODO:�豸������
                    device.IsInWorking = false;

                    args.Obj2 = true;
                    this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                }
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// �����¼�
 /// </summary>
 /// <param name="_taskNo">id</param>
 private void ExecuteEV( int _taskNo)
 {
     if (null != ExecuteEVEvent)
     {
         TwoEventArgs args = new TwoEventArgs();
         args.Obj1 = _taskNo;
         args.Obj2 = param;
         ExecuteEVEvent(this, args);
     }
 }
        void task_ExecuteEVEvent(object sender, TwoEventArgs e)
        {
            IDevice device = (IDevice)e.Obj2;

            try
            {
                PingReply pr = ping.Send(device.DeviceIP);

                TwoEventArgs args = new TwoEventArgs();
                args.Obj1 = device;

                if (IPStatus.Success == pr.Status)
                {
                    Console.WriteLine("{0} {1} ͨ", DateTime.Now, device.DeviceIP);

                    if (!device.IsInWorking)
                    {
                        LoginDevice(device, true);
                    }

                    //args.Obj2 = false;
                    //this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                    //SetDeviceErr(device, false);
                }
                else
                {
                    Console.WriteLine("{0} {1} ��ͨ", DateTime.Now, device.DeviceIP);

                    device.IsInWorking = false;

                    args.Obj2 = true;
                    this.BeginInvoke(new EventHandler(SetDeviceErrUI), args);
                    //SetDeviceErr(device, true);
                }
            }
            catch (Exception)
            {

            }
        }