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
- Brancher le tiroir-caisse
- Installer le setup UPOS fourni par Toshiba
- choisir POS Device
- redémarrer
- Dans C:\POS\BIN\, exécuter en mode Admin OPOSConfig.exe
- Spécifier le tiroir ONLINE
- Cliquer sur Configure
- Définir un nom pour le tiroir
- Bouton Device Demo
- Cliquer sur Demo
- Open Drawer
- D'abord ouvrir le tiroir manuellement
- Cliquer sur Ok
- Refermer le tiroir
- Ok
- Quitter cet outil
- Faire une mise à jour de Mercator (32 bits)
- Placer les deux DLL (voir ci-dessous) dans le répertoire principal de Mercator
- Compléter STRING_TIR et PORT_TIR dans "Outils > Options > Matériel caisse" avec le nom du tiroir défini en 6
- Ajouter le customizer Main
// <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();
}
}
}
- Redémarrer Mercator.
Tiroir Epson
- Brancher le tiroir-caisse
- 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 - 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.
- Faire une mise à jour de Mercator (en 32 bits)
- Placer les deux DLL (voir ci-dessous) dans le répertoire principal de Mercator
- Compléter PORT_TIR dans "Outils > Options > Matériel caisse" avec le nom du tiroir défini en 3
- Ajouter le customizer Main
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();
}
}
}
}
- Redémarrer Mercator
- 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)