Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Installation d'un driver OPOS pour imprimante et/ou tiroir

0000002647     -      09/01/2024

Ci-dessous, vous trouverez un exemple de configuration de driver OPOS.

 OPOS ne fonctionne pas en .net core. Voir le commentaire en haut de cette page.

Tiroir Toshiba

  1. Brancher le tiroir-caisse
  2. Installer le setup UPOS fourni par Toshiba
    • choisir POS Device
    • redémarrer
  3. Dans C:\POS\BIN\, exécuter en mode Admin OPOSConfig.exe
  4. Spécifier le tiroir ONLINE
  5. Cliquer sur Configure
  6. Définir un nom pour le tiroir
  7. Bouton Device Demo
  8. Cliquer sur Demo
  9. Open Drawer
  10. D'abord ouvrir le tiroir manuellement
  11. Cliquer sur Ok
  12. Refermer le tiroir
  13. Ok
  14. Quitter cet outil
  15. Faire une mise à jour de Mercator (32 bits)
  16. Placer les deux DLL (voir ci-dessous) dans le répertoire principal de Mercator
  17. Compléter STRING_TIR et PORT_TIR dans "Outils > Options > Matériel caisse" avec le nom du tiroir défini en 6
  18. Ajouter le customizer Main
    Zoom
    // <ReferenceInclude>"POS.Devices.Opos_Constants.dll"</ReferenceInclude>
    // <ReferenceInclude>"POS.Devices.OPOSCashDrawer.dll"</ReferenceInclude>
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using MercatorApi;
    using MercatorUi;
    using System.Reflection;
    using System.Windows.Forms;
    using POS.Devices;
    using POS;

    namespace Main
    {
        public class Customizer : MercatorUi.ICustomizers.IExec
        {
            public void Main(MercatorUi.ICustomizers.ExecAction Action)
            {
                if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
                {
                    MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer += new MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventHandler(MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer);
                }
                if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
                {
                    MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer -= new MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventHandler(MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer);
                }
            }
            void MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer(MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventArgs e)
            {
                POS.Devices.OPOSCashDrawer tiroir = new POS.Devices.OPOSCashDrawer();
                int rc = 0;
                rc = tiroir.Open(Globals.ParamPos["PORT_TIR"]);
                if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
                {
                    Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
                    e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
                    return;
                }
                rc = tiroir.ClaimDevice(200);
                tiroir.DeviceEnabled = true;
                if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
                {
                    Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
                    e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
                    return;
                }
                rc = tiroir.OpenDrawer();
                if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
                {
                    Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
                    e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
                    return;
                }
                e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Done;
                tiroir.DeviceEnabled = false;
                tiroir.ReleaseDevice();
                tiroir.Close();
            }
        }
    }

     
  19. Redémarrer Mercator.

 

 

Tiroir Epson

  1. Brancher le tiroir-caisse
  2. Installer l'installateur de l'OPOS ADK for .NET (for Microsoft .NET Framework 4.0 or later) datant du 03/09/2020 fourni par Epson
    Si nécessaire, il faut installer Microsoft POS for .NET
  3. Lancer l'installateur EPSON OPOS ADK installé
    • Ajouter un nouvel élément via le bouton "Add"
      Compléter les zones
      • Logical Device Name : définir un nom logique pour le tiroir-caisse (ex : "Tiroir")
      • Device Category : sélectionner "CashDrawer"
      • Device Name : Standard

    • Bouton "Next"
    • Port Type : choisir le port utilisé et définir les différentes valeurs nécessaires.
    • Bouton "Next"
    • "Drawer Open Status" : il faut sélectionner "HIGH signal"
    • Bouton "Done"
    • Pour valider la configuration, sélectionner le tiroir dans la liste et, via clic-droit sélectionner "CheckHealth" : la réponse doit être positive.

  4. Faire une mise à jour de Mercator (en 32 bits)
  5. Placer les deux DLL (voir ci-dessous) dans le répertoire principal de Mercator
  6. Compléter PORT_TIR dans "Outils > Options > Matériel caisse" avec le nom du tiroir défini en 3
  7. Ajouter le customizer Main
    Zoom
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using MercatorApi;
    using MercatorExtensions;
    using MercatorUi;
    using System.Reflection;
    using System.Windows.Forms;
    using POS.Devices;
    using POS;
    using Microsoft.PointOfService;

    // <ReferenceInclude>"C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.PointOfService\v4.0_1.14.1.0__31bf3856ad364e35\Microsoft.PointOfService.dll"</ReferenceInclude>
    // <ReferenceInclude>"POS.Devices.Opos_Constants.dll"</ReferenceInclude>
    // <ReferenceInclude>"POS.Devices.OPOSCashDrawer.dll"</ReferenceInclude>

    namespace Main
    {
        public class Customizer : MercatorUi.ICustomizers.IExec
        {
            public void Main(MercatorUi.ICustomizers.ExecAction action)
            {
                switch (action)
                {
                    case MercatorUi.ICustomizers.ExecAction.DossierOpen:
                        MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer += MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer;
                        break;
                    case MercatorUi.ICustomizers.ExecAction.DossierClose:
                        MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer -= MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer;
                        break;
                }
            }

            void MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer(MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventArgs e)
            {
                string strLogicalName = Globals.ParamPos["PORT_TIR"];
                CashDrawer m_Drawer = null;
                try
                {
                    //Create PosExplorer
                    PosExplorer posExplorer = new PosExplorer();
                    DeviceInfo deviceInfo = null;
                    deviceInfo = posExplorer.GetDevice(DeviceType.CashDrawer, strLogicalName);
                    m_Drawer = (CashDrawer)posExplorer.CreateInstance(deviceInfo);
                    //Open the device
                    //Use a Logical Device Name which has been set on the SetupPOS.
                    m_Drawer.Open();
                    //Get the exclusive control right for the opened device.
                    //Then the device is disabled for other applications.
                    m_Drawer.Claim(1000);
                    //Enable the device.
                    m_Drawer.DeviceEnabled = true;
                    m_Drawer.OpenDrawer();
                    e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Done;
                }
                catch (PosException ex)
                {
                    MessageBox.Show(_Divers.Iif_langue(Globals.Langue, "Fehler beim Öffnen der Schublade : ", "Error opening drawer : ", "Fout bij openen lade: ", "Erreur ouverture tiroir caisse : ") + "\r\n\r\nBillingPayments_BeforeOpenCashDrawer() :\r\n" + ex.ToString());
                    //Nothing can be used.
                    return;
                }
                finally
                {
                    //Finish using the device.
                    if (m_Drawer != null)
                        m_Drawer.Close();
                }
            }
        }
    }

     
  8. Redémarrer Mercator
  9. Il est recommandé de tester d'abord l'ouverture du tiroir-caisse via le pilote de l'imprimante et de vérifier que cela fonctionne correctement.

 

 



A télécharger : 0000002647.zip (42 Kb - 20/06/2016)