/// <summary>
        /// Connect to the specified Clover device
        /// </summary>
        public bool Connect(string connectionString)
        {
            CloverDeviceConfiguration config = null;

            Address = connectionString;

            if (connectionString.Trim().ToUpper() == "USB")
            {
                // USB connected Clover Devices are directly connected to the machine and so don't need any extra identification or Pairing information
                config  = new USBCloverDeviceConfiguration(RemoteAppId, true);
                Address = "USB";
            }
            else
            {
                // Network connections require a pairing information and send extra identification to the device
                config = new WebSocketCloverDeviceConfiguration(connectionString, RemoteAppId, true, 1, PosName, SerialNumber, LoadPairingAuthToken(connectionString, RemoteAppId, PosName), OnPairingCode, OnPairingSuccess, OnPairingState);
            }

            if (config != null)
            {
                cloverConnector = CloverConnectorFactory.createICloverConnector(config);

                listener = new SimpleCloverConnectorListener(cloverConnector);
                listener.DeviceConnected    += Listener_DeviceConnected;
                listener.DeviceReady        += Listener_DeviceReady;
                listener.DeviceDisconnected += Listener_DeviceDisconnected;
                listener.DeviceError        += Listener_DeviceError;
                listener.SaleResponse       += Listener_SaleResponse;

                cloverConnector.AddCloverConnectorListener(listener);
                cloverConnector.InitializeConnection();
            }

            return(config != null);
        }
Ejemplo n.º 2
0
        public static CloverDevice Get(CloverDeviceConfiguration configuration)
        {
            string cloverDevicetypeName = configuration.getCloverDeviceTypeName();

            return((CloverDevice)
                   Activator.CreateInstance(Type.GetType(cloverDevicetypeName), configuration));
        }
        public static CloverDevice Get(CloverDeviceConfiguration configuration)
        {
            string cloverDevicetypeName = configuration.getCloverDeviceTypeName();

            return (CloverDevice)
                Activator.CreateInstance(Type.GetType(cloverDevicetypeName), configuration);
        }
Ejemplo n.º 4
0
        public override void Initialize(CloverDeviceConfiguration configuration)
        {
            base.Initialize(configuration);

            transport.Subscribe(this);
            maxMessageSizeInChars = Math.Max(maxMessageSizeInChars, configuration.getMaxMessageCharacters());
        }
Ejemplo n.º 5
0
 public RemoteRESTCloverConnector(CloverDeviceConfiguration config)
 {
     System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
     _SDKInfo = AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyDescriptionAttribute>(assembly).Description + ":"
                + (AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyFileVersionAttribute>(assembly)).Version
                + (AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyInformationalVersionAttribute>(assembly)).InformationalVersion;
     Config = config;
 }
 public RemoteWebSocketCloverConnector(CloverDeviceConfiguration config)
 {
     this.config = config;
     port        = ((RemoteWebSocketCloverConfiguration)config).port;
     hostname    = "localhost";// force this for now..
     //cloverConnectorListener = new RemoteWebSocketCloverConnectorListener();
     init();
 }
 public RemoteRESTCloverConnector(CloverDeviceConfiguration config)
 {
     System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
     _SDKInfo = AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyDescriptionAttribute>(assembly).Description + ":"
         + (AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyFileVersionAttribute>(assembly)).Version
         + (AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyInformationalVersionAttribute>(assembly)).InformationalVersion;
     Config = config;
 }
Ejemplo n.º 8
0
 public RemoteWebSocketCloverConnector(CloverDeviceConfiguration config)
 {
     System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
     _SDKInfo = assembly.GetAssemblyAttribute <System.Reflection.AssemblyDescriptionAttribute>().Description + ":"
                + (assembly.GetAssemblyAttribute <System.Reflection.AssemblyFileVersionAttribute>()).Version
                + (assembly.GetAssemblyAttribute <System.Reflection.AssemblyInformationalVersionAttribute>()).InformationalVersion;
     this.config = config;
     endpoint    = ((RemoteWebSocketCloverConfiguration)config).endpoint;
 }
 public RemoteWebSocketCloverConnector(CloverDeviceConfiguration config)
 {
     System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
     _SDKInfo = AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyDescriptionAttribute>(assembly).Description + ":"
         + (AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyFileVersionAttribute>(assembly)).Version
         + (AssemblyUtils.GetAssemblyAttribute<System.Reflection.AssemblyInformationalVersionAttribute>(assembly)).InformationalVersion;
     this.config = config;
     port = ((RemoteWebSocketCloverConfiguration)config).port;
     hostname = "localhost";// force this for now..
 }
 public RemoteWebSocketCloverConnector(CloverDeviceConfiguration config)
 {
     System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
     _SDKInfo = AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyDescriptionAttribute>(assembly).Description + ":"
                + (AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyFileVersionAttribute>(assembly)).Version
                + (AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyInformationalVersionAttribute>(assembly)).InformationalVersion;
     this.config = config;
     port        = ((RemoteWebSocketCloverConfiguration)config).port;
     hostname    = "localhost";// force this for now..
 }
 /// <summary>
 /// Create WebSocketCloverTransport with the endpoing, custom pairing config, POS name, serial #, stored auth token if available
 /// </summary>
 /// <param name="hostname">The hostname or IP of the Clover device to which you are connecting</param>
 /// <param name="port">The port of the Clover device to which you are connecting</param>
 public WebSocketCloverTransport(string endpoint, PairingDeviceConfiguration pairingConfig, CloverDeviceConfiguration cloverConfig, string posName, string serialNumber, string pairingAuthToken)
 {
     this.endpoint = endpoint;
     this.pairingDeviceConfiguration = pairingConfig;
     this.cloverDeviceConfiguration  = cloverConfig;
     this.posName          = posName;
     this.serialNumber     = serialNumber;
     this.pairingAuthToken = pairingAuthToken;
     connect(endpoint);
 }
Ejemplo n.º 12
0
        private void WSRemoteForm_Closed(object sender, EventArgs e)
        {
            if (((InputForm)sender).Status == DialogResult.OK)
            {
                string val = ((InputForm)sender).Value;
                selectedConfig = new RemoteWebSocketCloverConfiguration(val, APPLICATION_ID);

                ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
                this.Close();
            }
        }
Ejemplo n.º 13
0
        private void InitializeConnector(Dictionary <string, string> parameters)
        {
            string protocol;
            string port;

            bool testConfig = false;
            //string lanConfig = null;
            string testConfigString;

            if (!parameters.TryGetValue("/P", out port))
            {
                port = "8889";// default
            }
            string certPath = null;

            if (!parameters.TryGetValue("/C", out certPath))
            {
                protocol = "ws";// default
            }
            else
            {
                protocol = "wss";
            }
            if (!parameters.TryGetValue("/T", out testConfigString))
            {
                testConfig = false;
            }
            else
            {
                testConfig = true; //
            }
            //parameters.TryGetValue("/L", out lanConfig);


            server = new WebSocketServer(protocol + "://127.0.0.1:" + port);
            if (certPath != null)
            {
                server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certPath);
            }
            CloverDeviceConfiguration config = null;

            if (testConfig)
            {
                //config = new TestCloverDeviceConfiguration();
            }
            else
            {
                config = new USBCloverDeviceConfiguration(null, getPOSNameAndVersion(), Debug, Timer);
            }

            cloverConnector = CloverConnectorFactory.createICloverConnector(config);
            cloverConnector.AddCloverConnectorListener(connectorListener);
            cloverConnector.InitializeConnection();
        }
        public RemoteRESTCloverConnector(CloverDeviceConfiguration config)
        {
            Thread workerThread = new Thread(DoWork);

            workerThread.IsBackground = true;

            callbackService = new CallbackController(this);
            workerThread.Start();

            CardEntryMethod = CloverConnector.CARD_ENTRY_METHOD_ICC_CONTACT | CloverConnector.CARD_ENTRY_METHOD_MAG_STRIPE | CloverConnector.CARD_ENTRY_METHOD_NFC_CONTACTLESS;
        }
        public static CloverDevice Get(CloverDeviceConfiguration configuration)
        {
            string name       = configuration.getCloverDeviceTypeName();
            Type   deviceType = Type.GetType(name);

            if (deviceType == null)
            {
                throw new ArgumentException($"Cannot locate type \"{name}\" specified in Configuration.");
            }

            return((CloverDevice)Activator.CreateInstance(deviceType, configuration));
        }
Ejemplo n.º 16
0
 private void okButton_Click(object sender, EventArgs e)
 {
     selectedConfig = ((CloverDeviceConfiguration)ConnectionType.SelectedValue);
     if (selectedConfig is WebSocketCloverDeviceConfiguration)
     {
         InitWebSocket();
     }
     else
     {
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         Close();
     }
 }
Ejemplo n.º 17
0
 private void WSRemoteForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string   val    = ((InputForm)sender).Value;
         string[] tokens = val.Split(' ');
         if (tokens.Length == 1)
         {
             int port = Int32.Parse(tokens[0]);
             selectedConfig = new RemoteWebSocketCloverConfiguration("localhost", port, APPLICATION_ID);
         }
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         this.Close();
     }
 }
Ejemplo n.º 18
0
        public void InitializeConnector(CloverDeviceConfiguration config)
        {
            if (cloverConnector != null)
            {
                cloverConnector.RemoveCloverConnectorListener(this);

                OnDeviceDisconnected(); // for any disabling, messaging, etc.
                //SaleButton.Enabled = false; // everything can work except Pay
                cloverConnector.Dispose();
            }

            cloverConnector = new CloverConnector(config);
            cloverConnector.InitializeConnection();

            cloverConnector.AddCloverConnectorListener(this);
        }
Ejemplo n.º 19
0
 private void WSForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string   val    = ((InputForm)sender).Value;
         string[] tokens = val.Split(':');
         if (tokens.Length == 2)
         {
             string ip   = tokens[0];
             int    port = Int32.Parse(tokens[1]);
             selectedConfig = new WebSocketCloverDeviceConfiguration(ip, port, APPLICATION_ID, false, 1);
         }
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         this.Close();
     }
 }
Ejemplo n.º 20
0
 private void WSForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string   val    = ((InputForm)sender).Value;
         string[] tokens = val.Split(':');
         if (tokens.Length == 2)
         {
             //TODO: validate IP and port
             string ip   = tokens[0];
             int    port = Int32.Parse(tokens[1]);
             WebSocketConfig = new WebSocketCloverDeviceConfiguration(ip, port);
             InitializeConnector(WebSocketConfig);
         }
     }
 }
Ejemplo n.º 21
0
        private void WSForm_Closed(object sender, EventArgs e)
        {
            if (((InputForm)sender).Status == DialogResult.OK)
            {
                string endpoint = ((InputForm)sender).Value;
                if (endpoint.Length > 0)
                {
                    Properties.Settings.Default.lastWSEndpoint = endpoint;
                    Properties.Settings.Default.Save();

                    selectedConfig = new WebSocketCloverDeviceConfiguration(endpoint, APPLICATION_ID, "Clover Windows Example POS", "AISLE_3", Properties.Settings.Default.pairingAuthToken);
                    ((WebSocketCloverDeviceConfiguration)selectedConfig).OnPairingCode    = pairingCodeHandler;
                    ((WebSocketCloverDeviceConfiguration)selectedConfig).OnPairingSuccess = pairingSuccessHandler;
                }
                ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
                this.Close();
            }
        }
Ejemplo n.º 22
0
 private void okButton_Click(object sender, EventArgs e)
 {
     selectedConfig = ((CloverDeviceConfiguration)ConnectionType.SelectedValue);
     if (selectedConfig is RemoteWebSocketCloverConfiguration)
     {
         InitLocalWebSocket();
     }
     else if (selectedConfig is WebSocketCloverDeviceConfiguration)
     {
         InitWebSocket();
     }
     else
     {
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         this.Close();
     }
     //new CloverExamplePOSForm(selectedConfig).Show();
 }
        internal static string getRemoteSdk(this CloverDeviceConfiguration config, CloverTransport transport)
        {
            string REG_KEY  = "HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\CloverSDK";
            string receiver = "DLL";

            try
            {
                object rReceiver = Registry.GetValue(REG_KEY, "DisplayName", "unset");
                if (rReceiver != null && !rReceiver.ToString().Equals("unset"))
                {
                    receiver = rReceiver.ToString();
                }
            }
            catch (Exception e)
            {
                using (EventLog eventLog = new EventLog("Application"))
                {
                    eventLog.Source = "Application";
                    eventLog.WriteEntry($"{config.getMessagePackageName().GetType()}->{e.Message}");
                }
            }

            string shortTitle         = transport.ShortTitle();
            string shortTransportType = String.IsNullOrWhiteSpace(shortTitle) ? "UNKNOWN" : shortTitle;

            // Build SdkInfo string
            System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("CloverConnector");
            string sdkInfoString = AssemblyUtils.GetAssemblyAttribute <System.Reflection.AssemblyDescriptionAttribute>(assembly).Description
                                   + "_" + receiver
                                   + "|" + shortTransportType
                                   + ":"
                                   + (assembly.GetAssemblyAttribute <System.Reflection.AssemblyFileVersionAttribute>()).Version
                                   + (assembly.GetAssemblyAttribute <System.Reflection.AssemblyInformationalVersionAttribute>()).InformationalVersion;

            using (EventLog eventLog = new EventLog("Application"))
            {
                eventLog.Source = "Application";
                eventLog.WriteEntry($"{config.getMessagePackageName().GetType()}->SDKInfo from assembly and registry = {sdkInfoString}");
            }

            return(sdkInfoString);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Initialize the Clover Device for use
        /// </summary>
        /// <param name="configuration"></param>
        public virtual void Initialize(CloverDeviceConfiguration configuration)
        {
            string logSource = "_TransportEventLog";

            if (!EventLog.SourceExists(logSource))
            {
                EventLog.CreateEventSource(logSource, logSource);
            }

            // Add the event log trace listener to the collection.
            EventLogTraceListener myTraceListener = new EventLogTraceListener(logSource);

            Trace.Listeners.Add(myTraceListener);

            transport = configuration.getCloverTransport();

            shortTransportType = !string.IsNullOrWhiteSpace(transport.ShortTitle()) ? transport.ShortTitle() : shortTransportType;
            packageName        = configuration.getMessagePackageName();
            remoteSourceSDK    = getSDKInfoString();
            deviceInfo         = new DeviceInfo();
        }
        /// <summary>
        /// Initialize the Clover Device for use
        /// </summary>
        /// <param name="configuration"></param>
        public virtual void Initialize(CloverDeviceConfiguration configuration)
        {
            string logSource = "_TransportEventLog";

            try
            {
                // If this EventLog code crashes, you don't have the Windows Event Log Source setup, and this code isn't running with sufficient credentials to create it.
                // See https://github.com/clover/remote-pay-windows/wiki/ "Setting up the Windows Event Log" article for details.
                //
                // Quickfixs: run this app _once_ as admin so this code can perform setup, or just run this in an admin PowerShell> New-EventLog -LogName "Application" -Source "_TransportEventLog"
                //            Other fixes available in the project's wiki article.
                //
                // When this app is deployed into production, the installer or deploy script should ensure the EventLog is created.

                if (!EventLog.SourceExists(logSource))
                {
                    EventLog.CreateEventSource(logSource, logSource);
                }

                // Add the event log trace listener to the collection.
                EventLogTraceListener eventlog = new EventLogTraceListener(logSource);
                Trace.Listeners.Add(eventlog);
            }
            catch (Exception exception)
            {
                // If this has crashed, see the comment just above at the top of the EventLog try for details and quick fixes.
                throw new CloverException($"Aborting Clover Connector SDK because the Windows Event Log Source \"{logSource}\" does not exist or cannot be accessed.\nSee the https://github.com/clover/remote-pay-windows/wiki article for more information.\n\nref# CLOVER-W230\nDetail Message: {exception.Message}", "CLOVER-W230", exception);
            }

            Log(MessageLevel.Detailed, $"CloverDevice.{nameof(Initialize)} {configuration.getName()}, raid: {configuration.getRemoteApplicationID()}");

            transport = configuration.getCloverTransport();
            transport?.SetLogLevel(logLevel);

            shortTransportType = !string.IsNullOrWhiteSpace(transport.ShortTitle()) ? transport.ShortTitle() : shortTransportType;
            packageName        = configuration.getMessagePackageName();
            remoteSourceSDK    = getSDKInfoString();
            deviceInfo         = new DeviceInfo();
        }
Ejemplo n.º 26
0
        private void InitializeConnector(CloverDeviceConfiguration config)
        {
            if (cloverConnector != null)
            {
                cloverConnector -= (this);


                OnDeviceDisconnected();    // for any disabling, messaging, etc.
                PayButton.Enabled = false; // everything can work except Pay
            }

            cloverConnector = new CloverConnector(config);

            cloverConnector += this;

            //ui cleanup
            this.Text = OriginalFormTitle + " - " + config.getName();
            if (config is TestCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked    = true;
                CloverMiniUSBMenuItem.Checked = false;
                WebSocketMenuItem.Checked     = false;
            }
            else if (config is USBCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked    = false;
                CloverMiniUSBMenuItem.Checked = true;
                WebSocketMenuItem.Checked     = false;
            }
            else if (config is WebSocketCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked    = false;
                CloverMiniUSBMenuItem.Checked = false;
                WebSocketMenuItem.Checked     = true;
            }
        }
Ejemplo n.º 27
0
 /// <summary>
 /// Create a Clover Device from a configuration
 /// </summary>
 /// <param name="configuration"></param>
 protected CloverDevice(CloverDeviceConfiguration configuration = null)
 {
     remoteApplicationID = configuration?.getRemoteApplicationID() ?? "";
 }
        private void InitializeConnector(Dictionary <string, string> parameters)
        {
            string protocol;
            string port;

            bool   testConfig = false;
            string lanConfig  = null;
            string testConfigString;

            if (!parameters.TryGetValue("/P", out port))
            {
                port = "8889";// default
            }
            string certPath = null;

            if (!parameters.TryGetValue("/C", out certPath))
            {
                protocol = "ws";// default
            }
            else
            {
                protocol = "wss";
            }
            if (!parameters.TryGetValue("/T", out testConfigString))
            {
                testConfig = false;
            }
            else
            {
                testConfig = true; //
            }
            parameters.TryGetValue("/L", out lanConfig);


            server = new WebSocketServer(protocol + "://127.0.0.1:" + port);
            if (certPath != null)
            {
                server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certPath);
            }
            CloverDeviceConfiguration config = null;

            if (testConfig)
            {
                config = new TestCloverDeviceConfiguration();
            }
            else if (lanConfig != null)
            {
                int loc = lanConfig.IndexOf(':');
                if (loc == -1)
                {
                    throw new InvalidDataException("invalid lan host. arguments must be '/L <hostname>:<port>'");
                }
                try
                {
                    string lanHostname = lanConfig.Substring(0, loc);
                    string lanPortStr  = lanConfig.Substring(loc + 1);
                    int    lanPort     = int.Parse(lanPortStr);
                    if (lanPort < 0 || lanPort > 65535)
                    {
                        throw new InvalidDataException("Invalid port. must be between 1 and 65535");
                    }
                    config = new WebSocketCloverDeviceConfiguration(lanHostname, lanPort, getPOSNameAndVersion(), Debug, Timer);
                }
                catch (FormatException fe)
                {
                    throw new InvalidDataException("invalid port: " + lanConfig.Substring(loc + 1));
                }
            }
            else
            {
                config = new USBCloverDeviceConfiguration(null, getPOSNameAndVersion(), Debug, Timer);
            }

            cloverConnector = new CloverConnector(config);
            cloverConnector.InitializeConnection();
            cloverConnector.AddCloverConnectorListener(connectorListener);
        }
 private void WSForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string val = ((InputForm)sender).Value;
         string[] tokens = val.Split(':');
         if (tokens.Length == 2)
         {
             //TODO: validate IP and port
             string ip = tokens[0];
             int port = Int32.Parse(tokens[1]);
             WebSocketConfig = new WebSocketCloverDeviceConfiguration(ip, port);
             InitializeConnector(WebSocketConfig);
         }
     }
 }
Ejemplo n.º 30
0
 private void WSRemoteForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string val = ((InputForm)sender).Value;
         string[] tokens = val.Split(' ');
         if (tokens.Length == 1)
         {
             int port = Int32.Parse(tokens[0]);
             selectedConfig = new RemoteWebSocketCloverConfiguration("localhost", port);
         }
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         this.Close();
     }
 }
        private void InitializeConnector(CloverDeviceConfiguration config)
        {
            if(cloverConnector != null)
            {
                cloverConnector -= (this);

                OnDeviceDisconnected(); // for any disabling, messaging, etc.
                PayButton.Enabled = false; // everything can work except Pay
            }

            cloverConnector = new CloverConnector(config);

            cloverConnector += this;

            //ui cleanup
            this.Text = OriginalFormTitle + " - " + config.getName();
            if (config is TestCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked = true;
                CloverMiniUSBMenuItem.Checked = false;
                WebSocketMenuItem.Checked = false;
            }
            else if (config is USBCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked = false;
                CloverMiniUSBMenuItem.Checked = true;
                WebSocketMenuItem.Checked = false;
            }
            else if (config is WebSocketCloverDeviceConfiguration)
            {
                TestDeviceMenuItem.Checked = false;
                CloverMiniUSBMenuItem.Checked = false;
                WebSocketMenuItem.Checked = true;
            }
        }
Ejemplo n.º 32
0
 public ConfigWrapper(string description, CloverDeviceConfiguration config)
 {
     Description = description;
     Config = config;
 }
 public DefaultCloverDevice(CloverDeviceConfiguration configuration) :
     this(configuration.getMessagePackageName(), configuration.getCloverTransport(), configuration.getRemoteApplicationID())
 {
 }
 public DefaultCloverDevice(CloverDeviceConfiguration configuration)
     : this(configuration.getMessagePackageName(), configuration.getCloverTransport(), configuration.getRemoteApplicationID())
 {
 }
 /// <summary>
 /// Factory to create an instance of the CloverConnector
 /// </summary>
 /// <param name="config">Object that conveys the required information used by the connector.
 ///     Usually a USBCloverDeviceConfiguration (USB connection) or WebSocketCloverDeviceConfiguration (Network/SNPD connection)</param>
 /// <returns>Initialized instance conforming to the ICloverConnector</returns>
 public static ICloverConnector createICloverConnector(CloverDeviceConfiguration config)
 {
     return(new CloverConnector(config));
 }
Ejemplo n.º 36
0
 public WSCloverConnector(CloverDeviceConfiguration config) : base(config)
 {
     //Initialize(config);
 }
Ejemplo n.º 37
0
 public WSCloverConnector(CloverDeviceConfiguration config)
     : base(config)
 {
     //Initialize(config);
 }
Ejemplo n.º 38
0
 public ConfigWrapper(string description, CloverDeviceConfiguration config)
 {
     Description = description;
     Config = config;
 }
Ejemplo n.º 39
0
 public DefaultCloverDevice(CloverDeviceConfiguration configuration) : base(configuration)
 {
 }
Ejemplo n.º 40
0
 private void WSForm_Closed(object sender, EventArgs e)
 {
     if (((InputForm)sender).Status == DialogResult.OK)
     {
         string val = ((InputForm)sender).Value;
         string[] tokens = val.Split(':');
         if (tokens.Length == 2)
         {
             string ip = tokens[0];
             int port = Int32.Parse(tokens[1]);
             selectedConfig = new WebSocketCloverDeviceConfiguration(ip, port, "CloverExamplePOS", false, 1);
         }
         ((CloverExamplePOSForm)this.Owner).InitializeConnector(selectedConfig);
         this.Close();
     }
 }
        public void InitializeConnector(CloverDeviceConfiguration config)
        {
            if (cloverConnector != null)
            {
                cloverConnector.RemoveCloverConnectorListener(this);

                OnDeviceDisconnected(); // for any disabling, messaging, etc.
                SaleButton.Enabled = false; // everything can work except Pay
                cloverConnector.Dispose();
            }

            if (config is RemoteRESTCloverConfiguration)
            {
                cloverConnector = new RemoteRESTCloverConnector(config);
                cloverConnector.InitializeConnection();
            }
            else if (config is RemoteWebSocketCloverConfiguration)
            {
                cloverConnector = new RemoteWebSocketCloverConnector(config);
                cloverConnector.InitializeConnection();
            }
            else
            {
                cloverConnector = new CloverConnector(config);
                cloverConnector.InitializeConnection();
            }

            cloverConnector.AddCloverConnectorListener(this);

            //UI cleanup
            this.Text = OriginalFormTitle + " - " + config.getName();
            CardEntryMethod = 34567;

            ManualEntryCheckbox.Checked = (CardEntryMethod & CloverConnector.CARD_ENTRY_METHOD_MANUAL) == CloverConnector.CARD_ENTRY_METHOD_MANUAL;
            MagStripeCheckbox.Checked = (CardEntryMethod & CloverConnector.CARD_ENTRY_METHOD_MAG_STRIPE) == CloverConnector.CARD_ENTRY_METHOD_MAG_STRIPE;
            ChipCheckbox.Checked = (CardEntryMethod & CloverConnector.CARD_ENTRY_METHOD_ICC_CONTACT) == CloverConnector.CARD_ENTRY_METHOD_ICC_CONTACT;
            ContactlessCheckbox.Checked = (CardEntryMethod & CloverConnector.CARD_ENTRY_METHOD_NFC_CONTACTLESS) == CloverConnector.CARD_ENTRY_METHOD_NFC_CONTACTLESS;
        }