예제 #1
1
 public Printer(string deviceName = "PosPrinter")
 {
     var posExplorer = new PosExplorer();
     var deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, deviceName);
     m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
     m_Printer.Open();
     m_Printer.Claim(500);
     m_Printer.DeviceEnabled = true;
     m_Printer.RecLetterQuality = true;
     m_Printer.MapMode = MapMode.Metric;
     m_Printer.ClearOutput();
 }
예제 #2
0
 public ICashDrawer GetCashDrawer()
 {
     if (_drawer == null)
     {
         DeviceInfo drawerDeviceInfo = _exp.GetDevice("CashDrawer");
         CashDrawer drawer           = (CashDrawer)_exp.CreateInstance(drawerDeviceInfo);
         _drawer = new DrawerWrapper(drawer, _messageBus);
         drawer.Open();
     }
     return(_drawer);
 }
        private PosPrinter GetReceiptPrinter()
        {
            //PosExplorer explorer = new PosExplorer();
            //return explorer.GetDevices(DeviceType.PosPrinter, DeviceCompatibilities.OposAndCompatibilityLevel1);

            PosExplorer posExplorer = null;

            try
            {
                posExplorer = new PosExplorer();
            }
            catch (Exception)
            {
                //posExplorer = new PosExplorer(this);
            }

            //var ppp = posExplorer.GetDevices(DeviceType.PosPrinter, DeviceCompatibilities.OposAndCompatibilityLevel1);
            // var pp = posExplorer.GetDevices();
            // DeviceInfo receiptPrinterDevice = posExplorer.GetDevice("EPSON TM-T20II Receipt", "EPSON TM-T20II Receipt"); //May need to change this if you don't use a logicial name or
            //use a different one.
            DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter, "POSPrinter"); //May need to change this if you don't use a logicial name or//my_device

            //DeviceInfo receiptPrinterDevice1 = posExplorer.GetDevice(DeviceType.LineDisplay, "my_device"); //May need to change this if you don't use a logicial name or//my_device
            // receiptPrinterDevice.

            return((PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice));
        }
예제 #4
0
        public void OpenCashDrawer(bool IsWaited = false)
        {
            try
            {
                string strLogicalName = "CashDrawer";

                //PosExplorerを生成します。
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                deviceInfo = posExplorer.GetDevice(DeviceType.CashDrawer, strLogicalName);
                m_Drawer   = (CashDrawer)posExplorer.CreateInstance(deviceInfo);
                try
                {
                    // m_Drawer.DeviceEnabled = true;
                }
                catch { }
                m_Drawer.Open();

                m_Drawer.Claim(1000);

                //デバイスを使用可能(動作できる状態)にします。

                m_Drawer.DeviceEnabled = true;
            }
            catch (PosControlException)
            {
            }
            m_Drawer.OpenDrawer();

            // ドロワーが開いている間、待ちます。

            while (m_Drawer.DrawerOpened == false)
            {
                System.Threading.Thread.Sleep(100);
            }

            //開いてから10秒間経っても閉じられない場合はビープ音を断続的に鳴らします。

            //このメソッドを実行すると、ドロワーが閉じられるまで処理が戻ってこないので注意してください。

            if (IsWaited)
            {
                m_Drawer.WaitForDrawerClose(10000, 2000, 100, 1000);
            }

            try
            {
                CloseCashDrawer();
            }
            catch
            {
                try
                {
                    m_Drawer = null;
                }
                catch { }
            }
        }
예제 #5
0
        private PosPrinter GetReceiptPrinter()
        {
            PosExplorer posExplorer          = new PosExplorer(this);
            DeviceInfo  receiptPrinterDevice = posExplorer.GetDevice("PosPrinter", "ReceiptPrinter"); //May need to change this if you don't use a logicial name or use a different one.

            return((PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice));
        }
        private void SetUpPrinter()
        {
            string strLogicalName = "PosPrinter";

            try
            {
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;
                myDevices = posExplorer.GetDevices(DeviceType.PosPrinter);
                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                }

                m_Printer.Open();
            }
            catch (PosControlException)
            {
                Console.WriteLine("Failed to load printer: " + strLogicalName);
            }
        }
예제 #7
0
파일: Main.cs 프로젝트: kowsheek/IdParser
        private void Connect()
        {
            if (string.IsNullOrEmpty(txtLogicalName.Text))
            {
                SetStatus(Level.Warning, "Enter a logical name to connect to the scanner");
                return;
            }

            txtLogicalName.Enabled = false;
            txtConnectScanner.Text = "Disconnect Scanner";

            try
            {
                var explorer = new PosExplorer();
                _scanner = explorer.CreateInstance(explorer.GetDevice(DeviceType.Scanner, txtLogicalName.Text)) as Scanner;

                AddDataEvent(_scanner);

                SetStatus(Level.Info, "Opening " + txtLogicalName.Text);
                _scanner.Open();
                SetStatus(Level.Info, "Claiming scanner");
                _scanner.Claim(1000);
                SetStatus(Level.Info, "Enabling scanner");
                _scanner.DeviceEnabled    = true;
                _scanner.DataEventEnabled = true;
                _scanner.DecodeData       = true;

                SetStatus(Level.Success, "Ready");
            }
            catch (PosControlException ex)
            {
                SetStatus(Level.Error, "Failed to connect to scanner. " + ex.Message);
            }
        }
예제 #8
0
        /// <summary>
        /// How to use "PosExplorer" sample1.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnExample1_Click(object sender, System.EventArgs e)
        {
            //Use a Logical Device Name which has been set on the SetupPOS.
            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                //Get DeviceInfo use devicecategory and logicalname.
                deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, m_strLogicalName);

                m_PosCommon = (PosCommon)posExplorer.CreateInstance(deviceInfo);

                //Open the device
                m_PosCommon.Open();

                //Get the exclusive control right for the opened device.
                //Then the device is disable from other application.
                m_PosCommon.Claim(1000);

                //Enable the device.
                m_PosCommon.DeviceEnabled = true;

                //CheckHealth.
                m_PosCommon.CheckHealth(Microsoft.PointOfService.HealthCheckLevel.Interactive);

                //Close device
                m_PosCommon.Close();
            }
            catch (Exception)
            {
            }
        }
예제 #9
0
        public Printer(string logicalName)
        {
            var explorer = new PosExplorer();
            var device   = explorer.GetDevice(DeviceType.PosPrinter, logicalName);

            Device = explorer.CreateInstance(device) as PosPrinter;
        }
예제 #10
0
        public CashDrawerClass()
        {
            explorer = new PosExplorer(this);
            DeviceInfo ObjDevicesInfo = explorer.GetDevice("CashDrawer");

            myCashDrawer = explorer.CreateInstance(ObjDevicesInfo);
        }
예제 #11
0
        private void Panel_Empleados_Load(object sender, EventArgs e)
        {
            //<<< step1 >>> --Start
            //Use a Logical Device Name which has been set on the SetupPOS.
            string strLogicalName = "CashDrawer";

            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.CashDrawer, strLogicalName);
                    m_Drawer   = (CashDrawer)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                    //Nothing can be used.
                    return;
                }
            }
            catch (PosControlException)
            {
                //Nothing can be used.
                //Nothing can be used.
            }
            //<<<step1>>>--End
        }
예제 #12
0
        public cImpresora(string nombreLogico)
        {
            try
            {
                _nombreLogico = nombreLogico;
                PosExplorer posExplorer = new PosExplorer();
                DeviceInfo  deviceInfo  = null;
                deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, _nombreLogico);
                _oPrinter  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                _oPrinter.Open();
                _oPrinter.Claim(1000);
                _oPrinter.DeviceEnabled = true;
                //Output by the high quality mode
                _oPrinter.RecLetterQuality = true;

                // Even if using any printers, 0.01mm unit makes it possible to print neatly.
                _oPrinter.MapMode = MapMode.Metric;
            }
            catch (PosControlException ex)
            {
                throw new Exception("Error al abrir la impresora fiscal. " + ex.Message);
            }
            catch (Exception ex)
            {
                throw new Exception("Error al abrir la impresora fiscal. " + ex.Message);
            }
        }
예제 #13
0
        public Scanner(string logicalName)
        {
            var explorer = new PosExplorer();
            var device   = explorer.GetDevice(DeviceType.Scanner, logicalName);

            Device = explorer.CreateInstance(device) as Microsoft.PointOfService.Scanner;
        }
예제 #14
0
        private void GunlukRapor_Click(object sender, EventArgs e)
        {
            string zaman = DateTime.Now.ToShortDateString();

            DialogResult Uyari = new DialogResult();

            Uyari = MessageBox.Show("TÜM GİDERLERİN RAPORU BASILACAK BU RAPOR UZUNLUĞU GİDERLERİNİZİN UZUNLUĞU KADAR OLACAKTIR. ESKİ GİDERLERİNİZİ SİLERSENİZ RAPOR DAHA KISA OLABİLİR. DEVAM EDİLSİN Mİ?", "UYARI!", MessageBoxButtons.YesNo);
            if (Uyari == DialogResult.Yes)
            {
                try
                {
                    var explorer   = new PosExplorer();
                    var deviceInfo = explorer.GetDevice(DeviceType.PosPrinter);
                    if (deviceInfo == null)
                    {
                        MessageBox.Show("BİLGİSAYARA BAĞLI YAZICI YOK YADA BAĞLANTI KURULAMADI", "ÇEKİRDEK KOD TERS MÜHENDİSLİK KORUMASI!");
                        return;
                    }
                    Yazici = (PosPrinter)explorer.CreateInstance(deviceInfo);
                    Yazici.Open();
                    Yazici.Claim(500);
                    Yazici.DeviceEnabled      = true;
                    Yazici.StatusUpdateEvent += (s, evt) =>
                    {
                        if (evt.Status == PosPrinter.StatusCoverOpen)
                        {
                            MessageBox.Show("Yazıcının kağıt kapağı açıldı");
                        }
                        if (evt.Status == PosPrinter.StatusCoverOK)
                        {
                            MessageBox.Show("Yazıcının kağıt kapağı kapandı");
                        }
                        if (evt.Status == PosPrinter.StatusJournalCartridgeEmpty)
                        {
                            MessageBox.Show("Yazıcının kartuşu bitmek üzere");
                        }
                    };
                    Yazici.PrintNormal(PrinterStation.Slip, "                          PRESTIGE CAFE                       " + Environment.NewLine);
                    Yazici.PrintNormal(PrinterStation.Slip, "GÜnlük Gider Raporu" + "  TARİH: " + DateTime.Now.ToShortDateString() + Environment.NewLine);
                    Yazici.PrintNormal(PrinterStation.Slip, "**************************************************************" + Environment.NewLine);
                    VeriEntities3 context = new VeriEntities3();
                    foreach (var bul in context.Giderler.Where(p => p.Tarih == zaman))
                    {
                        Yazici.PrintNormal(PrinterStation.Slip, "Gider adı: " + bul.GiderAdi + " Gider Tutarı: " + bul.GiderTutari + " Tarih: " + bul.Tarih + Environment.NewLine);
                    }
                    Yazici.PrintNormal(PrinterStation.Slip, "**************************************************************" + Environment.NewLine);
                    Yazici.PrintNormal(PrinterStation.Slip, "MARKETMATİK BETA V.1.0.2 [email protected]" + Environment.NewLine);
                    Yazici.CutPaper(100);
                    MessageBox.Show("Gider Yazdırıldı.", "Kullanıcı İşlemleri");
                    this.Close();
                    formdd1.Visible = true;
                }
                catch
                {
                    MessageBox.Show("DÖNGÜSEL VERİTABANI HATASI. DATA BULUNAMADI YADA VERİTABANI BAĞLANTISI KESİLDİ.", "ÇEKİRDEK KOD ÖLÜMCÜL HATA!");
                    MessageBox.Show("LÜTFEN GELİŞTİRİCİ İLE İRTİBAT KURUN. PROGRAM SONLANICAK", "ÇEKİRDEK KOD TERS MÜHENDİSLİK KORUMASI");
                    Application.Exit();
                }
            }
        }
        private void cariodetamaminiode_Click(object sender, EventArgs e)
        {
            Musteriler musteriler     = new Musteriler();
            var        MusteriCariOde = db.Musteriler.Where(w => w.MusteriAdi == cariodemusteriadi.Text).FirstOrDefault();

            try
            {
                String Odeme = MusteriCariOde.MusteriBakiyesi;
                MusteriCariOde.MusteriBakiyesi = "0";
                db.SaveChanges();
                var explorer   = new PosExplorer();
                var deviceInfo = explorer.GetDevice(DeviceType.PosPrinter);
                if (deviceInfo == null)
                {
                    MessageBox.Show("BİLGİSAYARA BAĞLI YAZICI YOK YADA BAĞLANTI KURULAMADI", "ÇEKİRDEK KOD TERS MÜHENDİSLİK KORUMASI!");
                    return;
                }
                Yazici = (PosPrinter)explorer.CreateInstance(deviceInfo);
                Yazici.Open();
                Yazici.Claim(500);
                Yazici.DeviceEnabled      = true;
                Yazici.StatusUpdateEvent += (s, evt) =>
                {
                    if (evt.Status == PosPrinter.StatusCoverOpen)
                    {
                        MessageBox.Show("Yazıcının kağıt kapağı açıldı");
                    }
                    if (evt.Status == PosPrinter.StatusCoverOK)
                    {
                        MessageBox.Show("Yazıcının kağıt kapağı kapandı");
                    }
                    if (evt.Status == PosPrinter.StatusJournalCartridgeEmpty)
                    {
                        MessageBox.Show("Yazıcının kartuşu bitmek üzere");
                    }
                };
                Yazici.PrintNormal(PrinterStation.Slip, "                          PRESTIGE CAFE                       " + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "CARİ ÖDEME BİLGİ FİŞİ" + "  TARİH: " + DateTime.Now.ToShortDateString() + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "**************************************************************" + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "MÜŞTERİ ADI   : " + MusteriCariOde.MusteriAdi + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "--------------------------------------------------------------" + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "MÜŞTERİ CARİSİ: " + Odeme + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "--------------------------------------------------------------" + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "ÖDENEN MİKTAR : " + Odeme + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "**************************************************************" + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "                        TEŞEKKÜR EDERİZ                       " + Environment.NewLine);
                Yazici.PrintNormal(PrinterStation.Slip, "MARKETMATİK BETA V.1.0.2 [email protected]" + Environment.NewLine);
                Yazici.CutPaper(100);
                musteriyonetimformu = new MusteriYonetimFormu();
                musteriyonetimformu.Show();
                this.Close();
            }
            catch
            {
                MessageBox.Show("DÖNGÜSEL VERİTABANI HATASI. DATA BULUNAMADI YADA VERİTABANI BAĞLANTISI KESİLDİ.", "ÇEKİRDEK KOD ÖLÜMCÜL HATA!");
                MessageBox.Show("LÜTFEN GELİŞTİRİCİ İLE İRTİBAT KURUN. PROGRAM SONLANICAK", "ÇEKİRDEK KOD TERS MÜHENDİSLİK KORUMASI");
                Application.Exit();
            }
        }
예제 #16
0
        private PosPrinter GetReceiptPrinter()
        {
            PosExplorer posExplorer = new PosExplorer(this);
            //May need to change this if you don't use a logical name or use a different one.
            // Since, I don't know what is the printer's logical name
            DeviceInfo receiptPrinterDevice = posExplorer.GetDevice(DeviceType.PosPrinter.ToString());

            return((PosPrinter)posExplorer.CreateInstance(receiptPrinterDevice));
        }
    public static void createPos()
    {
        explorer = new PosExplorer();
        DeviceInfo receiptPrinterDevice = explorer.GetDevice("PosPrinter", Properties.Settings.Default.KitchenPrinter);   //May need to change this if you don't use a logicial name or use a different one.

        kitchenPrinter = (PosPrinter)explorer.CreateInstance(receiptPrinterDevice);
        kitchenPrinter.Open();
        kitchenPrinter.Claim(10000);
        kitchenPrinter.DeviceEnabled = true;
    }
예제 #18
0
        public Printer(string deviceName = "PosPrinter")
        {
            var posExplorer = new PosExplorer();
            var deviceInfo  = posExplorer.GetDevice(DeviceType.PosPrinter, deviceName);

            m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
            m_Printer.Open();
            m_Printer.Claim(500);
            m_Printer.DeviceEnabled    = true;
            m_Printer.RecLetterQuality = true;
            m_Printer.MapMode          = MapMode.Metric;
            m_Printer.ClearOutput();
        }
예제 #19
0
 private void Inventory_Searcher_Load(object sender, EventArgs e)
 {
     //pos
     try
     {
         DeviceInfo di = explorer.GetDevice(DeviceType.Scanner);
         activeScanner = (Scanner)explorer.CreateInstance(di);
         activeScanner.Open();
         activeScanner.Claim(1000);
         activeScanner.DeviceEnabled    = true;
         activeScanner.DataEvent       += new DataEventHandler(activeScanner_DataEvent);
         activeScanner.ErrorEvent      += new DeviceErrorEventHandler(activeScanner_ErrorEvent);
         activeScanner.DecodeData       = true;
         activeScanner.DataEventEnabled = true;
     }
     catch (Exception erty) { }
 }
예제 #20
0
        /// <summary>
        /// Connect to Msr Device and Get Card Data.
        /// </summary>
        public void Connect()
        {
            myExplorer = new PosExplorer();


            DeviceInfo device = myExplorer.GetDevice("Msr", "MagTekMSR_Encrypted");


            //device= myExplorer.GetDevices()[0];

            /// <summary>
            /// To check if device found or not
            /// </summary>

            if (device != null)
            {
                Disconnect();

                myMsr = (Msr)myExplorer.CreateInstance(device);

                try
                {
                    myMsr.Open();
                    if (myMsr.Claimed == false)
                    {
                        myMsr.Claim(1000);
                    }
                    myMsr.DeviceEnabled = true;
                }
                catch
                {
                }
                myMsr.DataEventEnabled = true;
                myMsr.DecodeData       = true;
                myMsr.DataEvent       += new DataEventHandler(myMsr_DataEvent);
            }
            else
            {
                throw new Exception("pos device not founded");

                //return;
            }
            myExplorer.DeviceAddedEvent   += new DeviceChangedEventHandler(myExplorer_DeviceAddedEvent);
            myExplorer.DeviceRemovedEvent += new DeviceChangedEventHandler(myExplorer_DeviceRemovedEvent);
            //myMsr.DataEvent += new DataEventHandler(myMsr_DataEvent);
        }
예제 #21
0
        private bool Imprimir(ArrayList lista)
        {
            bool impreso = false;

            try
            {
                PosExplorer explorer = new PosExplorer();
                PosPrinter  MiImpresora;

                IEnumerator unidades = explorer.GetDevices(DeviceType.PosPrinter).GetEnumerator();

                while (unidades.MoveNext())
                {
                    DeviceInfo  inf     = (DeviceInfo)unidades.Current;
                    IEnumerator nombres = inf.LogicalNames.GetEnumerator();
                    while (nombres.MoveNext())
                    {
                        string logico = (string)nombres.Current;

                        MessageBox.Show("" + logico);
                    }
                }

                DeviceInfo unidadEpson = explorer.GetDevice(DeviceType.PosPrinter, "PosPrinter");

                MiImpresora = (PosPrinter)explorer.CreateInstance(unidadEpson);
                MiImpresora.Open();
                MiImpresora.Claim(1000);
                MiImpresora.DeviceEnabled = true;

                foreach (string item in lista)
                {
                    MiImpresora.PrintNormal(PrinterStation.Receipt, item);
                }
                MiImpresora.PrintNormal(PrinterStation.Receipt, "\n\n\n\n\n\n\n\n\n");
                MiImpresora.CutPaper(90);
                MiImpresora.Close();
                impreso = true;
            }
            catch
            {
                impreso = false;
            }
            return(impreso);
        }
        private void InitPrinter()
        {
            string strLogicalName = "PosPrinter";

            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                    PrinterReady = false;
                    return;
                }

                //Open the device
                m_Printer.Open();

                //Get the exclusive control right for the opened device.
                //Then the device is disable from other application.
                m_Printer.Claim(1000);

                //Enable the device.
                m_Printer.DeviceEnabled = true;

                m_Printer.RecLetterQuality = false;

                m_Printer.MapMode = MapMode.Metric;

                PrinterReady = true;
            }
            catch (PosControlException)
            {
                PrinterReady = false;
            }
        }
예제 #23
0
        private void InitCashDrawer()
        {
            //<<<step1>>>--Start
            //Use a Logical Device Name which has been set on the SetupPOS.
            string strLogicalName = "CashDrawer";

            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.CashDrawer, strLogicalName);
                    m_Drawer   = (CashDrawer)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                    //Nothing can be used.
                    //ChangeButtonStatus();
                    return;
                }
                //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 disable from other application.
                //m_Drawer.Claim(1000);

                //Enable the device.
                m_Drawer.DeviceEnabled = true;
            }
            catch (PosControlException)
            {
                //Nothing can be used.
                //Nothing can be used.
                //ChangeButtonStatus();
            }
            //<<<step1>>>--End
        }
        protected void SetDisplay()
        {
            string      strLogicalName = "LineDisplay";
            PosExplorer posExplorer    = null;

            try
            {
                posExplorer = new PosExplorer();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + " Cant call POSEXPLORE() function!  " + Environment.NewLine + " Skipped if Epson TM - M30 have not been installed.");
                goto End;
            }
            deviceInfo = posExplorer.GetDevice(DeviceType.LineDisplay, strLogicalName);
            m_Display  = (LineDisplay)posExplorer.CreateInstance(deviceInfo);
            m_Display.Open();
            m_Display.Claim(1000);
            m_Display.DeviceEnabled = true;

            try
            {
                var val = GetMessages();
                m_Display.CharacterSet = 932;
                m_Display.CreateWindow(1, 0, 1, 20, 1, Encoding.GetEncoding(932).GetByteCount(val));
                m_Display.MarqueeFormat     = DisplayMarqueeFormat.Walk;
                m_Display.MarqueeType       = DisplayMarqueeType.Init;
                m_Display.MarqueeRepeatWait = 1000;
                m_Display.MarqueeUnitWait   = 100;
                m_Display.DisplayText(val, DisplayTextMode.Normal);
                m_Display.MarqueeType = DisplayMarqueeType.Left;
            }
            catch (PosControlException pe)
            {
                MessageBox.Show(pe.Message);
            }
End:
            {
                //
            }
        }
예제 #25
0
        /// <summary>
        /// The processing code required in order to enable to use of service is written here.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmStep1_Load(object sender, System.EventArgs e)
        {
            //<<<step1>>>--Start
            //Use a Logical Device Name which has been set on the SetupPOS.
            string strLogicalName = "PosPrinter";

            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                    ChangeButtonStatus();
                    return;
                }

                //Open the device
                m_Printer.Open();

                //Get the exclusive control right for the opened device.
                //Then the device is disable from other application.
                m_Printer.Claim(1000);

                //Enable the device.
                m_Printer.DeviceEnabled = true;
            }
            catch (PosControlException)
            {
                ChangeButtonStatus();
            }
            //<<<step1>>>--End
        }
예제 #26
0
        public bool init(bool asasynchronous)   //初始化
        {
            async = asasynchronous;
            string strLogicalName = "PosPrinter";

            try
            {
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception)
                {
                    //return false;
                }

                m_Printer.Open();

                m_Printer.Claim(1000);

                m_Printer.DeviceEnabled = true;

                m_Printer.RecLetterQuality = true;

                m_Printer.MapMode = MapMode.Metric;
            }
            catch (Exception ex)
            {
                System.IO.File.AppendAllText(@"C:\hot.txt", DateTime.Now.ToString() + ": " + ex.ToString() + "\r\n");
                return(false);
            }

            return(true);
        }
예제 #27
0
        private void SetPrinter(string strLogicalName)
        {
            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    //if (m_Printer != null || m_Printer.State == ControlState.Error)
                    if (m_Printer != null)
                    {
                        ReleasePrinter();
                    }
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer  = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                    if (m_Printer != null)
                    {
                        ClaimPrinter();
                        HavePrinter = true;
                    }
                    //if (m_Printer.Claimed) m_Printer.Release();
                }
                catch (Exception)
                {
                    HavePrinter = false;
                    m_Printer   = null;
                    //ChangeButtonStatus();
                    //return;
                }
            }
            catch (PosControlException)
            {
                HavePrinter = false;
                //ChangeButtonStatus();
            }
        }
예제 #28
0
        private void Panel_productos_Faltantes_Bodega_Load(object sender, EventArgs e)
        {
            this.dataGrid1.CurrentCell = (DataGridViewCell)null;
            this.dataGrid1.DataSource  = (object)this.depot.MissingProducts().DefaultView;
            // setCheckAllBtn();

            try
            {
                //Create PosExplorer
                PosExplorer posExplorer = new PosExplorer();

                try
                {
                    posPrinter = posExplorer.CreateInstance(posExplorer.GetDevice(DeviceType.PosPrinter, "PosPrinter")) as PosPrinter;
                    posPrinter.Open();
                }
                catch (Exception) { }
            }
            catch (PosControlException)
            {
                //Nothing can be used.
                MessageBox.Show("No se tuvo acceso a la impresora o al cajon");
            }
        }
예제 #29
0
        public void PrintToPos()
        {
            PosExplorer explorer = null;
            DeviceInfo  _device;
            PosPrinter  _oposPrinter;
            string      LDN = "";

            explorer     = new PosExplorer();
            _device      = explorer.GetDevice(DeviceType.PosPrinter, LDN);
            _oposPrinter = (PosPrinter)explorer.CreateInstance(_device);
            _oposPrinter.Open();
            _oposPrinter.Claim(10000);
            _oposPrinter.DeviceEnabled = true;
            // normal print
            //_oposPrinter.PrintNormal(PrinterStation.Receipt, "yourprintdata");
            // pulse the cash drawer pin  pulseLength-> 1 = 100ms, 2 = 200ms, pin-> 0 = pin2, 1 = pin5
            // _oposPrinter.PrintNormal(PrinterStation.Receipt, (char)16 + (char)20 + (char)1 + (char)pin + (char)pulseLength);

            // cut the paper
            //_oposPrinter.PrintNormal(PrinterStation.Receipt, (char)29 + (char)86 + (char)66);

            // print stored bitmap
            //_oposPrinter.PrintNormal(PrinterStation.Receipt, (char)29 + (char)47 + (char)0);
        }
예제 #30
0
        //prepare printer
        private void prepare()
        {
            string strLogicalName = "PosPrinter";
            try
            {
                PosExplorer posExplorer = new PosExplorer();

                DeviceInfo deviceInfo = null;

                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                    m_Printer = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception e)
                {
                    Console.WriteLine("error2");
                    Console.WriteLine(e);
                }

                m_Printer.Open();

                m_Printer.Claim(1000);

                m_Printer.DeviceEnabled = true;

            }

            catch (PosControlException e)
            {
                Console.WriteLine("error3");
                Console.WriteLine(e);
            }

            finally
            {
                //release();
            }
        }
예제 #31
0
        public void Initialize()  //初始化
        {
            lock (mInitializeLock)
            {
                string strLogicalName = "PosPrinter";

                if (mInitialized)
                {
                    return;
                }

                PosExplorer posExplorer = null;
                try
                {
                    posExplorer = new PosExplorer();
                }
                catch (Exception e)
                {
                    System.Console.WriteLine(e.InnerException.ToString());
                }

                DeviceInfo deviceInfo = null;
                try
                {
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, strLogicalName);
                }
                catch (Exception getDeviceEx)
                {
                    Console.WriteLine("当前系统中不止一台PosPrinter设备,请设置默认的PosPrinter类型打印机.", "打印机异常");
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + getDeviceEx.ToString() + "\r\n");
                    OutputOverHandle();
                    InitialError(getDeviceEx, "请运行: 开始 -> 程序 -> EPSON OPOS ADK for .NET -> SetupPOS for OPOS.NET\n" +
                                 "检查PosPrinter打印机配置,然后重启打印机");
                    return;
                }
                try
                {
                    mPrinter = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                }
                catch (Exception createInstanceEx)
                {
                    Console.WriteLine("创建PosPrinter设备实例失败.", "打印机异常");
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + createInstanceEx.ToString() + "\r\n");
                    OutputOverHandle();

                    InitialError(createInstanceEx,
                                 "请运行: 开始 -> 程序 -> EPSON OPOS ADK for .NET -> SetupPOS for OPOS.NET\n" +
                                 "检查PosPrinter打印机配置,然后重启打印机");
                    return;
                }

                AddOutputCompleteEvent(mPrinter);
                AddErrorEvent(mPrinter);
                AddStatusUpdateEvent(mPrinter);

                try
                {
                    mPrinter.Open();
                }
                catch (PosControlException openEx)
                {
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + openEx.ToString() + "\r\n");
                    if (openEx.ErrorCode == ErrorCode.Illegal)
                    {
                        Console.WriteLine("打印机已经被打开!", "打印机故障");
                    }
                    else
                    {
                        Console.WriteLine("打开打印机失败!", "打印机故障");
                    }
                    OutputOverHandle();
                    InitialError(openEx);
                    return;
                }
                try
                {
                    mPrinter.Claim(1000);
                }
                catch (PosControlException claimEx)
                {
                    System.Diagnostics.Debug.WriteLine(claimEx.ToString());
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + claimEx.ToString() + "\r\n");
                    Console.WriteLine("请检查打印机电源、连接线及退出其他正在占用打印机的程序,并稍后重试",
                                      "打印机故障");
                    OutputOverHandle();
                    InitialError(claimEx);
                    return;
                }
                try
                {
                    mPrinter.DeviceEnabled = true;
                }
                catch (PosControlException enabledEx)
                {
                    System.Diagnostics.Debug.WriteLine(enabledEx.ToString());
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + enabledEx.ToString() + "\r\n");
                    Console.WriteLine("试图使能打印机失败", "打印机故障");
                    OutputOverHandle();
                    InitialError(enabledEx);
                    return;
                }

                try
                {
                    mPrinter.RecLetterQuality = true;
                    mPrinter.MapMode          = MapMode.Metric;
                }
                catch (PosControlException setModeEx)
                {
                    System.Diagnostics.Debug.WriteLine(setModeEx.ToString());
                    System.IO.File.AppendAllText(LogTxt,
                                                 "PrintHelper.Initialize():" + DateTime.Now.ToString() + setModeEx.ToString() + "\r\n");
                    OutputOverHandle();
                    InitialError(setModeEx);
                    return;
                }
                mInitialized = true;
            }
        }
예제 #32
0
        private void siparisYazdir_Click(object sender, EventArgs e)
        {
            FileInfo fisAyarInfo = new FileInfo(fisDosyasi);

            if (fisAyarInfo.Length == 0)
            {
                functions.hataMesajiGoster("İlk Önce Fiş Ayarları Yapmanız Gerekmektedir !");
                fisAyarları.close = true;
                functions.formKapatAc(new fisAyarları());
            }
            else
            {
                if (siparisListView.Items.Count > 0)
                {
                    PosPrinter  posPrinter;
                    PosExplorer explorer   = new PosExplorer();
                    DeviceInfo  deviceInfo = explorer.GetDevice(DeviceType.PosPrinter);
                    posPrinter = (PosPrinter)explorer.CreateInstance(deviceInfo);
                    posPrinter.Open();
                    posPrinter.Claim(500);
                    posPrinter.DeviceEnabled = true;
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("\t\t{0}{1}", sAdi.ToUpper(), Environment.NewLine));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("\t\t{0}{1}\t\t\t{2}{1}", adres, Environment.NewLine, ilIlce));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("\t\t{0}\t{1}{2}", vDaire.ToUpper(), vNo, Environment.NewLine));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("{0}   TARİH:\t{1}{0}   SAAT :\t{2}", Environment.NewLine, DateTime.Now.ToString().Split(' ')[0], DateTime.Now.ToString().Split(' ')[1]));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("{0}   -----------------------------------------------------------------------------{0}", Environment.NewLine));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("  ÜRÜN ADI\t\tÜRÜN ADEDİ\t\tÜRÜN FİYATI{0}{0}", Environment.NewLine));
                    for (int i = 0; i < siparisListView.Items.Count; i++)
                    {
                        if (siparisListView.Items[i].SubItems[0].Text.Length > 15)
                        {
                            siparisAdi = siparisListView.Items[i].SubItems[0].Text.Substring(0, 16);
                        }
                        else if (siparisListView.Items[i].SubItems[0].Text.Length < 15)
                        {
                            for (int j = 0; j < 15 - siparisListView.Items[i].SubItems[0].Text.Length; j++)
                            {
                                siparisAdi += " ";
                            }
                        }
                        siparisAdi = siparisListView.Items[i].SubItems[0].Text + siparisAdi;
                        posPrinter.PrintNormal(PrinterStation.Slip, string.Format("  {0}\t\t{1}\t\t\t{2}{3}", siparisAdi, siparisListView.Items[i].SubItems[1].Text, siparisListView.Items[i].SubItems[2].Text, Environment.NewLine));
                        siparisAdi = null;
                    }
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("{0}{0}   -----------------------------------------------------------------------------{0}", Environment.NewLine));
                    posPrinter.PrintNormal(PrinterStation.Slip, string.Format("\tTOPLAM FİYAT:\t{0}", label2.Text));
                    posPrinter.CutPaper(100);
                    //posPrinter.Close();
                    FileInfo fi = new FileInfo(siparisDoc);
                    if (fi.Length > 0)
                    {
                        JObject siparis = JObject.Parse(File.ReadAllText(siparisDoc));
                        int     count   = siparis.Count;
                        for (int i = 0; i < siparisListView.Items.Count; i++)
                        {
                            siparis.Add(new JProperty((i + 1 + count).ToString(), new JObject(new JProperty("urunAdi", siparisListView.Items[i].SubItems[0].Text), new JProperty("urunAdedi", siparisListView.Items[i].SubItems[1].Text), new JProperty("urunFiyat", siparisListView.Items[i].SubItems[2].Text.Split(' ')[0]), new JProperty("saat", DateTime.Now.ToString().Split(' ')[1]))));
                        }
                        dosyayaYaz(siparis);
                    }
                    else
                    {
                        JObject obje = new JObject();
                        for (int i = 0; i < siparisListView.Items.Count; i++)
                        {
                            obje.Add(new JProperty((i + 1).ToString(), new JObject(new JProperty("urunAdi", siparisListView.Items[i].SubItems[0].Text), new JProperty("urunAdedi", siparisListView.Items[i].SubItems[1].Text), new JProperty("urunFiyat", siparisListView.Items[i].SubItems[2].Text.Split(' ')[0]), new JProperty("saat", DateTime.Now.ToString().Split(' ')[1]))));
                        }
                        dosyayaYaz(obje);
                    }
                    siparisListView.Items.Clear();
                    siparisSayisi = null;
                    label2.Text   = "0 ₺";
                }
            }
        }
예제 #33
0
 public void openConnection()
 {
     SesionEnt.printerEnabled = false;
     string logicalName = "PosPrinter2";
     PosExplorer posExplorer = new PosExplorer();
     DeviceInfo deviceInfo = null;
     try
     {
         deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, logicalName);
     }
     catch (Exception exceptionX)
     {
         throw exceptionX;
     }
     if (deviceInfo != null)
     {
         try
         {
             posPrinter = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
         }
         catch (Exception exceptionX)
         {
             throw exceptionX;
         }
         try
         {
             posPrinter.Open();
             posPrinter.PowerNotify = PowerNotification.Enabled;
         }
         catch (Exception exceptionX)
         {
             throw exceptionX;
         }
         if (posPrinter != null)
         {
             try
             {
                 posPrinter.Claim(1000);
             }
             catch (PosControlException posControlExceptionX)
             {
                 throw posControlExceptionX;
             }
             try
             {
                 posPrinter.DeviceEnabled = true;
             }
             catch (PosControlException posControlExceptionX)
             {
                 throw posControlExceptionX;
             }
             try
             {
                 posPrinter.RecLetterQuality = false;
                 posPrinter.MapMode = MapMode.Metric;
                 SesionEnt.posPrinter = posPrinter;
                 SesionEnt.printerEnabled = true;
             }
             catch (PosControlException posControlExceptionX)
             {
                 throw posControlExceptionX;
             }
         }
     }
 }
예제 #34
-2
파일: Printer.cs 프로젝트: fhoner/Kasse
        public Printer(string logicalName, bool connect)
        {
            instance = this;
            if (connect)
            {
                this.profile = null;
                this.deviceStatus = PrintDeviceStatus.Properly;
                this.PrintStatus = PrintStatus.Stopped;

                try
                {
                    DeviceInfo deviceInfo = null;
                    PosExplorer posExplorer = new PosExplorer();
                    deviceInfo = posExplorer.GetDevice(DeviceType.PosPrinter, logicalName);
                    device = (PosPrinter)posExplorer.CreateInstance(deviceInfo);
                    device.Open();
                    device.Claim(1000);
                    device.AsyncMode = false;
                    device.DeviceEnabled = true;

                    device.StatusUpdateEvent += Device_StatusUpdateEvent;
                    device.ErrorEvent += (a, b) => { WriteLog("ERROR - " + b.ToString()); };
                    WriteLog("");
                    WriteLog("Drucker initialisiert; Status: " + device.State + device);
                    if (device.RecNearEnd) Device_StatusUpdateEvent(this, new StatusUpdateEventArgs(25));
                    this.connected = connect;
                }
                catch (Exception ex)
                {
                    string s = ex.Source;
                    try
                    {
                        if (device != null)
                            device.Release();
                    }
                    catch { }
                    throw new Exception("Verbindung zum Drucker fehlgeschlagen.", ex);
                }
            }
            else
            {
                this.connected = false;
                this.PrintStatus = PrintStatus.Stopped;
                this.deviceStatus = PrintDeviceStatus.Properly;
            }
        }