public override void stop() { int ret; // Causo l'uscita dal thread ed aspetto isTimeToDie = true; if (captureThread != null) { captureThread.Join(); captureThread = null; } if (dbHandle != IntPtr.Zero) { ret = zkfp2.DBFree(dbHandle); dbHandle = IntPtr.Zero; if (ret == zkfp.ZKFP_ERR_OK) { _giornale.Info("Release della cache ok"); } else { Console.Error.WriteLine("Release cache : err=" + ret + " : " + ZKErrors.getDescrizione(ret)); } } // Inizializza il device che deve essere connesso, altrimenti da errore if (deviceHandle != IntPtr.Zero) { ret = zkfp2.CloseDevice(deviceHandle); deviceHandle = IntPtr.Zero; if (ret == zkfp.ZKFP_ERR_OK) { _giornale.Info("Chiusura device handle ok"); } else { _giornale.Error("Chiusura device handle : err=" + ret + " : " + ZKErrors.getDescrizione(ret)); } } // Rilascia le risorse utilizzate dalla libreria ret = zkfp2.Terminate(); if (ret == zkfp.ZKFP_ERR_OK) { Console.Out.WriteLine("Terminate ok"); } else { _giornale.Error("Terminate : err=" + ret + " : " + ZKErrors.getDescrizione(ret)); } base.stop(); }
public override void start() { bool tuttoBene = true; statoRun = StatoRun.Stopped; infoScanner = null; try { int ret = zkfp2.Init(); if (ret == zkfperrdef.ZKFP_ERR_OK) { _giornale.Info("Inizializzato scanner ok"); } else { tuttoBene = false; _giornale.Error("err=" + ret + " : " + ZKErrors.getDescrizione(ret)); } } catch (Exception) { tuttoBene = false; String msg = "I driver dello scanner di imporonte digitali ZK Teco 4500 non sono installati."; if (Lumen.Config.Configurazione.UserConfigLumen.scannerImpronteGestito) { _giornale.Error(msg + " Impossibile avviare il servizio"); } else { _giornale.Debug(msg + " Poco male tanto non lo uso"); } return; } // Apro il device int idx = 0; if (tuttoBene) { if (IntPtr.Zero == (deviceHandle = zkfp2.OpenDevice(idx))) { tuttoBene = false; _giornale.Error("Open device " + idx + " fallita"); } else { _giornale.Info("Open device connessione ok"); } } // Inizializzo la cache if (tuttoBene) { if (IntPtr.Zero == (dbHandle = zkfp2.DBInit())) { _giornale.Error("Inizializzazione cache fallita"); tuttoBene = false; } else { _giornale.Info("Inizializzazione cache ok"); } } if (tuttoBene) { try { LeggiParametriScanner(); } catch (Exception ee) { tuttoBene = false; _giornale.Fatal("Lettura parametri scanner", ee); } } if (tuttoBene) { base.start(); } else { zkfp2.Terminate(); } }