| //------------------------------------------------------------------------------ |
| // |
| // This software is provided "AS IS". The JavaPOS working group (including |
| // each of the Corporate members, contributors and individuals) MAKES NO |
| // REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, |
| // EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED |
| // WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
| // NON-INFRINGEMENT. The JavaPOS working group shall not be liable for |
| // any damages suffered as a result of using, modifying or distributing this |
| // software or its derivatives.Permission to use, copy, modify, and distribute |
| // the software and its documentation for any purpose is hereby granted. |
| // |
| // Biometrics.java - A JavaPOS 1.14.0 device control |
| // |
| //------------------------------------------------------------------------------ |
| |
| package jpos; |
| |
| import jpos.events.*; |
| import jpos.services.*; |
| import java.util.Vector; |
| import jpos.loader.*; |
| |
| public class Biometrics |
| extends BaseJposControl |
| implements BiometricsControl114, JposConst |
| { |
| //-------------------------------------------------------------------------- |
| // Variables |
| //-------------------------------------------------------------------------- |
| |
| protected BiometricsService110 service110; |
| protected BiometricsService111 service111; |
| protected BiometricsService112 service112; |
| protected BiometricsService113 service113; |
| protected BiometricsService114 service114; |
| protected Vector dataListeners; |
| protected Vector directIOListeners; |
| protected Vector errorListeners; |
| protected Vector statusUpdateListeners; |
| |
| |
| //-------------------------------------------------------------------------- |
| // Constructor |
| //-------------------------------------------------------------------------- |
| |
| public Biometrics() |
| { |
| // Initialize base class instance data |
| deviceControlDescription = "JavaPOS Biometrics Device Control"; |
| deviceControlVersion = deviceVersion114; |
| |
| // Initialize instance data. Initializations are commented out for |
| // efficiency if the Java default is correct. |
| //service110 = null; |
| //service111 = null; |
| //service112 = null; |
| //service113 = null; |
| //service114 = null; |
| dataListeners = new Vector(); |
| directIOListeners = new Vector(); |
| errorListeners = new Vector(); |
| statusUpdateListeners = new Vector(); |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // Capabilities |
| //-------------------------------------------------------------------------- |
| |
| public boolean getCapCompareFirmwareVersion() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapCompareFirmwareVersion(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getCapPowerReporting() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapPowerReporting(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapPrematchData() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapPrematchData(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapRawSensorData() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapRawSensorData(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapRealTimeData() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapRealTimeData(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getCapSensorColor() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapSensorColor(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getCapSensorOrientation() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapSensorOrientation(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getCapSensorType() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapSensorType(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapStatisticsReporting() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapStatisticsReporting(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapTemplateAdaptation() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapTemplateAdaptation(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapUpdateFirmware() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapUpdateFirmware(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getCapUpdateStatistics() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getCapUpdateStatistics(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // Properties |
| //-------------------------------------------------------------------------- |
| |
| public int getAlgorithm() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getAlgorithm(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setAlgorithm(int algorithm) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setAlgorithm(algorithm); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public String getAlgorithmList() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getAlgorithmList(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getAutoDisable() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getAutoDisable(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setAutoDisable(boolean autoDisable) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setAutoDisable(autoDisable); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public byte[] getBIR() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getBIR(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getDataCount() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getDataCount(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getDataEventEnabled() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getDataEventEnabled(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setDataEventEnabled(boolean dataEventEnabled) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setDataEventEnabled(dataEventEnabled); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getPowerNotify() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getPowerNotify(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setPowerNotify(int powerNotify) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setPowerNotify(powerNotify); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getPowerState() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getPowerState(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public byte[] getRawSensorData() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getRawSensorData(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public boolean getRealTimeDataEnabled() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getRealTimeDataEnabled(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setRealTimeDataEnabled(boolean enabled) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setRealTimeDataEnabled(enabled); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorBPP() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorBPP(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorColor() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorColor(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setSensorColor(int color) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setSensorColor(color); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorHeight() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorHeight(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorOrientation() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorOrientation(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setSensorOrientation(int orientation) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setSensorOrientation(orientation); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorType() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorType(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void setSensorType(int type) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.setSensorType(type); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public int getSensorWidth() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| return service110.getSensorWidth(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // Methods |
| //-------------------------------------------------------------------------- |
| |
| public void beginEnrollCapture(byte[] referenceBIR, byte[] payload) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.beginEnrollCapture(referenceBIR, payload); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void beginVerifyCapture() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.beginVerifyCapture(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void clearInput() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.clearInput(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void clearInputProperties() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.clearInputProperties(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void compareFirmwareVersion(String firmwareFileName, int[] result) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.compareFirmwareVersion(firmwareFileName, result); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void endCapture() |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.endCapture(); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void identify(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[][] referenceBIRPopulation, int[][] candidateRanking, int timeout) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.identify(maxFARRequested, maxFRRRequested, FARPrecedence, referenceBIRPopulation, candidateRanking, timeout); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void identifyMatch(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] sampleBIR, byte[][] referenceBIRPopulation, int[][] candidateRanking) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.identifyMatch(maxFARRequested, maxFRRRequested, FARPrecedence, sampleBIR, referenceBIRPopulation, candidateRanking); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void processPrematchData(byte[] capturedBIR, byte[] prematchDataBIR, byte[][] processedBIR) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.processPrematchData(capturedBIR, prematchDataBIR, processedBIR); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void resetStatistics(String statisticsBuffer) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.resetStatistics(statisticsBuffer); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void retrieveStatistics(String[] statisticsBuffer) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.retrieveStatistics(statisticsBuffer); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void updateFirmware(String firmwareFileName) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.updateFirmware(firmwareFileName); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void updateStatistics(String statisticsBuffer) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.updateStatistics(statisticsBuffer); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void verify(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] referenceBIR, byte[][] adaptedBIR, boolean[] result, int[] FARAchieved, int[] FRRAchieved, byte[][] payload, int timeout) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.verify(maxFARRequested, maxFRRRequested, FARPrecedence, referenceBIR, adaptedBIR, result, FARAchieved, FRRAchieved, payload, timeout); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| public void verifyMatch(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] sampleBIR, byte[] referenceBIR, byte[][] adaptedBIR, boolean[] result, int[] FARAchieved, int[] FRRAchieved, byte[][] payload) |
| throws JposException |
| { |
| // Make sure control is opened |
| if(!bOpen) |
| { |
| throw new JposException(JPOS_E_CLOSED, "Control not opened"); |
| } |
| |
| // Perform the operation |
| try |
| { |
| service110.verifyMatch(maxFARRequested, maxFRRRequested, FARPrecedence, sampleBIR, referenceBIR, adaptedBIR, result, FARAchieved, FRRAchieved, payload); |
| } |
| catch(JposException je) |
| { |
| throw je; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_FAILURE, |
| "Unhandled exception from Device Service", e); |
| } |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // Framework Methods |
| //-------------------------------------------------------------------------- |
| |
| // Create an EventCallbacks interface implementation object for this Control |
| protected EventCallbacks createEventCallbacks() |
| { |
| return new BiometricsCallbacks(); |
| } |
| |
| // Store the reference to the Device Service |
| protected void setDeviceService(BaseService service, int nServiceVersion) |
| throws JposException |
| { |
| // Special case: service == null to free references |
| if(service == null) |
| { |
| |
| service110 = null; |
| service111 = null; |
| service112 = null; |
| service113 = null; |
| service114 = null; |
| } |
| else |
| { |
| // Make sure that the service actually conforms to the interfaces it |
| // claims to. |
| if(serviceVersion >= deviceVersion110) |
| { |
| try |
| { |
| service110 = (BiometricsService110)service; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_NOSERVICE, |
| "Service does not fully implement BiometricsService110 interface", |
| e); |
| } |
| } |
| |
| if(serviceVersion >= deviceVersion111) |
| { |
| try |
| { |
| service111 = (BiometricsService111)service; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_NOSERVICE, |
| "Service does not fully implement BiometricsService111 interface", |
| e); |
| } |
| } |
| |
| if(serviceVersion >= deviceVersion112) |
| { |
| try |
| { |
| service112 = (BiometricsService112)service; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_NOSERVICE, |
| "Service does not fully implement BiometricsService112 interface", |
| e); |
| } |
| } |
| |
| if(serviceVersion >= deviceVersion113) |
| { |
| try |
| { |
| service113 = (BiometricsService113)service; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_NOSERVICE, |
| "Service does not fully implement BiometricsService113 interface", |
| e); |
| } |
| } |
| |
| if(serviceVersion >= deviceVersion114) |
| { |
| try |
| { |
| service114 = (BiometricsService114)service; |
| } |
| catch(Exception e) |
| { |
| throw new JposException(JPOS_E_NOSERVICE, |
| "Service does not fully implement BiometricsService114 interface", |
| e); |
| } |
| } |
| |
| } |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // Event Listener Methods |
| //-------------------------------------------------------------------------- |
| |
| public void addDataListener(DataListener l) |
| { |
| synchronized(dataListeners) |
| { |
| dataListeners.addElement(l); |
| } |
| } |
| |
| public void removeDataListener(DataListener l) |
| { |
| synchronized(dataListeners) |
| { |
| dataListeners.removeElement(l); |
| } |
| } |
| |
| public void addDirectIOListener(DirectIOListener l) |
| { |
| synchronized(directIOListeners) |
| { |
| directIOListeners.addElement(l); |
| } |
| } |
| |
| public void removeDirectIOListener(DirectIOListener l) |
| { |
| synchronized(directIOListeners) |
| { |
| directIOListeners.removeElement(l); |
| } |
| } |
| |
| public void addErrorListener(ErrorListener l) |
| { |
| synchronized(errorListeners) |
| { |
| errorListeners.addElement(l); |
| } |
| } |
| |
| public void removeErrorListener(ErrorListener l) |
| { |
| synchronized(errorListeners) |
| { |
| errorListeners.removeElement(l); |
| } |
| } |
| |
| public void addStatusUpdateListener(StatusUpdateListener l) |
| { |
| synchronized(statusUpdateListeners) |
| { |
| statusUpdateListeners.addElement(l); |
| } |
| } |
| |
| public void removeStatusUpdateListener(StatusUpdateListener l) |
| { |
| synchronized(statusUpdateListeners) |
| { |
| statusUpdateListeners.removeElement(l); |
| } |
| } |
| |
| |
| //-------------------------------------------------------------------------- |
| // EventCallbacks inner class |
| //-------------------------------------------------------------------------- |
| |
| protected class BiometricsCallbacks |
| implements EventCallbacks |
| { |
| public BaseControl getEventSource() |
| { |
| return (BaseControl)Biometrics.this; |
| } |
| |
| public void fireDataEvent(DataEvent e) |
| { |
| synchronized(Biometrics.this.dataListeners) |
| { |
| // deliver the event to all registered listeners |
| for(int x = 0; x < dataListeners.size(); x++) |
| { |
| ((DataListener)dataListeners.elementAt(x)).dataOccurred(e); |
| } |
| } |
| } |
| |
| public void fireDirectIOEvent(DirectIOEvent e) |
| { |
| synchronized(Biometrics.this.directIOListeners) |
| { |
| // deliver the event to all registered listeners |
| for(int x = 0; x < directIOListeners.size(); x++) |
| { |
| ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e); |
| } |
| } |
| } |
| |
| public void fireErrorEvent(ErrorEvent e) |
| { |
| synchronized(Biometrics.this.errorListeners) |
| { |
| // deliver the event to all registered listeners |
| for(int x = 0; x < errorListeners.size(); x++) |
| { |
| ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e); |
| } |
| } |
| } |
| |
| public void fireOutputCompleteEvent(OutputCompleteEvent e) |
| { |
| } |
| |
| public void fireStatusUpdateEvent(StatusUpdateEvent e) |
| { |
| synchronized(Biometrics.this.statusUpdateListeners) |
| { |
| // deliver the event to all registered listeners |
| for(int x = 0; x < statusUpdateListeners.size(); x++) |
| { |
| ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e); |
| } |
| } |
| } |
| } |
| } |