示例#1
0
        /**
         * Initialize EMVX control with servers
         * and response timeout
         */
        protected bool ReInitDevice()
        {
            if (pdc_ax_control == null)
            {
                pdc_ax_control = new DsiPDCX();
                pdc_ax_control.ServerIPConfig(server_list, 0);
                pdc_ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
                InitPDCX();
            }
            lock (pdcLock) {
                if (pdc_active)
                {
                    Console.WriteLine("Reset PDC");
                    pdc_ax_control.CancelRequest();
                    pdc_active = false;
                }
            }

            if (emv_ax_control == null)
            {
                emv_ax_control = new DsiEMVX();
            }
            FlaggedReset();

            if (rba != null)
            {
                rba.SetParent(this.parent);
                rba.SetVerbose(this.verbose_mode);
                try {
                    rba.stubStart();
                } catch (Exception) {}
            }

            return(true);
        }
示例#2
0
    /**
      Initialize EMVX control with servers
      and response timeout
    */
    protected bool initDevice()
    {
        if (pdc_ax_control == null) {
            pdc_ax_control = new DsiPDCX();
            pdc_ax_control.ServerIPConfig(server_list, 0);
            pdc_ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
            InitPDCX();
        }
        if (emv_active.WaitOne(0) == false) {
            Console.WriteLine("Reset PDC");
            pdc_ax_control.CancelRequest();
        }

        if (emv_ax_control == null) {
            emv_ax_control = new DsiEMVX();
        }
        if (pdc_active.WaitOne(0) == false) {
            Console.WriteLine("Reset EMV");
            PadReset();
        }

        /* see if terminal is more consistent
        if (rba != null) {
            rba.SetParent(this.parent);
            rba.SetVerbose(this.verbose_mode);
            try {
                rba.stubStart();
            } catch (Exception) {}
        }
        */

        return true;
    }
        /**
         * Initialize PDCX control with servers
         * and response timeout
         */
        protected bool initDevice()
        {
            if (ax_control == null)
            {
                ax_control = new DsiPDCX();
                ax_control.ServerIPConfig(server_list, 0);
                ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
                InitPDCX();
            }
            lock (pdcLock) {
                if (pdc_active)
                {
                    ax_control.CancelRequest();
                    pdc_active = false;
                }
            }
            if (rba != null)
            {
                rba.SetParent(this.parent);
                rba.SetVerbose(this.verbose_mode);
                rba.stubStart();
            }

            return(true);
        }
示例#4
0
        /**
         * Initialize EMVX control with servers
         * and response timeout
         */
        protected bool initDevice()
        {
            if (pdc_ax_control == null)
            {
                pdc_ax_control = new DsiPDCX();
                pdc_ax_control.ServerIPConfig(server_list, 0);
                InitPDCX();
            }
            pdc_ax_control.CancelRequest();

            if (emv_ax_control == null)
            {
                emv_ax_control = new DsiEMVX();
            }
            PadReset();

            if (rba != null)
            {
                rba.SetParent(this.parent);
                rba.SetVerbose(this.verbose_mode);
                rba.stubStart();
            }

            return(true);
        }
    /**
      Initialize PDCX control with servers
      and response timeout
    */
    protected bool initDevice()
    {
        ax_control = new DsiPDCX();
        ax_control.ServerIPConfig(server_list, 0);
        ax_control.SetResponseTimeout(60);

        return true;
    }
示例#6
0
    /**
      Initialize PDCX control with servers
      and response timeout
    */
    protected bool initDevice()
    {
        if (ax_control == null) {
            ax_control = new DsiPDCX();
            ax_control.ServerIPConfig(server_list, 0);
            ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
            InitPDCX();
        }
        ax_control.CancelRequest();

        return true;
    }
示例#7
0
        /**
         * Initialize EMVX control with servers
         * and response timeout
         */
        protected bool ReInitDevice()
        {
            if (pdc_ax_control == null)
            {
                pdc_ax_control = new DsiPDCX();
                pdc_ax_control.ServerIPConfig(server_list, 0);
                pdc_ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
                InitPDCX();
            }
            lock (pdcLock) {
                if (pdc_active)
                {
                    Console.WriteLine("Reset PDC");
                    pdc_ax_control.CancelRequest();
                    pdc_active = false;
                }
            }

            /*
             * lock (emvLock) {
             *  if (emv_active) {
             *      try {
             *          Console.WriteLine("Reset EMV");
             *          emv_ax_control.CancelRequest();
             *          emv_active = false;
             *      } catch (Exception) {
             *          // I assume this will through if either the ActiveX DLL
             *          // was generated against an older OCX that doesn't have
             *          // this method or if the DLL has the method but the
             *          // OCX does not. OCX v1.22+ should have the method.
             *      }
             *  }
             * }
             */

            if (emv_ax_control == null)
            {
                emv_ax_control = new DsiEMVX();
            }
            FlaggedReset();

            if (rba != null)
            {
                rba.SetParent(this.parent);
                rba.SetVerbose(this.verbose_mode);
                try {
                    rba.stubStart();
                } catch (Exception) {}
            }

            return(true);
        }
示例#8
0
        /**
         * Initialize PDCX control with servers
         * and response timeout
         */
        protected bool initDevice()
        {
            if (ax_control == null)
            {
                ax_control = new DsiPDCX();
                ax_control.ServerIPConfig(server_list, 0);
                ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
                InitPDCX();
            }
            ax_control.CancelRequest();

            return(true);
        }
示例#9
0
    /**
      Initialize EMVX control with servers
      and response timeout
    */
    protected bool initDevice()
    {
        if (pdc_ax_control == null) {
            pdc_ax_control = new DsiPDCX();
            pdc_ax_control.ServerIPConfig(server_list, 0);
            InitPDCX();
        }
        pdc_ax_control.CancelRequest();

        if (emv_ax_control == null) {
            emv_ax_control = new DsiEMVX();
        }
        PadReset();

        return true;
    }
示例#10
0
    /**
      Initialize PDCX control with servers
      and response timeout
    */
    protected bool initDevice()
    {
        if (ax_control == null) {
            ax_control = new DsiPDCX();
            ax_control.ServerIPConfig(server_list, 0);
            ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
            InitPDCX();
        }
        ax_control.CancelRequest();
        if (rba != null) {
            rba.SetParent(this.parent);
            rba.SetVerbose(this.verbose_mode);
            rba.stubStart();
        }

        return true;
    }
示例#11
0
        /**
         * Initialize EMVX control with servers
         * and response timeout
         */
        protected bool initDevice()
        {
            if (pdc_ax_control == null)
            {
                pdc_ax_control = new DsiPDCX();
                pdc_ax_control.ServerIPConfig(server_list, 0);
                InitPDCX();
            }
            pdc_ax_control.CancelRequest();

            if (emv_ax_control == null)
            {
                emv_ax_control = new DsiEMVX();
            }
            PadReset();

            return(true);
        }
示例#12
0
        /**
         * Initialize EMVX control with servers
         * and response timeout
         */
        protected bool initDevice()
        {
            if (pdc_ax_control == null)
            {
                pdc_ax_control = new DsiPDCX();
                pdc_ax_control.ServerIPConfig(server_list, 0);
                pdc_ax_control.SetResponseTimeout(CONNECT_TIMEOUT);
                InitPDCX();
            }
            lock (pdcLock) {
                if (pdc_active)
                {
                    Console.WriteLine("Reset PDC");
                    pdc_ax_control.CancelRequest();
                }
            }

            if (emv_ax_control == null)
            {
                emv_ax_control = new DsiEMVX();
                Console.WriteLine("Reset EMV");
                PadReset();
            }

            if (rba == null)
            {
                if (device_identifier == "INGENICOISC250_MERCURY_E2E")
                {
                    rba = new RBA_Stub("COM" + com_port);
                    rba.SetParent(this.parent);
                    rba.SetVerbose(this.verbose_mode);
                    rba.SetEMV(true);
                }
            }

            if (rba != null)
            {
                try {
                    rba.stubStart();
                } catch (Exception) {}
            }

            return(true);
        }
        public override void HandleMsg(string msg)
        {
            // optional predicate for "termSig" message
            // predicate string is displayed on sig capture screen
            if (msg.Length > 7 && msg.Substring(0, 7) == "termSig")
            {
                //sig_message = msg.Substring(7);
                msg = "termSig";
            }
            switch (msg)
            {
            case "termReboot":
                lock (pdcLock) {
                    if (!pdc_active)
                    {
                        if (rba != null)
                        {
                            rba.hardReset();
                        }
                        ax_control = null;
                        initDevice();
                    }
                }
                break;

            case "termReset":
                if (rba != null)
                {
                    rba.stubStop();
                }
                initDevice();
                break;

            case "termManual":
                break;

            case "termApproved":
                if (rba != null)
                {
                    rba.showMessage("Approved");
                }
                break;

            case "termDeclined":
                if (rba != null)
                {
                    rba.showMessage("Declined");
                }
                break;

            case "termError":
                if (rba != null)
                {
                    rba.showMessage("Error");
                }
                break;

            case "termSig":
                if (rba != null)
                {
                    rba.stubStop();
                }
                GetSignature();
                break;

            case "termGetType":
                break;

            case "termGetTypeWithFS":
                break;

            case "termGetPin":
                break;

            case "termWait":
                break;

            case "termFindPort":
                var new_port = this.PortSearch(this.device_identifier);
                if (new_port != "" && new_port != this.com_port && new_port.All(char.IsNumber))
                {
                    this.com_port = new_port;
                }
                break;
            }
        }
示例#14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PdcxWrapper"/> class.
 /// </summary>
 public PdcxWrapper()
 {
     this.control = new DsiPDCX();
 }