Zkemkeeper OnDisconnectedEvent не срабатывает в С#

Общие сведения: у меня подключил приложение оконной формы к биометрической машине посещаемости (модель ZKTeco K20). Подключение установлено, но возникла проблема с событием OnDisconncted.

У меня есть этот фрагмент кода, здесь зарегистрировано событие onDisconnected, но, к сожалению, оно не срабатывает (всякий раз, когда я выключал устройство или отключал сетевой кабель).

 public bool Connect_Net(string IPAdd, int Port)
        {   
            if (objCZKEM.Connect_Net(IPAdd, Port))
            {
                //65535, 32767
                //if (objCZKEM.RegEvent(1, 32767))//old
                if (objCZKEM.RegEvent(1, 65535))
                {
                    //MessageBox.Show("Connect_Net");
                    // [ Register your events here ]
                    // [ Go through the _IZKEMEvents_Event class for a complete list of events
                    objCZKEM.OnConnected += ObjCZKEM_OnConnected;
                    //objCZKEM.OnDisConnected += objCZKEM_OnDisConnected;
                    objCZKEM.OnDisConnected += new _IZKEMEvents_OnDisConnectedEventHandler(objCZKEM_OnDisConnected);
                    objCZKEM.OnEnrollFinger += ObjCZKEM_OnEnrollFinger;
                    objCZKEM.OnFinger += ObjCZKEM_OnFinger;
                    objCZKEM.OnAttTransactionEx += new _IZKEMEvents_OnAttTransactionExEventHandler(zkemClient_OnAttTransactionEx);
                    //objCZKEM.OnAttTransactionEx += new _IZKEMEvents_OnAttTransactionExEventHandler(objServerInteraction.zkemClient_OnAttTransactionEx);
                    objCZKEM.OnAlarm += OnAlarm;
                    objCZKEM.OnNewUser += OnNewUser;
                    objCZKEM.OnKeyPress += OnKeyPress;

                }
                return true;
            }
            return false;
        }

Остальная часть события, например OnAttTransactionEx, выполняется нормально, но всякий раз, когда мое устройство учета рабочего времени (Zketeco) выключается, оно не запускает событие objCZKEM_OnDisConnected. Срабатывает ли это событие при выключении устройства (автомат посещаемости)? Или я неправильно регистрирую?

Вот ссылка< /a> откуда я взял этот код с учебником.


person Muhammad Faizan Khan    schedule 30.08.2018    source источник
comment
OnDisConnected не может быть запущено, когда ваше устройство выключено, оно всегда срабатывает, когда ваше устройство отключено. перед выключением вы должны отключить свое устройство, чтобы OnDisConnected было запущено   -  person er-sho    schedule 30.08.2018
comment
На самом деле мое приложение не отвечает всякий раз, когда оно отключается от устройства. Вот почему я хочу такого рода события, чтобы я мог снова установить соединение.   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
что означает отключенное устройство?   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
ты прослушал все события ReadRTLog и GetRTLog? в цикле   -  person er-sho    schedule 30.08.2018
comment
что означает устройство отключено => означает, что ваше устройство успешно отключилось от вашего ПК   -  person er-sho    schedule 30.08.2018
comment
Нет, я не знаю о ReadRTLog и GetRTLog. Дайте мне ссылки на него, поэтому я изучаю. Кроме того, мое устройство подключилось к моему приложению Windows Form. почему это событие для отключения ПК. ?   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
так что все остальные ваши события работают, кроме OnDisConnected?   -  person er-sho    schedule 30.08.2018
comment
На самом деле я пока использую только OnAttTransactionEx   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
поэтому я должен знать, OnAttTransactionEx уволен или нет, когда пользователь проверен устройством   -  person er-sho    schedule 30.08.2018
comment
Да, да, он работает нормально, как я уже упоминал в вопросе.   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
ваше устройство TFT устройство правильно?   -  person er-sho    schedule 30.08.2018
comment
У меня есть этот homeshopping.pk/products/   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
А вот ссылка на мой проект codeproject.com/Articles/ 1104538/   -  person Muhammad Faizan Khan    schedule 30.08.2018
comment
поэтому добавьте таймер в свою форму и в событии Tick таймера добавьте этот код if (objCZKEM.ReadRTLog(iMachineNumber)) { while (objCZKEM.GetRTLog(iMachineNumber)) { ; } } и включите свой таймер из окна свойств и дайте мне знать   -  person er-sho    schedule 30.08.2018
comment
iMachineNumber это идентификатор вашего устройства, я думаю, что это 1 в вашем случае   -  person er-sho    schedule 30.08.2018
comment
@er-shoaib, о каком таймере вы говорите. можешь ответить на него   -  person Muhammad Faizan Khan    schedule 07.01.2019
comment
таймер формы окна, который доступен на панели инструментов в левой части формы окна.   -  person er-sho    schedule 07.01.2019
comment
Я не знаю, что ты хочешь мне сказать. Можете ли вы определить немного больше.   -  person Muhammad Faizan Khan    schedule 07.01.2019
comment
перейдите в Меню -> Вид -> Панель инструментов -> И отсюда вы найдете timer, затем перетащите это в форму Windows, а затем напишите мой код, прокомментированный выше, в timer1_Tick событии таймера.   -  person er-sho    schedule 07.01.2019


Ответы (1)


objCZKEM.OnDisConnected предназначен для очистки ресурсов при программно отключенном устройстве, но не при жестком отключении. Из вашей программы, когда вы вызываете objCZKEM.disconnect, вы инициируете событие.

Если устройство отключено по проводу, то никакие события не сработают.

person Ravanan    schedule 21.09.2018