/// <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); } } }
/// <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) { } }